Description
Part of stackabletech/issues#722.
Note
During a Stackable release we update all dependencies in the operator-rs
repository. After these bumps, each workspace member is released using an
appropriate SemVer version. Later, each product operator repository can then
use the updates crates.
Replace the items in the task lists below with the applicable Pull Requests
- Update Rust version and workflow actions, see below for more details.
- Update Rust dependencies, see below for more details.
- Adjust and then verify crate versions using
.scripts/verify_crate_versions.sh
. - Push the release tags using
.scripts/tag_and_push_release.sh
.
Update Rust Version and Workflow Actions
Note
The PR is usually titled: chore: Bump Rust version and workflow actions
- Adjust the version of the channel in the
rust-toolchain.toml
file. See
https://releases.rs. - Adjust the version
RUST_TOOLCHAIN_VERSION
in the workflows:.github/workflows/build.yml
.github/workflows/pre_commit.yaml
.github/workflows/publish-docs.yaml
- Add a changelog entry.
- Update any actions (using the Git commit hash) in the workflows. Hint: Also
make sure that thecargo-udeps
action is up-to-date, otherwise the CI might
report errors.
Update Rust Dependencies
Note
This PR is usually titled: chore: Bump Rust dependencies
- Bump minor versions of dependencies in the
Cargo.toml
manifest. - Then run the
cargo update
command. - Fix any code which needs updating due to the dependency bumps.
- Locally update any product operator to identify any breaking changes
downstream.- Hint: Use the
[patch."https://github.com/..."]
mechanism to temporarily
override the dependency.
- Hint: Use the
- Add a changelog entry if required.
Adjust and Verify Crate Versions
Warning
Currently, all workspace members use 0.X.Y
versions. This means we can
introduce breaking changes in any version without needing to bump the major
level. But we still have the following rules:
- Breaking changes (internally and externally) will bump the minor level of
the version, so0.X.Y
becomes0.X+1.Y
. - All other non-breaking changes will bump the patch level of the version, so
0.X.Y
becomes0.X.Y+1
.
Note
The PR is usually titled: chore: Release workspace members
- Bump the crate versions in their appropriate
Cargo.toml
manifests. - Verify the previous step using
.scripts/verify_crate_versions.sh
.