New informational JEP: 14: The Tip & Tail Model of Library Development

Alex Buckley alex.buckley at oracle.com
Thu Oct 3 21:08:08 UTC 2024


Everyone on jdk-dev is familiar with the six-month cadence of JDK
feature releases (21, 22, 23 ...) and the three-month cadence of JDK
update releases (21.0.1, 21.0.2, 21.0.3 ...).

This two-pronged release model delivers major innovation as soon as it's
ready, such as virtual threads in JDK 21 and the Foreign Function &
Memory API in JDK 22, while providing a conservative stream of updates
for users who prefer to stay on older releases.

In recent years we've taken to calling this the "tip & tail" release
model. The tip (the latest feature release) appeals to users building
new systems, as well as users who want the largest possible set of bug
fixes and performance improvements. The tails (various update releases)
appeal to users maintaining long-lived systems, by backporting only
select bug fixes and improvements and smartly avoiding the code churn
associated with backporting new features. Minimizing backports from tip
to tail means that more tails can be maintained, for longer.

If you're interested in tip & tail, please see the informational JEP
that we've just published:

   https://openjdk.org/jeps/14

If you'd prefer to watch a video, the JVM Language Summit keynote on
"Java in 2024" is all about tip & tail:

   https://www.youtube.com/watch?v=NV4v7KXKQ-c

We hope all library maintainers in the Java ecosystem will consider
adopting the tip & tail release model. Users who want the latest and
greatest would take the tip releases of libraries, which use tip
releases of dependencies, all the way down to the tip JDK. Users who
prefer stability would take the tail releases of libraries, which use
tail releases of dependencies, all the way down to a tail JDK. It's a
better experience for application developers, and surprisingly easy for
library developers ("backport as little as possible"). The entire Java
ecosystem stands to gain.

Alex


More information about the jdk-dev mailing list