Swift Digest
Blog | Swift.org Blog

Swift 4 のリリースプロセス

Swift 4 Release Process

このダイジェストはClaude Opus 4.7 / 4.8によって生成されたものです(License)。原文はこちら

この記事の要点

リリース計画の概要

Swift 4 の位置づけ

Swift 4 は 2017 年秋の完成を目指すメジャーリリースです。Swift 3 のコードに対するソース安定性を提供しながら、言語のバイナリ安定性を達成するために必要な中核的な機能を実装することを軸とします。中核言語と標準ライブラリには大きな拡張が入り、特にジェネリクスシステムの強化と String 型の刷新が含まれます。Swift 4 向けに進められる作業は Swift Evolution のページで確認できます。

2 つの言語モード

Swift 4 コンパイラは -swift-version 3-swift-version 4 の 2 つの言語モードを提供します。

なお、コード移行の観点では、Swift 3 から Swift 4 への差分は、Swift 2.2 から Swift 3 への移行よりもはるかに小さいと見込まれていました。

言語モードの混在

設計上のねらいは、複数の Swift モジュールを含むプロジェクト(複数の Swift ターゲットを持つ Xcode プロジェクトなど)が、モジュール(ターゲット)単位で特定の Swift 言語モードを採用でき、それらが同じコンパイル済みバイナリ内で自由に相互運用できることです。なお、この相互運用がバイナリレベルで成立するのは、ターゲットが同じコンパイラでコンパイルされている場合に限られます。

たとえば次のようなことが可能になります。

これにより、既存の Swift 3 コードをターゲットやパッケージ単位で、より緩やかに Swift 4 へ移行できます。

スナップショットによる提供

Swift 3.1 と同様、Swift 4 でもリリースブランチの日次スナップショットを提供します。スナップショットは継続的インテグレーション(CI)テストの一部として生成され、テストが通っていれば毎日公開されるため、より高頻度かつ細かい粒度になります。Swift 4 のリリース後は、スナップショットに加えて公式の最終ビルドも公開されます。

スケジュールとブランチ運用

master(メインライン開発)に入る変更は、リリースマネージャが最終ブランチ作成日を告知するまで Swift 4 に入ります。最終ブランチ作成日は 2017 年初夏ごろの見込みとされ、それ以降は「bake(熟成)」期間として、厳選された重要な修正のみが swift-4.0-branch に入り、master は次のリリースの開発へ移ります。

運用上は、最終ブランチ作成日までおおよそ 2 週間ごとに masterswift-4.0-branch に定期マージされます。2 週間の間隔は、活発に開発される master と、整理されたリリースブランチとの間のバッファになります。マージとマージの間には、プルリクエストによる cherry-pick で swift-4.0-branch に変更を取り込むこともできます。この計画の例外は swift-package-manager で、こちらは master から swift-4.0-branch へ毎日マージされます。

Swift 4 のブランチ運用は複数のリポジトリにまたがり、swift・swift-lldb・swift-cmark・swift-llbuild・swift-package-manager・swift-corelibs-libdispatch・swift-corelibs-foundation・swift-corelibs-xctest・swift-llvm・swift-clang が swift-4.0-branch を持ちます。なお swift-llvm・swift-clang・swift-lldb は既に master から swift-4.0-branch を分岐済みで、再分岐はしません。

リリースマネージャ

リリース全体は次の担当者が統括し、リリースが収束するにつれて変更管理が厳格化される時点を告知します。

なお、当時案内されていた Swift メーリングリストは現在は閉鎖・アーカイブされ、Swift Forums に置き換えられています。

参加・確認すべきポイント

Swift 4 に変更を取り込む流れ

プルリクエストに添える情報

リリースブランチへの取り込みを提案するプルリクエストには、次の情報を含めます。

影響を受けるコンポーネントのコードオーナーがレビューを行います。技術レビューはコードオーナーが委任することも、必要に応じて依頼することもできます。master から自動的にマージされる変更を除き、swift-4.0-branch に入るすべての変更は、対応するリリースマネージャが受け入れるプルリクエストを経る必要があります。

関連リンク