1# Release Process
2
3This is intended to serve as documentation for Wasmtime's release process. It's
4largely an internal checklist for those of us performing a Wasmtime release, but
5others might be curious in this as well!
6
7To kick off the release process someone decides to do a release. Currently
8there's not a schedule for releases or something similar. Once the decision is
9made (there's also not really a body governing these decisions, it's more
10whimsical currently, or on request from others) then the following steps need to
11be executed to make the release:
12
131. `git pull` - make sure you've got the latest changes
141. Run `rustc scripts/publish.rs`
151. Run `./publish bump`
16  * Review and commit the changes
17  * Note that this bumps all cranelift/wasmtime versions as a major version bump
18    at this time. See the `bump_version` function in `publish.rs` to tweak this.
191. Make sure `RELEASES.md` is up-to-date, and fill it out if it doesn't have an
20   entry yet for the current release.
211. Send this version update as a PR to the `wasmtime` repository, wait for a merge
221. After merging, tag the merge as `vA.B.C`
231. Push the tag to the repository
24  * This will trigger the release CI which will create all release artifacts and
25    publish them to GitHub releases.
261. Run `./publish publish`
27  * This will fail on some crates, but that's expected.
28  * Keep running this script until all crates are published. Note that crates.io
29    won't let you publish something twice so rerunning is only for crates which
30    need the index to be udpated and if it hasn't yet. It's recommended to wait
31    a bit between runs of the script.
32
33And that's it, then you've done a Wasmtime release.
34