Swift 5.1 发布流程

这篇文章描述了 Swift 5.1 的目标、发布流程和预计时间表。

动机和目标

Swift 5.1 的首要目标是使该语言实现模块稳定性

二进制兼容性

在 Apple 平台上,由于 ABI 现在已经稳定,Swift 5.1 与 Swift 5.0 二进制兼容,并且与 Swift 的未来版本二进制兼容。

在非 Apple 平台(如 Linux)上,ABI 尚未完全稳定,以便进行更多审查。对于基于 Linux 的新平台,这种审查尤其必要。

源码兼容性

与 Swift 5.0 一样,我们预计大多数使用 Swift 5.0 编译器构建的源代码都将可以使用 Swift 5.1 编译器进行编译。但是,Swift 5.1 中的错误修复可能会使其检测到以前未检测到的代码错误。

Swift 5.1 的快照

Swift 5.1 发布分支的可下载快照将定期发布,作为持续集成测试的一部分。

一旦 Swift 5.1 发布,除了快照之外,还将发布官方最终构建版本。

将更改纳入 Swift 5.1

Swift 5.0 的开发需要在整个收敛期间投入异常多的关注和精力,因为每个问题都必须评估其对永久 ABI 的影响。因此,Swift 5.1 的开发窗口比以前的版本明显缩短。这种更严格的时间限制是确保交付成熟且稳定的 5.1 版本所必需的,对于破坏性更改有更严格的截止日期。

swift-5.1-branch 分支包含将在 Swift 5.1 中发布的更改。该分支的管理方式如下

下表指出了此计划的一些值得注意的例外情况。每个例外情况都将每天从 master 分支合并到 swift-5.1-branch 分支中。每个例外情况的最终更改截止日期将延长至 3 月 18 日之后,并将稍后公布。

项目 截止日期
indexstore-db 待公布
sourcekit-lsp 待公布
swift-corelibs-foundation 待公布
swift-corelibs-libdispatch 待公布
swift-corelibs-xctest 待公布
swift-llbuild 2019 年 4 月 10 日
swift-package-manager 2019 年 4 月 10 日
swift-stress-tester 待公布
swift 2019 年 3 月 18 日

将更改纳入 Swift 5.1 的原则

受影响的仓库

以下仓库将有一个 swift-5.1-branch 分支,以跟踪作为 Swift 5.1 发布版本一部分的源代码

发布经理

发布版本的总体管理将由以下人员监督,他们将在 Swift 5.1 发布版本收敛时宣布何时对更改实施更严格的控制

如果您对发布管理流程有任何疑问,请随时在开发论坛上发帖,或直接联系 Ted Kremenek

发布分支的拉取请求

为了使拉取请求在最终从 master 分支重新分支后被考虑包含在发布分支中,它必须包含以下信息

进入 swift-5.1-branch 分支的所有更改(自动从 master 分支合并的更改除外)必须通过拉取请求,并且必须由相应的发布经理接受。