|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: 'Quarkus LTS - New Release Cadence Explained' |
| 4 | +date: 2025-01-28 |
| 5 | +tags: release |
| 6 | +synopsis: 'We are introducing a new release cadence for the LTS streams.' |
| 7 | +author: cescoffier |
| 8 | +--- |
| 9 | +:imagesdir: /assets/images/posts/lts-cadence |
| 10 | + |
| 11 | +Quarkus releases an https://quarkus.io/blog/lts-releases/[LTS] (Long-Term Support) version every six months. |
| 12 | +LTS is designed for users who prioritize stability over new features. |
| 13 | +These versions are maintained for one year and receive critical bug and CVE fixes. |
| 14 | +An overlap period allows a smooth upgrade to the next LTS. |
| 15 | + |
| 16 | +Until now, LTS micro-releases (e.g., 3.8.1, and 3.8.2) have occurred regularly but without a predictable schedule. |
| 17 | +**We’re changing this.** |
| 18 | + |
| 19 | +**** |
| 20 | +**TLDR:** |
| 21 | +LTS releases will follow a predictable cadence, with micro-releases every two months. |
| 22 | +The <<new-cadence>> section provides more details. |
| 23 | +**** |
| 24 | + |
| 25 | +== Releases, Releases, and More Releases |
| 26 | + |
| 27 | +Since its inception, Quarkus has followed a fast-paced release cycle: |
| 28 | + |
| 29 | +* _Minor releases:_ Once per month (e.g., 3.16, 3.17). |
| 30 | +* _Micro-releases:_ Weekly (e.g., 3.17.1, 3.17.2). |
| 31 | + |
| 32 | +The development process revolves around the main branch, which serves as the cutting edge of Quarkus development. |
| 33 | + |
| 34 | +Here’s how the regular release process works: |
| 35 | + |
| 36 | +* _Minor releases (3.y)_: A new branch is created from _main_, capturing all the changes from development up to that point. |
| 37 | +* _Micro-releases (3.y.z)_: These only include bug fixes and CVE remediations, backported from _main_ to the minor release branch. |
| 38 | + |
| 39 | +image::regular-release-cadence.png[align="center", caption="Regular Release Cadence"] |
| 40 | + |
| 41 | +== How LTS Releases Differ |
| 42 | + |
| 43 | +LTS releases prioritize stability over the latest features, and the process reflects this. |
| 44 | +Let’s look at the example of 3.19 (a minor release) and 3.20 (the next LTS): |
| 45 | + |
| 46 | +1. A new branch for 3.19 is created from main, containing the latest development at that time. |
| 47 | +2. Bug fixes and CVE remediations are backported to the 3.19 branch for its micro-releases. |
| 48 | +3. When preparing the LTS release (3.20), the branch is not created from main. |
| 49 | +Instead, it is created from the 3.19 branch, ensuring no new features from main are included. |
| 50 | + |
| 51 | +This approach improves the reliability of LTS releases by excluding potentially unstable or unproven changes. |
| 52 | + |
| 53 | +image::lts-release-principle.png[align="center", caption="LTS Release Principle"] |
| 54 | + |
| 55 | +Once we had this initial release, we did not have clear rules about the new micro releases of the LTS (3.20.1, 3.20.2…). |
| 56 | +So, while we have a predictable release calendar for the regular micro and minor releases, LTS micro releases were irregular. |
| 57 | + |
| 58 | +[[new-cadence]] |
| 59 | +== A New Cadence for LTS Micro-Releases |
| 60 | + |
| 61 | +Starting with 3.15 LTS, we’re introducing a predictable cadence for LTS micro-releases: |
| 62 | + |
| 63 | +* A new LTS version will be released every six months. |
| 64 | +* For each LTS, micro-releases will occur every two months (e.g., 3.20.1, 3.20.2). |
| 65 | + |
| 66 | +image::new-lts-cadence.png[align="center", caption="LTS Micro-Release Cadence"] |
| 67 | + |
| 68 | +== What’s Included in an LTS Micro-Release? |
| 69 | + |
| 70 | +LTS micro-releases are strictly limited to: |
| 71 | + |
| 72 | +* Bug fixes considered low-risk. |
| 73 | +* CVE fixes (moderate and critical). |
| 74 | +* Dependency updates for CVE remediation or critical bug fixes. |
| 75 | + |
| 76 | +**Nothing else.** |
| 77 | + |
| 78 | +== Emergency Exceptions |
| 79 | + |
| 80 | +In the event of a critical CVE (because we know it will happen), we’ll release an emergency micro-release outside the two-month cadence. |
| 81 | +These releases may follow a separate versioning scheme (e.g., 3.20.0.1) to indicate their exceptional nature (still under discussion). |
| 82 | + |
| 83 | +== What if? |
| 84 | + |
| 85 | +_What if I want a feature in the next LTS?_ |
| 86 | + |
| 87 | +To be included, the feature must be merged into main at least one month before the LTS branch is created. |
| 88 | +Don’t play with the clock - having a feature merged can take time, and the CI tends to be busy just before releases. |
| 89 | + |
| 90 | +_What if I want a feature to be added to an existing LTS?_ |
| 91 | + |
| 92 | +**No.** New features are only included in future LTS versions. |
| 93 | +For immediate access, consider using regular (non-LTS) releases. |
| 94 | + |
| 95 | +_What if a bug fix is needed in the next LTS micro-release?_ |
| 96 | + |
| 97 | +We’re happy to consider backporting bug fixes, provided they are low-risk. |
| 98 | +Risky fixes will require further discussion and may not be included. |
| 99 | +We will particularly consider bugs impacting features from previous LTS releases. |
| 100 | + |
| 101 | +_What if I want to know what’s included in the next LTS micro-release?_ |
| 102 | + |
| 103 | +We’re establishing an LTS working group to improve transparency and track backports. |
| 104 | + |
| 105 | +_What if a moderate CVE is reported against an LTS?_ |
| 106 | + |
| 107 | +The next LTS micro will include moderate CVE fixes every two months. |
| 108 | +Exceptional releases are only for important (where there is no mitigation) and critical CVEs. |
| 109 | + |
| 110 | +_How will the Quarkus Platform align with this cadence?_ |
| 111 | + |
| 112 | +The Quarkus Platform will follow the same release schedule. |
| 113 | +If you are a platform member, we recommend subscribing to this coordination group if you have not already done so. |
| 114 | + |
| 115 | +== Two-Line Summary |
| 116 | + |
| 117 | +* For regular users: Monthly minor and weekly micro-releases continue as before. |
| 118 | +* For LTS users: Expect LTS versions every 6 months, with micro releases every 2 months. |
| 119 | + |
| 120 | +The next LTS will be https://quarkus.io/blog/next-lts-3-20/[3.20]. |
| 121 | +The dates and schedule are communicated on the https://github.com/quarkusio/quarkus/wiki/Release-Planning[Release Planning Wiki Page]. |
| 122 | + |
0 commit comments