Skip to content

Commit ee09ca0

Browse files
committed
Initial draft of the new LTS cadence blog post
1 parent cc983b5 commit ee09ca0

File tree

4 files changed

+122
-0
lines changed

4 files changed

+122
-0
lines changed

_posts/2025-02-01-lts-cadence.adoc

+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
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+
Loading
Loading
Loading

0 commit comments

Comments
 (0)