今年年初的时候,曝出了Python将迁移到Github的消息。Brett Cannon是目前Python的维护者,就是他经过慎重考虑之后做出了这个决定。但考虑到由此引起的争论,Brett先后在自己的个人网站对此进行了解释,后来又接受了InfoQ的采访。
本文就是根据其采访稿整理、修改而来(原文有好多处翻译的并不准确)。— EarlGrey@编程派
据Cannon介绍,他在做出迁移决定之前,进行了超过一年多时间的思考,并且考虑的方案也并不限于Github,而是有三个备选方案:
- 创建forge.python.org来托管Python的仓库
- 迁移到Git、GitHub、和Phabricator
- 迁移到Git和GitLab
综合多方面的因素,他最终选择了Github,而这背后主要有三个方面的原因:
- GitHub和GitLab在功能方面基本差不多;
- 活跃的开发者均熟悉Github,无论是核心开发者还是外围的贡献者。
- Python之父更倾向于选择Github。Cannon希望Guido老爹能够更多地、更方便地为Python的发展做贡献。
这样重大的决定是如何作出的?Cannon是这样介绍的:
基本上,这次的决策过程与之前两次没有太大的不同:首先,我请社区成员通过PEP(Python Enhancement Proposals)提出问题的解决方案,然后就所提出的议案组织讨论(但是讨论都是开放式的,最后那些PEP也就变成了讨论的起点,而不是最新的详细提案,这点你可能也注意到了),接下来就制订各种事情截止期限,比如确定测试实例的时间,以及最后作决定的期限。到了那个期限时,我就会根据当时所掌握的情况作出决定。
值得一提的是,Python只使用Github进行代码托管和代码审核。这也就意味着,Python的缺陷跟踪和维基百科系统不会迁移到GitHub上。
虽然已经公布了这个消息,但是并不是一时半会就能实现迁移的。那么,此次决定究竟能给Python社区带来哪些好处?整个迁移过程目前又处在哪个阶段呢?
Python迁移到Github后,对Python和Python社区有何好处吗?
我目前正在写的一个PEP的草稿可以解答这个问题。我们所期望的好处是,开发者可以更快速地进行补丁审查,更容易地参与到社区(真正的关键还是前者,但后者属于锦上添花)。我们希望,借助围绕Github所开发的工具,能够将过去Python开发团队的大量手动工作自动化,减少审核补丁的时间,从而提高生产效率。更何况,不论是开发团队还是广大的开源社区均对GitHub熟悉有加,因此我希望所有的开发工作能够更快速、更简便地进行。
目前的状态是什么?下一步将会做什么?
我是在2016年1月1日做出将Python的开发迁移到Github上这个决定的。现在,我正在撰写关于我们各个代码仓库迁移所需要的所有步骤的PEP。一旦在我们的核心工作流邮件列表中达成共识,认为这个PEP覆盖了所有可能出现的情况之后,我们就会开始工作。至于下一步的工作,将围绕着如何解决掉那些妨碍代码仓库迁移的“拦路虎”进行。因为我们迁移仓库所花费的困难是取决于他们所需要的工具,我希望是首先解决掉所有仓库的通用问题,然后再根据具体的仓库问题具体的解决。
你的决定在Python开发者中引起了不少争论,你对这个结果满意吗?
你指的是在我发表过决定之后在核心工作流邮件列表中的讨论吧!我对此结果非常的满意。虽然有一些人因为GitLab拥有一个开源的版本就愿意去选择它,但是所有人都理解我为何做出如此的决定。大家还是对此次迁移持积极态度的,而且利用此机会让我们的开发平台尽可能的保持平台无关性,未来迁移平台时也更加简单(这一定能够实现,自从我成为核心开发者之后,这算是第三次迁移了,而且Python到今天已经走过了第25个年头,依然保持强劲的势头,很难说我们过几年之后不会再次迁移平台)。
开源项目近期往Github上迁移似乎渐渐的增多,你是否有过担心,如其它人那样认为如此依托给一个商业公司是不靠谱的?你认为这会给Python带来困扰吗?
我会担心这个问题,因此毕竟发生问题之后我们就不得不再次迁移平台了(将来某个时候一定会发生)。但是我们将仅使用GitHub来托管代码以及代码审查,前者是很容易迁移,而后者则是临时性的,一旦关闭某个pull request后,其提交历史就没有什么价值了。尽管如此,我们还是会对代码审查的历史做备份,那么如果我们不得不迁移的话,我们就可以将全部的代码审查历史迁移走,因为即使是代码贡献被接受之后,代码审查历史仍是有价值的。如果GitHub不能提供开放的API给我们访问数据,将其封闭起来的话,我们一开始就不会考虑它。另外,诸如GitLab之类的平台会提供一些工具帮助你快速迁移项目 — 包括pull request — 到他们的平台,因此如果我们急着迁移出Github的话,我们除了多花些时间之外,并不会有什么损失。还有就是我们的缺陷跟踪系统不会迁移到GitHub上去,这就缩小了一些改动的范围,不需要担心失去控制。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/54382.html