この記事の要点
- Swift 5.3 の目標・リリースプロセス・想定スケジュールを示した記事です。
- Swift 5.3 は、品質とパフォーマンスの大幅な向上に加えて、対応プラットフォームの拡大を目的としたリリースと位置づけられています。特に Windows と追加の Linux ディストリビューション へのサポート追加が目玉です。
- 2020 年 4 月 20 日に swift リポジトリと関連プロジェクトで
release/5.3ブランチが作成されます。これ以降の変更は、リリース基準を満たす場合のみプルリクエストを通じて取り込まれます。 - 従来の
swift-X.Y-branchから、新しい命名スキームrelease/5.3に変わった点に注意が必要です。 - 対応プラットフォームの拡大に伴い、各プラットフォーム(Darwin・Linux・Windows)ごとのプラットフォームリリースマネージャが新設されました。
リリース計画の概要
Swift 5.3 の位置づけ
Swift 5.3 は、品質とパフォーマンスの大幅な向上を盛り込むことを意図したリリースです。それに加えて、Swift が利用・サポートされるプラットフォームの数を拡大することが大きなテーマとされています。とりわけ、Windows と追加の Linux ディストリビューションへのサポートが新たに加わります。
スナップショットによる提供
Swift 5.3 リリースブランチのダウンロード可能なスナップショットは、継続的インテグレーション(CI)テストの一部として定期的に公開されます。新しく対応したプラットフォームについても、準備が整い次第スナップショットのダウンロードが追加されます。Swift 5.3 のリリース後は、スナップショットに加えて公式の最終ビルドも公開されます。
スケジュールとブランチ運用
2020 年 4 月 20 日に、swift リポジトリと大半の関連プロジェクトリポジトリで release/5.3 ブランチが作成されます。従来の swift-X.Y-branch から、新しい命名スキーム release/5.3 に変わった点に注意してください。 このブランチが Swift 5.3 でリリースされる変更を含みます。ブランチ作成後は、リリース基準を満たす変更のみがプルリクエストを通じてブランチに取り込まれます。
一部のプロジェクトは、異なる日に Swift 5.3 ブランチを作成します。次のプロジェクトは 2020 年 3 月 27 日に release/5.3 ブランチを作成しました。
| プロジェクト | ブランチ作成日 |
|---|---|
| indexstore-db | 2020 年 3 月 27 日 |
| swift-llbuild | 2020 年 3 月 27 日 |
| swift-package-manager | 2020 年 3 月 27 日 |
| sourcekit-lsp | 2020 年 3 月 27 日 |
| swift-tools-support-core | 2020 年 3 月 27 日 |
これらのプロジェクトにも同じポリシーが適用されます。ブランチ作成後は、リリース基準を満たす変更のみがプルリクエストを通じて取り込まれます。
対象リポジトリ
Swift 5.3 のリリースに向けて、次のリポジトリが release/5.3 ブランチを持ちます。
indexstore-db・sourcekit-lsp・swift・swift-cmark・swift-corelibs-foundation・swift-corelibs-libdispatch・swift-corelibs-xctest・swift-integration-tests・swift-llbuild・swift-package-manager・swift-stress-tester・swift-syntax・swift-tools-support-core・swift-xcode-playground-support。
llvm-project には対応する swift/release/5.3 ブランチが用意されます。
リリースマネージャ
リリース全体は次の担当者が統括し、リリースが収束するにつれて変更管理が厳格化される時点を告知します。
- Ted Kremenek: Swift 5.3 全体のリリースマネージャ
- Doug Gregor: Swift コンパイラのリリースマネージャ
- Duncan Exon Smith: llvm-project のリリースマネージャ
- Fred Riss: llvm-project の LLDB のリリースマネージャ
- Ben Cohen: Swift 標準ライブラリのリリースマネージャ
- Tony Parker: swift-corelibs-foundation のリリースマネージャ
- Pierre Habouzit: swift-corelibs-libdispatch のリリースマネージャ
- Brian Croom: swift-corelibs-xctest のリリースマネージャ
- Rick Ballard: swift-package-manager のリリースマネージャ
- Daniel Dunbar: swift-llbuild・swift-tools-support-core のリリースマネージャ
- Argyrios Kyrtzidis: sourcekit-lsp・indexstore-db・swift-syntax・swift-stress-tester のリリースマネージャ
Swift 5.3 では、対応プラットフォームの拡大に伴い、プラットフォームごとのリリースマネージャが新たに加わりました。各プラットフォーム固有の問題と、そのプラットフォームのリリース品質確認を統括します。
- Nicole Jacque: Darwin プラットフォームのリリースマネージャ
- Tom Doron: Linux プラットフォームのリリースマネージャ
- Saleem Abdulrasool: Windows プラットフォームのリリースマネージャ
リリース管理プロセスについての質問は、Swift Forums への投稿や Ted Kremenek への連絡が案内されました。
参加・確認すべきポイント
Swift 5.3 に変更を取り込む流れ
- すべての言語・API の変更は Swift Evolution プロセスを経ます。Swift 5.3 への反映を狙う Proposal は、ブランチ作成日までに完了することを目指すのが望ましいとされました。例外は個別に判断され、特にリリースの中核目標と結びつく場合に考慮されます。
- それ以外の変更(バグ修正、診断の改善、SourceKit のインターフェイス改善など)は、リスクと影響に基づいて受け入れられます。
- リリースの品質確認に役立つ場合は、リスクの低いテストの微調整もリリースブランチに遅い段階で受け入れられます。
- リリースが収束するにつれて、取り込み基準は徐々に厳しくなります。
プルリクエストに添える情報
ブランチ作成後に release/5.3 への取り込みを提案するプルリクエストには、次の情報を含めます。
- Explanation(説明): 修正する問題や行う拡張の説明。簡潔でよいが明確であること。
- Scope(影響範囲): 変更の影響・重要度の評価。たとえばソース互換性を壊す言語変更かどうかなど。
- SR Issue: 対応する bugs.swift.org の SR 番号(該当する場合)。
- Risk(リスク): その変更を取り込むことでリリースに生じる具体的なリスク。
- Testing(テスト): 影響を検証するために実施済み、または必要なテスト。
- Reviewer(レビュアー): 影響を受けるコンポーネントのコードオーナーによるレビュー。技術レビューはコードオーナーが委任することも、必要に応じて依頼することもできます。
release/5.3 ブランチに入るすべての変更は、対応するリリースマネージャが受け入れるプルリクエストを経る必要があります。