Skip to content

Commit 7a8b400

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

File tree

4 files changed

+123
-0
lines changed

4 files changed

+123
-0
lines changed

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

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

0 commit comments

Comments
 (0)