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

Karsten Silz karsten.silz at gmail.com
Tue Oct 29 22:53:51 UTC 2024


The key of "Tip & Tail" is that tail trains only get "critical bug fixes and security patches", though "there may be exceptions". So, how do you know what's a bug vs. a feature? A bug fix vs. a critical bug fix? And how do you know if a library follows "Tip & Tail"?

Take JDK 22.0.1: https://www.oracle.com/java/technologies/javase/22-0-1-relnotes.html This tail release contains time zone updates.

You could say these time zone updates mix features & bug fixes: Rules & laws change, such as "Kazakhstan unifies on UTC+5", and the time zone data changes then accordingly as a new feature. You could also say "Kazakhstan unifies on UTC+5" is a bug: The time zone data must be in sync with the world. And if the world changes, it's not anymore, and that's a bug.

But even if you say this is a feature, you could say it's a worthy exception: You want Java to show the right time.

Now, only critical bug fixes are supposed to go into tail trains. But the time zone update contains this fix: "localtime no longer mishandles Ciudad Juárez in 2422". The year is not a typo. Two thoughts.

First, somebody decided that fixing a problem 400 years away was a critical bug fix in 2022. You know, instead of 399 years away next year or so.

Second, worrying about a time zone problem 400 years away shows a refreshingly optimistic view of software, mankind, and time. After all, cockroaches don't wear watches - today, that is.

So, do the JEP authors have any guidance on "bug vs. a feature" and "bug fix vs. critical bug fix"?

Next: How will you know if a Java library follows "Tip & Tail"? Will you see it on Maven Central? If so, could we please also get the supported Java version there? 

Or will it be a GitHub badge? Not sure the Duke makes for a great badge: That fella is all tip and no tail. 

Or will there be a community repository of "Tip & Tail" libraries, like the GraalVM Reachability Metadata Repository (https://github.com/oracle/graalvm-reachability-metadata)?


Regards,
Karsten Silz

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jdk-dev/attachments/20241029/26b5867d/attachment.htm>


More information about the jdk-dev mailing list