1
1
# Release Process
2
2
3
- Wasmtime's release process was [ originally designed in an RFC] [ rfc4 ] and this
4
- page is intended to serve as documentation for the current process as-is today.
3
+ Wasmtime's release process was [ originally designed in an RFC] [ rfc4 ] and later
4
+ amended with [ an LTS process] [ rfc-lts ] and this page is intended to serve as
5
+ documentation for the current process as-is today.
6
+
5
7
The high-level summary of Wasmtime's release process is:
6
8
7
- * A new major version of Wasmtime will be made available once a month.
8
- * Security bugs and correctness fixes will be backported to the latest two
9
- releases of Wasmtime and issued as patch releases.
9
+ * A new major version of Wasmtime will be made available on the 20th of each
10
+ month.
11
+ * Each release that is a multiple of 12 is considered an LTS release and is
12
+ supported for 24 months. Other releases are supported for 2 months.
13
+ * Security bugs are guaranteed to be backported to all supported releases.
14
+ * Bug fixes are backported on a volunteer basis.
15
+
16
+ [ rfc-lts ] : https://github.com/bytecodealliance/rfcs/pull/42
17
+
18
+ ## Current Versions
19
+
20
+ <div id =' version-table ' >
21
+
22
+ This is a table of supported, recent, and some upcoming releases of Wasmtime
23
+ along with the dates around their release process. Rows in ** bold** are
24
+ actively supported at this time.
25
+
26
+ | Version | LTS | Branch Date | Release Date | EOL Date |
27
+ | ------------| -----| -------------| --------------| ----------|
28
+
29
+ <noscript >
30
+ JavaScript is disabled so the table above is empty.
31
+ </noscript >
32
+
33
+ In more visual form this is a gantt chart of the current release trains:
34
+
35
+ <noscript >
36
+ JavaScript is disabled there is no gantt chart to show.
37
+ </noscript >
38
+
39
+ </div >
40
+
41
+
42
+ ## New Versions
10
43
11
44
Once a month Wasmtime will issue a new major version. This will be issued with a
12
- semver-major version update, such as 4.0.0 to 5.0.0. The precise schedule of
13
- Wasmtime's release is currently an automated PR is sent to bump the version on
14
- the 5th of every month and a release is made when the PR is merged. The PR
15
- typically gets merged within a few days .
45
+ semver-major version update, such as 4.0.0 to 5.0.0. Releases are created from
46
+ main with a new ` release-X.0.0 ` git branch on the 5th of every month. The
47
+ release itself then happens on the 20th of the month, or shortly after if that
48
+ happens to fall on a weekend .
16
49
17
50
Each major release of Wasmtime reserves the right to break both behavior and API
18
51
backwards-compatibility. This is not expected to happen frequently, however, and
@@ -28,18 +61,75 @@ any breaking change will follow these criteria:
28
61
feedback about embeddings. Release notes will clearly indicate if any major
29
62
breaking changes through accepted RFCs are included in a release.
30
63
64
+ All releases will have an accompanying ` RELEASES.md ` on the release branch
65
+ documenting major and minor changes made during development. Note that each
66
+ branch only contains the release notes for that branch, but links are provided
67
+ for older release notes.
68
+
69
+ For maintainers, performing a release is [ documented
70
+ here] ( ./contributing-release-process.md#releasing-a-major-version ) .
71
+
72
+ ## Version Support
73
+
74
+ Wasmtime major version releases are of one of two categories:
75
+
76
+ * LTS release - this happens every 12 releases of Wasmtime and the version
77
+ number is always divisible by 12. LTS releases are supported for 24 months.
78
+ For example Wasmtime 24.0.0 is supported for 2 years.
79
+
80
+ * Normal release - this is every release other than an LTS release. Normal
81
+ releases are supported for 2 months. For example Wasmtime 31.0.0 is supported
82
+ for 2 months.
83
+
84
+ At any one time Wasmtime has two supported LTS releases and up to two supported
85
+ normal releases. Once a version of Wasmtime is release the project strives to
86
+ maintain binary/version compatibility with dependencies and such throughout the
87
+ lifetime of the release. For example the minimum supported version of Rust
88
+ required to compile a version of Wasmtime will not increase. Exceptions may be
89
+ made to LTS branches though if the versions of tooling to produce the LTS itself
90
+ have fallen out-of-date. For example if an LTS was originally produced with a
91
+ GitHub Actions runner that is no longer available then the oldest supported
92
+ image will be used instead.
93
+
94
+ ## Patch Versions
95
+
31
96
Patch releases of Wasmtime will only be issued for security and critical
32
- correctness issues for on-by-default behavior in the previous releases. If
33
- Wasmtime is currently at version 5.0.0 then 5.0.1 and 4.0.1 will be issued as
34
- patch releases if a bug is found. Patch releases are guaranteed to maintain API
35
- and behavior backwards-compatibility and are intended to be trivial for users to
36
- upgrade to.
97
+ correctness issues for on-by-default behavior in supported releases. For example
98
+ if the current version is 39.0.0 then a security issue would issue a new release
99
+ for:
100
+
101
+ * 39.0.x - the current release
102
+ * 38.0.x - the last release
103
+ * 36.0.x - the current LTS release
104
+ * 24.0.x - the last LTS release
105
+
106
+ Patch releases are guaranteed to maintain API and behavior
107
+ backwards-compatibility and are intended to be trivial for users to upgrade to.
108
+
109
+ The Wasmtime project guarantees backports and patch releases will be made for
110
+ any discovered security issue. Other bug fixes are done on a best-effort basis
111
+ in accordance with volunteers able to do the backports (see below). The Wasmtime
112
+ project does not support backporting new features to older releases, even if a
113
+ volunteer performs a backport for the project.
37
114
38
115
Patch releases for Cranelift will be made for any miscompilations found by
39
116
Cranelift, even those that Wasmtime itself may not exercise. Due to the current
40
117
release process a patch release for Cranelift will issue a patch release for
41
118
Wasmtime as well.
42
119
120
+ Patch releases do not have a set cadence and are done on an as-needed basis. For
121
+ maintainers, performing a patch release is [ documented
122
+ here] ( ./contributing-release-process.md#releasing-a-patch-version ) .
123
+
124
+ ## Security Fixes
125
+
126
+ Security fixes will be issued as patch releases of Wasmtime. They follow the
127
+ same process as normal backports except that they're coordinated in private
128
+ prior to patch release day.
129
+
130
+ For maintainers, performing a security release is [ documented
131
+ here] ( ./security-vulnerability-runbook.md ) .
132
+
43
133
## What's released?
44
134
45
135
At this time the release process of Wasmtime encompasses:
0 commit comments