Swift 5.0 日本語化計画 : Swift 5.0
Swift 4.1 リリースの過程
2017年10月17日   Ted Kremenek
この記事では、Swift 4.1 の目標、リリースの過程、および推定スケジュールについて説明します。
Swift 4.1 は、Swift 4.0 とはソース互換のアップデートです。これには、Swift パッケージマネージャ、Linux での Swift、コンパイラと標準ライブラリの一般的品質改善だけでなく、コアランゲージに対するいくつかの追加機能強化が含まれています。
Swift 4.1 は 4.0 とバイナリ互換では ありません。Swift 5 で Swift の ABI を安定化 させる努力の一環である様々な進行中の変更が含まれています。
Swift 4.1 は、2018 年前半にリリースされる予定です。
ソース互換
Swift 4.0 コンパイラ (Swift 3 互換モードを使用するものを含む) でビルドされたソースのほとんど大部分は、Swift 4.1 コンパイラでコンパイルできます。これが絶対的な保証にならない、いくつかの例外的な場合があります。これには、コンパイラの誤った動作や汎用の使用の過渡的ケースの修正が含まれており、これは、長年期待されていた汎用の機能の導入で解決されました。しかし、ほとんどのプロジェクトはソースの変更なしでビルドを続けることが期待されます。
Swift 4.1 のスナップショット
Swift 4.1 リリース分岐のダウンロード可能なスナップショットは、継続的統合 テストの一環として定期的に投稿されます。
Swift 4.1 がリリースされると、スナップショットに加えて正式な最終ビルドも掲載されます。
Swift 4.1 への変更
swift-4.1-branch には、Swift 4.1 でリリースされる変更が含まれています。分岐は以下のように管理されます:
- 2017年10月18日 (最初の分岐):最初に swift-4.1-branch が master から切断されます。
- 約2週間ごとに、master は最終分岐の日付までに swift-4.1-branch に統合されます。
- 2017年12月4日 (最終分岐):swift-4.1-branch は、前回の master からの変更が統合されます。最終分岐の日付の後、選択された危険な修正のみが (プルリクエストを介して) リリースに入れられる「発酵 (bake)」期間があります。
この計画の 4 つの重要な例外は、swift-package-manager、swift-llbuild、swift-corelibs-foundation、及び swift-corelibs-libdispatch です。これは、master から毎日 swift-4.1-branch に統合し、変更の最終期限は 12月4日以降に延長され、後で発表される予定です。
Swift 4.1 への変更を哲学する
- Swift 4.1 のすべての言語および API の変更は、Swift 改革 のプロセスを経て、そこに文書化されているリリースの変更の範囲に含まれる基準を満たします。
- 他の変更 (すなわち、バグ修正、診断の改善、SourceKit インターフェイスの改善など) は、それらのリスクと影響に基づいて受け入れられます。
- 低いリスクのテスト微調整はまた、リリースの資格認定に役立つ場合は、リリース分岐の後半にも受け入れられます。
- リリースが収束するにつれて、受け入れられる変更の基準はますます厳しくなります。
影響を受けたリポジトリ
以下のリポジトリには、Swift 4.1 リリースの一部としてソースを追跡するための、swift-4.1-branch 分岐があります。
- 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-llvm、swift-clang、swift-compiler-rt、swift-lldb リポジトリは、すでに master から swip-4.1-branch を分岐しており、再度再分岐しません。
リリースマネージャ
リリースの全体的な管理は、リリースが収束するにつれて、Swift 4 リリースの変更の管理がより厳しくなると発表する以下の個人によって監督されます。
- Ted Kremenek が Swift 4.1 の全体のリリースマネージャです。
- Frédéric Riss は、swift-llvm、swift-clang、swift-compiler-rt のリリースマネージャです。
- Ben Cohen は、Swift 標準ライブラリのリリースマネージャーです。
- Tony Parker は、swift-corelibs-foundation のリリースマネージャです。
- Daniel Steffen は、swift-corelibs-libdispatch のリリースマネージャです。
- Brian Croom は、swift-corelibs-xctest のリリースマネージャです。
- Rick Ballard は、swift-package-manager のリリースマネージャです。
- Daniel Dunbar は、swift-llbuild のリリースマネージャです。
リリース管理プロセスに関するご質問は swift-dev または Ted Kremenek に直接お気軽にお問い合わせください。
リリース分岐に関するプルリクエスト
プルリクエストをリリース分岐に含めることを検討するには、以下の情報を含めなければなりません。
- 説明:修正されている問題の説明または強化が行われている事。これは簡潔にできますが、明確でなければなりません。
- 範囲:変更の影響/重要性の評価。たとえば、それはソースを壊す言語の変更かどうかなどです。
- SR 問題:変更が bugs.swift.org で問題点/強化点を修正/実装した場合の SR。
- 危険:この変更を行うためのリリースへの (具体的な) リスクは何か?
- テスト:この変更の影響をさらに検証するために、どのような具体的なテストが実施されたか、または実行される必要があるか?
- レビュー担当者:影響を受けたコンポーネントの 1 人以上の コードオーナー が変更内容を確認する必要があります。テクニカルレビューは、コードオーナーによって委任されるか、適切か有用とみなされるように要求することがあります。
swift-4.1-branch に入るすべての変更 (master から自動的に統合される変更を除いて) は、対応するリリースマネージャが受け入れるプルリクエストを経由しなければなりません。
<-致命的なエラーの表示を改善した Xcode 9.1 標準ライブラリの条件準拠->