New informational JEP: 14: The Tip & Tail Model of Library Development
Chen Liang
chen.l.liang at oracle.com
Sun Nov 3 20:42:11 UTC 2024
Hi Karsten,
I will share my personal understanding on this topic.
For when tail releases occur, I think the presence of incompatibilities, intentional or accidental, is usually a major factor. For feature-based versioning, such as semver (https://semver.org), it makes sense to create new tails when your MAJOR version bumps as it breaks backward compatibility. It also makes sense to create new tails with particular MINOR version bumps, because sometimes new functionalities may bring unforeseen backward compatibility problems. For time-based release, like that for OpenJDK, the promotion of tail can also be based on features; for example, when JDK 9 moved around sun's internal implementation packages to jdk.internal, libraries break because their (technically invalid) dependencies changed, and some distributors offered to make 8 a tail.
For when tail releases are terminated, I think it is mainly due to the maintenance costs. For example, as time goes on, the backport of security or bugfixes can reduce as the codebase diverges, and only the most critical of the bugfixes may be backported. For example, between JDK 11 and JDK 17, I believe there had been other companies that tried to maintain longer tail trains for some versions, but they ultimately gave up due to the costs.
For publishing a bugfix on the tip train, sure it is totally possible! For example, if a bug is fixed on JDK repository's master branch, it will be included in a new build. But this means that the bugfix is distributed with risky features, which can impact some users. In fact, a majority of JDK bugs are never backported to tail releases, and some bugs are only backported after there has been a request from tail release users. Such an ideology of careful backports can be seen from the OpenJDK's JDK-update project process of backport approval. (See the process at https://openjdk.org/projects/jdk-updates/groundrules.html)
Regards,
Chen Liang
________________________________
From: jdk-dev <jdk-dev-retn at openjdk.org> on behalf of Karsten Silz <karsten.silz at gmail.com>
Sent: Sunday, November 3, 2024 1:55 AM
To: jdk-dev at openjdk.org <jdk-dev at openjdk.org>
Subject: Re: New informational JEP: 14: The Tip & Tail Model of Library Development
I have two questions about tail releases.
First, Alex Buckley clarified that not ALL tail releases must survive the next tip release. In OpenJDK, three out of four don't. But must at least ONE tail release outlast the next tip release every X years to qualify the library for "tip & tail"? After all, the JEP "does not specify when or why tail trains are created, nor when or why they are discontinued."
Second, can a library publish a bug fix release on the tip train? Or is that automatically a tail release?
Regards,
Karsten Silz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jdk-dev/attachments/20241103/79ad1e4a/attachment-0001.htm>
More information about the jdk-dev
mailing list