3
3
[ summary ] : #summary
4
4
5
5
Add a Long Term Support (LTS) channel of releases for Wasmtime. LTS releases for
6
- Wasmtime will be every 10 versions at versions ` N0 .0.0` . LTS releases are
7
- supported for 15 releases to ensure that there is always at least two LTSes at
8
- any one point in time.
6
+ Wasmtime will be every 12 versions at versions starting at 24 .0.0. LTS releases
7
+ are supported for 24 releases (2 years) to ensure that there is always at least
8
+ two LTSes at any one point in time.
9
9
10
10
# Motivation
11
11
[ motivation ] : #motivation
@@ -84,12 +84,13 @@ source project with critical security requirements.
84
84
[ proposal ] : #proposal
85
85
86
86
Wasmtime will add a new type of release to its release process, a Long Term
87
- Support (LTS) release. LTS releases will happen every 10th release of Wasmtime,
88
- starting with 30.0.0. Each LTS will be supported for 15 versions, or 15 months.
89
- Overlapping LTS windows enables users of the LTS release to upgrade on their
90
- own time from one LTS to another. At this time though it's expected that users
91
- will always upgrade from one LTS to another, for example a user of 30.0.0 could
92
- upgrade to 40.0.0 as late as when 45.0.0 is released.
87
+ Support (LTS) release. LTS releases will happen every 12th release of Wasmtime
88
+ (once a year), starting with 24.0.0 (retroactively classified as LTS). Each LTS
89
+ will be supported for 24 versions, or 24 months/2 years. Overlapping LTS
90
+ windows enables users of the LTS release to upgrade on their own time from one
91
+ LTS to another. At this time though it's expected that LTS users will likely
92
+ upgrade from one LTS to another, for example a user of 36.0.0 could upgrade to
93
+ 48.0.0 as late as when 52.0.0 is released.
93
94
94
95
LTS releases for Wasmtime will have the following properties:
95
96
@@ -112,53 +113,63 @@ LTS releases will be automated the same way all releases are managed for
112
113
Wasmtime today. A dedicated ` release-N.0.0 ` branch is created and then further
113
114
releases are made from that branch. Subsequent releases of LTSes for CVEs or bug
114
115
fixes will be versioned by incrementing the patch version of semver, for example
115
- 30 .0.1. A patch release is made via [ today's release process] [ patches ]
116
+ 36 .0.1. A patch release is made via [ today's release process] [ patches ]
116
117
117
118
Wasmtime will continue to guarantee security fixes and support bug fix backports
118
119
for the current release of Wasmtime and the previous release of Wasmtime as
119
- well. For example if the current release is 43 .0.0 then a CVE will trigger a
120
- release of 30 .0.1, 40 .0.1, 42 .0.1, and 43 .0.1.
120
+ well. For example if the current release is 47 .0.0 then a CVE will trigger a
121
+ release of 24 .0.1 (lts), 36 .0.1 (lts), 46 .0.1 (n-1) , and 47 .0.1 (n) .
121
122
122
123
To see this proposal visually this is a diagram of when a release starts (the
123
124
start of its box) to the final date such a release receives security fixes (the
124
125
end of its box)
125
126
126
127
``` mermaid
127
128
gantt
128
- title A Gantt Diagram
129
+ title LTS Schedule
129
130
dateFormat YYYY-MM-DD
130
131
section lts1
131
- 30.0.0 :a1, 2025-02-20, 450d
132
+ 24.0.0 :a1, 2024-08-20, 720d
133
+ 30.0.0 :a1, 2025-02-20, 60d
132
134
31.0.0 :a2, 2025-03-20, 60d
133
135
32.0.0 :a2, 2025-04-20, 60d
134
136
33.0.0 :a2, 2025-05-20, 60d
135
137
34.0.0 :a2, 2025-06-20, 60d
136
138
35.0.0 :a2, 2025-07-20, 60d
137
- 36.0.0 :a2, 2025-08-20, 60d
139
+ section lts2
140
+ 36.0.0 :a2, 2025-08-20, 720d
138
141
37.0.0 :a2, 2025-09-20, 60d
139
142
38.0.0 :a2, 2025-10-20, 60d
140
143
39.0.0 :a2, 2025-11-20, 60d
141
- section lts2
142
- 40.0.0 :a1, 2025-12-20, 450d
144
+ 40.0.0 :a1, 2025-12-20, 60d
143
145
41.0.0 :a2, 2026-01-20, 60d
144
146
42.0.0 :a2, 2026-02-20, 60d
145
147
43.0.0 :a2, 2026-03-20, 60d
146
148
44.0.0 :a2, 2026-04-20, 60d
147
149
45.0.0 :a2, 2026-05-20, 60d
148
150
46.0.0 :a2, 2026-06-20, 60d
149
151
47.0.0 :a2, 2026-07-20, 60d
150
- 48.0.0 :a2, 2026-08-20, 60d
151
- 49.0.0 :a2, 2026-09-20, 60d
152
152
section lts3
153
- 50.0.0 :a1, 2026-10-20, 450d
153
+ 48.0.0 :a2, 2026-08-20, 720d
154
+ 49.0.0 :a2, 2026-09-20, 60d
155
+ 50.0.0 :a1, 2026-10-20, 60d
154
156
```
155
157
156
- This means that once two LTS channels are in play there will be anywhere from 3
157
- to 4 releases of Wasmtime which receive security fixes at any one point in
158
- time.
158
+ This means that once two LTS channels are in play there will 4 releases of
159
+ Wasmtime which receive security fixes at any one point in time.
159
160
160
161
[ patches ] : https://docs.wasmtime.dev/contributing-release-process.html#releasing-a-patch-version
161
162
163
+ ## Schedule Constraints
164
+
165
+ There are a number of possibilities around how exactly to set the parameters for
166
+ LTS. Here it's chosen that an LTS happens once-a-year at versions divisible
167
+ by 12. Versions are then supported for 24 months. This cadence is specifically
168
+ chosen to enable users to update Wasmtime once per year and always be on a
169
+ supported LTS version. This is seen as a good rule of thumb we can give
170
+ embedders where they get to choose when during the year to upgrade so long as
171
+ one upgrade happens per year.
172
+
162
173
## LTS and CI
163
174
164
175
While a relatively boring topic for most the integration of Continuous
@@ -238,18 +249,7 @@ branch.
238
249
takes an unexpectedly long time then if a security issue happens it won't get
239
250
backported to the old LTS release.
240
251
241
- * There's always the possibility of supporting more LTS releases or supporting
242
- them for longer. The two-release and ten-versions-apart are relatively
243
- arbitrary at this time. Putting LTS releases 10 versions apart just makes them
244
- easy to identify (30, 40, 50, ...). While some overlap is required (e.g at
245
- least 11 months of support) it's not necessarily required to have 20 months of
246
- support. For now though it's predicted this won't be too onerous to support.
247
-
248
252
# Open questions
249
253
[ open-questions ] : #open-questions
250
254
251
- - Supporting a release for 15 versions may, as of now, possibly be a little
252
- ambitious. Should we include wording saying that this is sort of a "trial
253
- run" and we reserve the right to decrease the support window? Should we start
254
- with something smaller like supporting for 12 months first and then
255
- reevaluate in the future if it's worth widening to 20?
255
+ None at this time.
0 commit comments