|
| 1 | +--- |
| 2 | +name: Pre-Release Workspace Member Updates and Releases |
| 3 | +about: This template can be used to track the updates and releases of all workspace members leading up to the next Stackable release |
| 4 | +title: "chore: Update and release workspace members" |
| 5 | +labels: ['epic'] |
| 6 | +assignees: '' |
| 7 | +--- |
| 8 | + |
| 9 | +<!-- |
| 10 | + DO NOT REMOVE THIS COMMENT. It is intended for people who might copy/paste from the previous release issue. |
| 11 | + This was created by an issue template: https://github.com/stackabletech/operator-rs/issues/new/choose. |
| 12 | +--> |
| 13 | + |
| 14 | +## Update and Release Workspace Members for Stackable Release XX.(X)X |
| 15 | + |
| 16 | +> [!NOTE] |
| 17 | +> During a Stackable release we update all dependencies in the `operator-rs` |
| 18 | +> repository. After these bumps, each workspace member is released using an |
| 19 | +> appropriate SemVer version. Later, each product operator repository can then |
| 20 | +> use the updates crates. |
| 21 | +
|
| 22 | +Replace the items in the task lists below with the applicable Pull Requests |
| 23 | + |
| 24 | +```[tasklist] |
| 25 | +### Tasks |
| 26 | +- [ ] Update Rust version and workflow actions, see below for more details. |
| 27 | +- [ ] Update Rust dependencies, see below for more details. |
| 28 | +- [ ] Adjust and then verify crate versions using `.scripts/verify_crate_versions.sh`. |
| 29 | +- [ ] Push the release tags using `.scripts/tag_and_push_release.sh`. |
| 30 | +``` |
| 31 | + |
| 32 | +### Update Rust Version and Workflow Actions |
| 33 | + |
| 34 | +> [!NOTE] |
| 35 | +> The PR is usually titled: `chore: Bump Rust version and workflow actions` |
| 36 | +
|
| 37 | +1. Adjust the version of the channel in the `rust-toolchain.toml` file. See |
| 38 | + <https://releases.rs>. |
| 39 | +2. Adjust the version `RUST_TOOLCHAIN_VERSION` in the workflows: |
| 40 | + - `.github/workflows/build.yml` |
| 41 | + - `.github/workflows/pre_commit.yaml` |
| 42 | +3. Add a changelog entry. |
| 43 | +4. Update any actions (using the Git commit hash) in the workflows. Hint: Also |
| 44 | + make sure that the `cargo-udeps` action is up-to-date, otherwise the CI might |
| 45 | + report errors. |
| 46 | + |
| 47 | +### Update Rust Dependencies |
| 48 | + |
| 49 | +> [!NOTE] |
| 50 | +> This PR is usually titled: `chore: Bump Rust dependencies` |
| 51 | +
|
| 52 | +1. Bump minor versions of dependencies in the `Cargo.toml` manifest. |
| 53 | +2. Then run the `cargo update` command. |
| 54 | +3. Fix any code which needs updating due to the dependency bumps. |
| 55 | +4. Locally update any product operator to identify any breaking changes |
| 56 | + downstream. |
| 57 | + - Hint: Use the `[patch."https://github.com/..."]` mechanism to temporarily |
| 58 | + override the dependency. |
| 59 | +5. Add a changelog entry if required. |
| 60 | + |
| 61 | +### Adjust and Verify Crate Versions |
| 62 | + |
| 63 | +> [!WARNING] |
| 64 | +> Currently, all workspace members use `0.X.Y` versions. This means we can |
| 65 | +> introduce breaking changes in any version without needing to bump the major |
| 66 | +> level. But we still have the following rules: |
| 67 | +> |
| 68 | +> - Breaking changes (internally and externally) will bump the minor level of |
| 69 | +> the version, so `0.X.Y` becomes `0.X+1.Y`. |
| 70 | +> - All other non-breaking changes will bump the patch level of the version, so |
| 71 | +> `0.X.Y` becomes `0.X.Y+1`. |
| 72 | +
|
| 73 | +<!-- markdownlint-disable-next-line MD028 --> |
| 74 | +> [!NOTE] |
| 75 | +> The PR is usually titled: `chore: Release workspace members` |
| 76 | +
|
| 77 | +1. Bump the crate versions in their appropriate `Cargo.toml` manifests. |
| 78 | +2. Verify the previous step using `.scripts/verify_crate_versions.sh`. |
0 commit comments