此前,Python 开发组一直在 Python 官方 Bug 网站 https://bugs.python.org/ (缩写为 bpo 或 BPO) 上进行 Bug 提交、跟踪和处理,该网站使用开源工具 Roundup 作为 Bug 跟踪器。
2 月 18 日, Python 核心开发者 Łukasz Langa 在 Python Discourse 论坛上宣布 :Roundup / BPO 上的所有 Bug 数据都将迁移到 GitHub 中,迁移完成后,新的 Bug 在 GitHub Issue 中处理,原 BPO 官方网站将以只读模式存在,以避免链接失效带来的一系列问题 。
CPython 的开发早于 2017 年 2 月就转移到 GitHub Python 仓库中。因此,在 2018 年 Python 语言峰会上,核心开发者 Mariatta Wijaya 提议“放弃 Roundup 和 BPO 网站,切换到 GitHub Issues 用于 Bug 跟踪”,该提议引出了 PEP 581 提案,并于 2019年获得批准。
但由于从 Roundup / BPO 到 GitHub 的大迁移涉及的内容太多,在技术上、程序上或法律上都存在复杂难题,因此直到 2022 年大迁移才正式启动。
根据 Łukasz Langa 的介绍,迁移的时间表如下:
- 2022 年 2 月 18 日,星期五:开始持续两周的公众反馈收集期。
- 2022 年 3 月 4 日,星期五:在 Github 的帮助下执行最终的端到端 Bug 数据迁移测试,收集迁移所需的时间和出现的问题。(将使用 10% 的 Bug 进行测试。)
如果测试过程没啥问题,就正式迁移:
- 2022 年 3 月 10 日,星期四:迁移开始,BPO 进入只读模式,来自 BPO 的数据被导出,并放在 Github 上的临时存储库中。(预计要 22 个小时)
- 2022 年 3 月 11 日,星期五:Github 将临时存储库中的 Bug 转移到 GitHub 的 Python 库 ,正式完成迁移。
在迁移过程中,有如下需要注意的事项:
- 不允许在 Github 或 BPO 上创建新问题
- 仓库 PR 不受影响,可以在 Github 上创建新的 PR 并与现有 PR 交互
- 可以与 Github 上已迁移的 Issue 进行交互,但不鼓励破坏性操作(更改问题标题、编辑评论内容、删除评论、删除标签),因为数据的变化会让迁移是否有成功变得难以审核。
此外,PEP 581 进一步解释了该迁移计划的细节,对一些常见的疑惑也做出了解答:
Roundup / bpo 有啥问题?为啥放弃它?
- 维护者从未超过 5 个
- 没有任何 CI 构建,审查和测试压力太大
- UI 老旧
- 天天给用户发垃圾邮件,还容易暴露用户邮件地址
为什么不继续优化 Roundup / bpo?
优化成本太高,“创建和维护 GitHub 集成和审查机器人,工作量远低于继续优化并维护 Roundup 。”
为什么选择 GitHub 而不是其他平台?
GitHub 功能齐全,而且受众更广,大部分程序员都知道如何操作,能降低贡献门槛。因此,尽管它也有一大堆问题,但仍是目前最优解。
放弃了 Roundup / BPO 的同时,也意味着 Python 开发的基础设施已经完成了从基于 Python 的开源工具(Mercurial、Roundup)到专有的 GitHub “SAAS” 产品的全面转变(从某种角度来看,这或许也算是开源的一种悲哀?)。但无论如何,该迁移肯定会吸引很多熟悉、并习惯使用 GitHub 的新开发人员来做贡献,对 Python 的发展必然大有脾益。