RSpec 分支策略
Jon Rowe
2020年6月22日简短版本
RSpec 仓库将弃用 master
作为默认分支名称。我们将等待关于默认分支新名称的共识,特别是 Github 选择的新默认名称。
如果在 8 月 1 日之前没有达成其他共识,master
将被重命名为 main
。届时所有开发工作将基于新的分支名称,使用 master
将在安装/使用时触发警告。所有开放的 PR 将被重新整理。
长版本
RSpec 的源代码托管在 Github 上。默认情况下,git,以及 Github 历史上一直使用 master
作为默认分支或主分支的名称。这个词一直让团队不安,随着社区最近推动从我们的技术堆栈中消除这种术语,我们将效仿并重命名这个分支。
我们目前倾向于 main
作为新名称(它与旧名称有共同的记忆),但我们也认识到,在默认名称周围达成社区共识很重要,因为它可以减少开发者遇到的意外。因此,我们将等待社区确定一个新的默认名称,特别是等待 Github 更改其默认名称,但如果在 8 月 1 日之前没有宣布,我们将使用 main
。
我们已经使用了其他分支来处理稳定版本(例如 3-9-maintenance
),它们不会受到影响。
有些人认为这会带来不便,因为 master
被用于很多事情,但这个词起源于一个人对另一个人的统治,特别是在奴隶制中,这次改变是为了包容所有人。
影响
我们一直鼓励使用我们的主分支来获取预发布功能,然后再将它们作为一组 gem 发布,这意味着可能有人通过他们的 Gemfile 使用 master
分支。我们将通过在文档中发布通知来弃用 master
,并且可能在 RSpec 本身发布安装后/使用时发布一条消息,警告该分支将变得陈旧,不再更新。此外,我们将考虑使用分支保护规则来防止从该日期起针对 master
的 PR。
我们打算采取的步骤
- 将
master
推送到main
(或其他新的分支名称)。 - 重新整理所有开放的 PR 并更新我们的构建。
- 将所有 RSpec 仓库的默认值设置为
main
(等等)。 - 将弃用
master
的更改推送到master
。 - 将来(可能在发布 RSpec 4 时)移除
master
。