Swift 5.2 发布流程
这篇文章描述了 Swift 5.2 的目标、发布流程和预计时间表。
动机和目标
Swift 5.2 是一个旨在包含显著的质量和性能增强的版本。
Swift 5.2 的快照
Swift 5.2 发布分支的可下载快照将定期发布,作为持续集成测试的一部分。
一旦 Swift 5.2 发布,除了快照之外,还将发布官方最终构建版本。
将更改纳入 Swift 5.2
在 2019 年 12 月 9 日,swift-5.2-branch 分支将被切出,这将包含 Swift 5.2 中发布的更改。分支切出后,如果更改符合发布标准,则可以通过拉取请求将其合并到分支中。
下表指示了此计划的一些值得注意的例外情况。每个例外情况都将每天从 master 合并到 swift-5.2-branch。每个例外的最终更改截止日期将延长到 11 月 5 日之后,并将稍后公布。
| 项目 | 截止日期 |
|---|---|
| indexstore-db | 2020 年 1 月 7 日 |
| sourcekit-lsp | 2020 年 1 月 7 日 |
| swift-llbuild | 2020 年 1 月 7 日 |
| swift-package-manager | 2020 年 1 月 7 日 |
关于将更改纳入 Swift 5.2 的理念
-
Swift 5.2 的所有语言和 API 更改都将通过 Swift 演化流程。演化提案应力争在分支日期前完成,以增加其对 Swift 5.2 发布的影响。例外情况将根据具体情况考虑,特别是如果它们与发布的中心目标相关联。
-
其他更改(例如,错误修复、诊断改进、SourceKit 接口改进)将根据其风险和影响被接受。
-
如果低风险的测试调整有助于版本的合格,也将在发布分支的后期被接受。
-
随着版本的收敛,接受更改的标准将变得越来越严格。
受影响的仓库
以下仓库将拥有 swift-5.2-branch 分支,以跟踪作为 Swift 5.2 版本一部分的源代码
- indexstore-db
- sourcekit-lsp
- swift
- swift-clang
- swift-clang-tools-extra
- swift-cmark
- swift-compiler-rt
- swift-corelibs-foundation
- swift-corelibs-libdispatch
- swift-corelibs-xctest
- swift-integration-tests
- swift-libcxx
- swift-llbuild
- swift-lldb
- swift-llvm
- swift-package-manager
- swift-stress-tester
- swift-syntax
- swift-xcode-playground-support
发布经理
版本的总体管理将由以下人员监督,他们将在 Swift 5.2 版本收敛时宣布何时对更改实施更严格的控制
-
Ted Kremenek 是 Swift 5.2 的总体发布经理。
-
Doug Gregor 是 Swift 编译器 的发布经理
-
Duncan Exon Smith 是 swift-llvm、swift-clang、swift-compiler-rt、swift-clang-tools-extra 和 swift-libcxx 的发布经理。
-
Fred Riss 是 swift-lldb 的发布经理。
-
Ben Cohen 是 Swift 标准库 的发布经理。
-
Tony Parker 是 swift-corelibs-foundation 的发布经理。
-
Brian Croom 是 swift-corelibs-xctest 的发布经理。
-
Rick Ballard 是 swift-package-manager 的发布经理。
-
Daniel Dunbar 是 swift-llbuild 的发布经理。
-
Argyrios Kyrtzidis 是 sourcekit-lsp、indexstore-db、swift-syntax 和 swift-stress-tester 的发布经理。
请随时在开发论坛上发帖,或直接联系 Ted Kremenek,咨询有关发布管理流程的任何问题。
发布分支的拉取请求
为了使拉取请求被考虑包含在发布分支 (swift-5.2-branch) 中(在分支切出后),它必须包含以下信息
-
解释:对要修复的问题或要进行的增强的描述。这可以简短,但应清晰明了。
-
范围:对更改的影响/重要性的评估。例如,更改是否是破坏源的语言更改等等。
-
SR 问题:SR(如果更改修复/实施了 bugs.swift.org 上的问题/增强功能)。
-
风险:接受此更改对版本发布的(具体)风险是什么?
-
测试:已完成或需要完成哪些具体测试,以进一步验证此更改的任何影响?
-
审阅者:受影响组件的一个或多个代码所有者应审阅更改。技术审阅可以由代码所有者委派或根据需要或有益的方式请求。
所有进入 swift-5.2-branch 的更改都必须通过拉取请求,这些拉取请求由相应的发布经理接受。