前不久发布的 Java 9 除了发布了重大更新外,还公布了一个全新版本的发布计划。该计划基于 JEP 223,用于未来 Java 平台版本的发布。

然后,在这个全新版本发布计划公布后,Java 首席架构师 Mark Reinhold 随即做出了要对计划进行更改的提议,决定采用严格的,基于时间的发布模式。

基于 JEP 233 的发布计划的主要目标如下所示:

  • 版本号直观,易于理解
  • 与当前行业的实际情况相一致
  • 能兼容现有的包系统和平台部署机制
  • 避免在版本的一种元素中编码两种信息
  • 提供一个简单 API,用于版本号的解析、验证和比较

Java 9 发布说明中,对版本号的格式的描述如下:

  • $MAJOR 版本号随主要版本发布而增加,其中需要包含 Java SE 平台指定的重要特性。主要版本的新特性需要提前发布声明公布。
  • $MINOR 版本号随次要版本发布而增加,内容包含 bug 修复,标准 API 的修复以及平台规范指定以外的特性。
  • $SECURITY 版本号随着安全更新版本的发布而增加,内容需包含主要安全问题的修复。
  • $PATCH 版本号的增加,以包含安全和高优先级用户问题修复的版本发布为依据。

Reinhold 表示,这种基于特性的发布方式已经过时,为了更好的与其他平台竞争,决定采取基于时间的发布模式:

每六个月进行一次新特性发布,每季度进行一次更新发布,每三年进行一次LTS(长期支持)发布。

Reinhold 提议的发布模式如下:

例如,2018 年 3 月份的版本将表示为 18.3,2018 年 9 月份的版本将表示为为 18.9。

但似乎绝对基于时间的发布模式还不是很流行,所以 Reinhold 提出了修订版。

修订后的版本号格式如下:

  • $FEATURE 版本计数每六个月增加一次,不管发布内容如何
  • $INTERIM 版本计数的增加,不包含新特性的发布,不包含不兼容的变更,但包含 bug 的修复和功能增强。该计数在当前六个月的发布模式中为零
  • $UPDATE 版本计数每三个月增加一次,包含兼容性的更新,如,安全问题修复等
  • $EMERG 版本计数随紧急版本的发布而增加

如果这一发布模式被采用,则 Java 的下一个版本仍是 Java 10,将于 2018 年 3 月发布,Java 11 将于 2018 年 11 月发布。对于发布模式的提议仍在讨论中,相信结果很快就会公布。

详情请查看:New Version Scheme for Java SE Platform and the JDK

5 收藏


直接登录

推荐关注