Categories
程式開發

OpenJDK迁移至Github


OpenJDK从Mercurial迁移至GitHub将会在2020年9月份完成。新的源码管理方案预期所带来的好处包括性能的改善以及更好的对代码评审的支持。

OpenJDK从2008年以来就使用Mercurial源码管理方案来存储源码并执行代码评审。有一些OpenJDK项目已经迁移到了GitHub上,JDK项目将会紧随其后,在2020年9月Github将会成为官方的主读取/写入仓库。

有些OpenJDK项目,如Loom、Valhalla和JMC已经完全从Mercurial迁移到了GitHub。有些其他的项目,如JDK本身,则正在迁移的过程之中。对于这些项目来说,仓库已经放到了GitHub上,但依然是一个只读的副本。

负责迁移至GitHub的Joe Darcy最近更新了当前的状态:我们希望在JDK 15结束,JDK 16开始的这个时间点,将JDK主线迁移至Skara。JDK 15会在2020年9月发布,JDK 16会在2021年3月发布。

在2018年,Skara项目启动,它的目的是评估Mercurial源码控制管理工具的替代方案。项目的使命描述这样写到:让所有的贡献者更加高效,包括新的贡献者和已有的贡献者。

在该Twitter上的声明之后,Darcy在邮件列表中给出了一个更详细的描述:我们正在考虑在2020年9月初,将github.com上的jdk/jdk仓库作为JDK 16源码的主读取/写入仓库。这可能会在JDK 15发布GA版本的前几周进行,也就是按照JDK 15的周期,在6月份fork一个单独的JDK 15仓库出来之后。

jdk.java.net发布的早期可访问JDK 16构建可能会在仓库转移之前转换成基于Git,而不再是基于Mercurial。JDK构建使用哪种SCM作为基础可以通过build根目录下的“release”文件推断出来。除了其他的一些信息之外,release文件记录了SCM以及用于构建的源码的SCM散列值。

为了评估Mercurial可行的替代方案,Skara定义了一个评估标准的列表

  • 性能:从主仓库clone操作的耗时、本地操作的耗时等等。
  • 空间的效率。
  • 不同地域的可用性。
  • 支持常用的开发环境,如Linux、Mac和Windows。
  • 能够很容易地托管JDK的整个历史,以及未来十年JDK预期的增长。
  • 支持JDK通用的代码评审实践。
  • 提供编程API,以支持评审和过程的辅助与自动化。

尽管现有的OpenJDK开发人员很熟悉Mercurial,另外还有迁移相关的成本,但是Skara 项目成员还是决定迁移到Git。

迁移到Git的主要原因是版本控制系统元数据的大小以及在工具和托管方面的可用性。JEP 357:从Mercurial迁移到Git详细描述了使用Git的动机。

选择GitHub是因为它的性能、API和蓬勃的社区。JEP 369:迁移至GitHub解释了迁移到GitHub的原因。

Skara本身在GitHub上有自己的一个仓库,包含了一个辅助转换到GitHub的工具列表。有一些工具可以将Mercurial仓库导入到Git中,也包括反向导入的功能。除此之外,还提供了CLI工具来帮助迁移,比如将Mercurial转换为Git散列。

原文链接:
OpenJDK Migrates to Github