Verify crates are publish-able on CI (#2036)
This commit updates our CI to verify that all crates are publish-able at all times on every commit. During the 0.19.0 release we found another case where the crates as they live in this repository weren't publish-able, so the hope is that this no longer comes up again! The script added in this commit also takes the time/liberty to remove the existing bump/publish scripts and instead replace them with one Rust script originally sourced from wasm-bindgen. The intention of this script is that it has three modes: * `./publish bump` - bumps version numbers which are sent as a PR to get reviewed (probably with a changelog as well) * `./publish verify` - run on CI on every commit, builds every crate we publish as if it's being published to crates.io, notably without raw access to other crates in the repository. * `./publish publish` - publishes all crates to crates.io, passing the `--no-verify` flag to make this a much speedier process than it is today.
This commit is contained in:
@@ -11,10 +11,11 @@ whimsical currently, or on request from others) then the following steps need to
|
||||
be executed to make the release:
|
||||
|
||||
1. `git pull` - make sure you've got the latest changes
|
||||
1. Update the version numbers in `Cargo.toml` for all crates
|
||||
* Edit `scripts/bump-wasmtime-version.sh`, notable the `version` variable
|
||||
* Run the script
|
||||
* Commit the changes
|
||||
1. Run `rustc scripts/publish.rs`
|
||||
1. Run `./publish bump`
|
||||
* Review and commit the changes
|
||||
* Note that this bumps all cranelift/wasmtime versions as a major version bump
|
||||
at this time. See the `bump_version` function in `publish.rs` to tweak this.
|
||||
1. Make sure `RELEASES.md` is up-to-date, and fill it out if it doesn't have an
|
||||
entry yet for the current release.
|
||||
1. Send this version update as a PR to the `wasmtime` repository, wait for a merge
|
||||
@@ -22,6 +23,11 @@ be executed to make the release:
|
||||
1. Push the tag to the repository
|
||||
* This will trigger the release CI which will create all release artifacts and
|
||||
publish them to GitHub releases.
|
||||
1. Run `scripts/publish-wasmtime.sh` to publish all crates to crates.io
|
||||
1. Run `./publish publish`
|
||||
* This will fail on some crates, but that's expected.
|
||||
* Keep running this script until all crates are published. Note that crates.io
|
||||
won't let you publish something twice so rerunning is only for crates which
|
||||
need the index to be udpated and if it hasn't yet. It's recommended to wait
|
||||
a bit between runs of the script.
|
||||
|
||||
And that's it, then you've done a Wasmtime release.
|
||||
|
||||
Reference in New Issue
Block a user