Replies: 5 comments 2 replies
-
Thanks for the suggestion but I'm not sure it's a good idea. Changing a major version has a meaning: it usually says that there are very major changes to the library that will make the update complex. If we take the case of 3.8/3.9, 3.9 is the direct continuation of 3.8. LTS is about having long term support for a specific version. It doesn't mean the end of a given major. For instance, both 3.2 and 3.8 are LTS versions. Could you explain why you would expect a new major? I don't see what it would bring to the plate? |
Beta Was this translation helpful? Give feedback.
-
... Why?
+1, semantic versioning is what the current versioning scheme is about: https://semver.org/ |
Beta Was this translation helpful? Give feedback.
-
Thanks for dropping your thoughts on this! It's nice to see suggestions like this, but I believe that if we elected to move to such a model, it would not dispel confusion, but instead create more of it. |
Beta Was this translation helpful? Give feedback.
-
I'm actually going to convert this to a discussion as I think it fights that category better |
Beta Was this translation helpful? Give feedback.
-
I think the Quarkus project should follow the ideas behind https://semver.org/:
How we found out about LTS:We didn't know that 3.2 and 3.8 was considered LTS versions, and we happily upgraded to other minor version as well. Breaking change 1: Quarkus-RestThis means that if I increase the minor version 3.8 → 3.9, or even 3.8 → 3.11, there should be no code changes on my side. Breaking change 2: ContainerRequestFilterBut when I tried to upgrade an internal plugin, we also saw that Development version and major versionIf a series like Quarkus 4.x is considered a development version, then we don't need to bump the major version for every breaking change. But once it is a LTS (Stable) version, major functionality should not change unless the major version change. Java LTS versioningWe would also like to look at Java LTS versioning scheme. Everybody knows that they should only use versions 11, 17 and 21. They should avoid Java versions 12-16, 18-20 and 22-24 in ordinary production applications, as they are more like "feature previews" and meant for the frameworks to implement the new functionality. |
Beta Was this translation helpful? Give feedback.
-
Description
I believe that the version schema for Quarkus should indicate if it is an LTS.
Either a new Major version is made for the LTS series, or the LTS versions should be the subsequent minor versions in the current major version. Then the new development (snapshot?) version should be tagged with a new major number.
For example 3.8 and 3.8+ should be:
LTS:
Development version:
PS: I don't mean we should change existing versions, but we should apply this for the future versions.
I expect that development versions have a different major version number than the LTS version.
Implementation ideas
No response
Beta Was this translation helpful? Give feedback.
All reactions