Java 16没有时间表,也没有官方项目页面。 当您看到标题时,您进行双重拍摄可能会被原谅。 但是,如果您对Java领域的开发甚至不感兴趣,那么您已经知道JDK 16计划于2021年3月发布。即使Java 15仍然是重点,它也可以说是Java 15之前的最新版本。下一个长期支持版本(Java 17,将于2021年9月到期)将迈出重要而重要的一步。 当然,我们正在谈论的是迁移到Git作为版本控制系统(VCS)和GitHub作为托管平台。

Git和GitHub上的Java 16

迁移到Git的原因并不简单:Mercurial在许多地方仍在使用,但VCS似乎有些过时,尤其是如果您已经使用过Git:在移动文件时,Mercurial会创建Git的完整副本。原始文件并保存。 如果您移动大量文件,例如在开发JDK时(由于使用新的模块系统,对于JDK 9而言,移动了特别多的文件),这将导致大量内存。 JDK 8的大小为412兆字节,JDK 9的容量已增长到800兆字节,而JDK 10的大小超过1.5 GB。 此外,执行代码审查的方式(目前仍通过邮件列表进行)不是您所称的现代方式。 Git在这里提供了更多合适的选择。

是否有替代方案,而是哪种替代版本控制系统最终将取代Mercurial。 在第一个系列测试之后,使用Git的决定相当容易。 JEP 357是该评估的结果。

JEP的目标是将所有OpenJDK源代码存储库从Mercurial迁移到Git。 所有Java版本(包括标签)的整个历史都将保留,这意味着即将进行重大动作,正如Jakarta EE的动作所知道的那样。 但是,通过在工具方面已经进行的准备工作,可以使此操作变得更加容易:提供了几种CLI和导入/导出工具,这些工具是开源的 。 对于工具jcheck,webrev和defpath,已经有向后兼容的原型,新工具git-translate也作为原型存在。

还请参见:

借助JEP 369 ,GitHub正式宣布为指定托管平台。 尽管Project Skara的工具与服务器端的GitLab和客户端的Git和Mercurial兼容,但仍选择GitHub作为平台。 Erik Duveblad和Joe Darcy写道原因:

选择GitHub的动机在于,在选择外部提供商的三个主要方面都表现出色。 GitHub的性能可与其他提供商媲美或优于其他提供商,它是全球最大的源代码托管服务(截止2020年5月,有5000万用户),并且具有最广泛的API之一。

GitHub允许开发人员直接从Emacs,VS Code和Atom编辑器创建和查看拉取请求并对其进行评论。 对于IDE,尤其是IntelliJ,Eclipse和Visual Studio工具为GitHub提供了出色的支持。 另外,还有许多其他方便的工具使Git和GitHub的工作变得更加容易,例如GitHub Desktop,它是开源的。

目前情况如何?

在状态更新中 ,Java Platform Group的Robin Westberg和Erik Duveblad深入了解了Skara项目中已经完成的工作。 已经转换了70,000多个提交,发送了5,000多个电子邮件,创建了2100多个所谓的webrev 。 在每种情况下,已经创建或集成了1000多个拉取请求。 Skara项目在发布方面也已经取得了一些成功:OpenJFX项目已经托管在GitHub上,并在Git上发布,还发布了两个EA Project Loom版本。

还请参见:

Skara项目本身由15个开发人员驱动,由98.8%的Java代码组成。 另一个有趣的见解是,最大的请求请求包含3976次提交。 PR的webrev大小为2.1 GB,这是非常可观的数字。 以下列表显示了哪些项目已经移动:

  • OpenJFX
  • OpenJMC
  • 移动
  • 织机
  • 巴拿马
  • 都会
  • 瓦尔哈拉
  • 琥珀色
  • ZGC
  • 拉奈岛
  • 斯卡拉
  • 代码工具(JTHarness,Jcov,Asmtools)

展望:Git / GitHub上的JDK 16?

由于两个JEP现已被正式授予“拟定目标:JDK 16”状态,因此也可以粗略预测Oracle和JDK团队何时计划采取行动。 之所以“匆忙”,可能是因为遵循Java 16,JDK 17的LTS版本。可以理解的是,他们不希望通过长期支持发行版来升级。 当前至少仍待处理的项目是JDK本身,JDK更新和代码工具。

有关Skara项目以及迁移到Git / GitHub的更多信息,可以在官方项目Wiki以及JEP 357和JEP 369的说明中找到。 GitHub上提供了Project Skara的源代码,并且skara-dev邮件列表是讨论该项目的好地方。 Skara项目更新会议的幻灯片中可以找到Skara项目的最新信息(截至2020年5月7日)。