Oracle is proposing to move to an every-six-months release cycle for Java SE and the JDK, beginning with the release of Java 9, the company announced today. Java is currently on a less agile, feature-driven release model.
The plan would be to have a time-based major release every six months, starting in March 2018, according to a blog post by Mark Reinhold, chief architect of the Java Platform Group at Oracle. Major releases could include any type of new feature; however, he indicated the new feature would not be merged until it’s nearly complete, ensuring that the release in development is feature-complete at all times. “In this type of model the development process is a continuous pipeline of innovation that’s only loosely couple to the actual release process, which itself has a constant cadence,” Reinhold wrote. “Any particular feature, large or small, is merged only when it’s nearly finished. If a feature misses the current train then that’s unfortunate but it’s not the end of the world, since the next train will already be waiting and will also leave on schedule.”
Reinhold further explained that the main development line will be forked into a release-stabilization branch three months before the GA of the next major release
Update releases will occur every quarter, and a long-term support release will be made every three years, beginning in September 2018. The versions of major releases will be numbered by year and month, so the release next March will be 18.3 and September’s will be 18.9, he explained.
Reinhold acknowledged the change in release cycles will necessitate changes in how the OpenJDK community works, and he called for a reduction in the overhead of the Java Community Process.
In an email to OpenJDK contributors, Reinhold proposed two long-running JDK projects – one for releases, and one for updates – which he said would cut down on administrative overhead and eliminate confusion for contributors.
To facilitate these changes, Reinhold said Oracle will ship OpenJDK builds under the GPL, so developers can more easily deploy their applications in the cloud. This will begin with the JDK 9 release. Oracle JDK builds will continue to ship and include features such as Java Flight recorder and Mission Control, and Oracle will continue to offer paid support. After JDK 9, Oracle will release those proprietary features to open source, with the purpose of reducing differences between the OpenJDK and Oracle JDK builds and ultimately making them interchangeable.
Oracle also will work with OpenJDK contributors to create an open infrastructure for build and test, enabling early access to builds for new features. And, the company is making its build, test and distribution binaries available under the GPL v2+classpath; previously they were only available under a commercial license.
The move from feature-based to time-based releases is a response to how people consume technology today – in many short, iterative releases. “Twenty years ago, when Java was originally created, people were used to platforms moving slowly, and it took a long time for people to move onto them when they came out,” Georges Saab, vice president of software development in Oracle’s Java Platform Group, told SD Times. “Today, people want to know they’re running on a platform that’s evolving and responding to new challenges they need help on.”
Innovation has happened more quickly in Java than it appears. Saab said, “With both [JDK] 8 and 9, we had major features we wanted to get right, but the flip side is that other innovations within those releases were help up. They were ready for 9, some for more than a year, but couldn’t be released until [modularity Project] Jigsaw was done.”
Jigsaw, Saab explained, provides the JDK with encapsulation, which can help developers ensure changes made to the code are forward-compatible, and that is what Oracle saw as the driver to accelerated release cycles.
For some who might speculate that Oracle is loosening its grip over the future and direction of Java, Saab pointed out that “Java SE was open-sourced many years ago by Sun. The implementation in OpenJDK is one we’ve been collaborating on with companies and individuals for a decade.”
Saab acknowledged that some people wonder what Oracle’s strategy is regarding OracleJDK. “We want to make OpenJDK just like any other open-source project you see. We want to see the rapid innovation in the latest builds. But if you have something you want to put into production and know it’s stable and has support from Oracle … you look at Oracle JDK as a potential offering.”