Swift Digest
Blog | Swift.org Blog

Swift 4.1 のリリースプロセス

Swift 4.1 Release Process

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

この記事の要点

リリース計画の概要

Swift 4.1 の位置づけ

Swift 4.1 は Swift 4.0 とソース互換なアップデートです。中核言語へのわずかな追加的拡張に加え、Swift Package Manager、Linux 上の Swift、コンパイラと標準ライブラリ全般の品質改善が含まれます。

一方で Swift 4.1 は Swift 4.0 とバイナリ互換ではありません。Swift 5 で Swift ABI を安定化させる取り組みの一環として、さまざまな内部的(under-the-hood)な変更が含まれるためです。

Swift 4.1 は 2018 年前半のリリースが見込まれていました。

ソース互換性

Swift 4.0 コンパイラ(Swift 3 互換モードを使うものを含む)でビルドできたソースの大半は、Swift 4.1 コンパイラでもビルドできるはずです。ただし、絶対的な保証ができない例外もあります。コンパイラの不正な挙動に対する修正や、長く待たれていたジェネリクス機能の導入によって対処されるようになったジェネリクスのコーナーケースなどが該当します。とはいえ、大半のプロジェクトはソースを変更せずにそのままビルドできることが見込まれていました。

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

これまでのリリースと同様、Swift 4.1 でもリリースブランチの日次スナップショットを提供します。スナップショットは継続的インテグレーション(CI)テストの一部として定期的に公開されます。Swift 4.1 のリリース後は、スナップショットに加えて公式の最終ビルドも公開されます。

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

swift-4.1-branch には Swift 4.1 でリリースされる変更が含まれ、次のように運用されます。

この計画には 4 つの注目すべき例外があります。swift-package-manager・swift-llbuild・swift-corelibs-foundation・swift-corelibs-libdispatch は master から swift-4.1-branch へ毎日マージされ、これらの変更の最終締め切りは 12 月 4 日より後になり、後日告知されるとされました。

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

リリースマネージャ

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

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

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

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

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

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

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

関連リンク