Swift 4.1 发布流程
这篇文章描述了 Swift 4.1 的目标、发布流程和预计时间表。
Swift 4.1 是 Swift 4.0 的源码兼容更新。它将包含一些对核心语言的附加增强功能,以及对 Swift Package Manager、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分支初始切出。 - 大约每两周,
master分支将被合并到swift-4.1-branch分支,直到最终分支日期。 - 2017 年 12 月 4 日(最终分支):
swift-4.1-branch分支将最后一次合并来自master分支的更改。在最终分支日期之后,将有一个“烘烤”期,在此期间,只有经过挑选的关键修复程序(通过拉取请求)才会进入发布版本。
此计划的四个显著例外是 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 Evolution 流程,有关哪些更改在发布范围内的标准已记录在那里。
-
其他更改(例如,错误修复、诊断改进、SourceKit 接口改进)将根据其风险和影响被接受。
-
如果低风险的测试调整有助于发布版本的验证,也将在发布分支的后期被接受。
-
随着发布趋于稳定,接受更改的标准将变得越来越严格。
受影响的仓库
以下仓库将有一个 swift-4.1-branch 分支,用于跟踪作为 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-llvm、swift-clang、swift-compiler-rt 和 swift-lldb 仓库已经从 master 分支分出了 swift-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 问题:SR(如果更改修复/实现 bugs.swift.org 上的问题/增强)。
-
风险:接受此更改对发布版本有哪些(具体)风险?
-
测试:已完成或需要完成哪些具体测试,以进一步验证此更改的任何影响?
-
审查者:受影响组件的一个或多个代码所有者应审查更改。技术审查可以由代码所有者委派,或者根据需要或有益的方式请求。
进入 swift-4.1-branch 分支的所有更改(自动从 master 分支合并的更改除外)必须通过拉取请求,并由相应的发布经理接受。