At home in the “silicon valley university” | zero base with Google, Kaggle artificial intelligence > > >  

In addition to major updates, the recent release of Java 9 also announced a new release schedule. The plan is based on JEP 223 for future releases of Java platform versions.

Then, after this new release plan was announced, Mark Reinhold, Java’s chief architect, proposed changes to the plan and decided to adopt a strict, time-based release model.

The main objectives of the release plan based on JEP 233 are as follows:

  • Version numbers are intuitive and easy to understand

  • Consistent with the actual situation of the current industry

  • Compatibility with existing package systems and platform deployment mechanisms

  • Avoid encoding two kinds of information in one element of the version

  • Provides a simple API for version number resolution, validation, and comparison

The Java 9 release notes describe the format of the version number as follows:

$MAJOR.$MINOR.$SECURITY.$PATCHCopy the code

  • The $MAJOR version number increases with MAJOR releases and is required to include significant features specified by the Java SE platform. Major releases of new features require pre-release announcements.

  • The $MINOR version number increases with MINOR releases and includes bug fixes, standard API fixes, and features not specified by the platform specification.

  • The $SECURITY version number increases with the release of SECURITY updates, which should include fixes for major SECURITY issues.

  • The increase of PATCH version number is based on the release of a version that includes security and high priority user problem fixes.

Reinhold said that the feature-based release model was outdated, and in order to better compete with other platforms, he decided to adopt a time-based release model:

New feature releases occur every six months, update releases occur quarterly, and LTS (Long Term support) releases occur every three years.

Reinhold’s proposed release model is as follows:

$YEAR.$MONTHCopy the code

For example, the March 2018 release will be represented as 18.3 and the September 2018 release as 18.9.

But it seemed that the absolute time-based publishing model wasn’t very popular yet, so Reinhold proposed a revision.

The revised version number format is as follows:

$FEATURE.$INTERIM.$UPDATE.$EMERGCopy the code

  • $Does the FEATURE version count increase every six months regardless of the release

  • The increase in the count of INTERIM releases does not include new feature releases, does not include incompatible changes, but does include bug fixes and feature enhancements. This count is zero in the current six-month release pattern

  • $UPDATE The version count is increased every three months to include compatibility updates, such as security fixes

  • The $EMERG version count increases with emergency releases

If this distribution pattern is adopted, the next release of Java will still be Java 10, which will be released in March 2018, and Java 11 in November 2018. The proposed release model is still under discussion and we believe the results will be announced soon.

For details, see New Version Scheme for Java SE Platform and the JDK