Skip to content

Conversation

LukeMathWalker
Copy link

@LukeMathWalker LukeMathWalker commented Sep 24, 2025

For releasing, we switched to release-plz. It handles version updates in manifests, changelog maintainance and crates.io publishing, thus simplifying the overall workflow.

I'd like to avoid using an API token for publishing. We can instead rely on trusted publishing from GitHub Actions. The only prerequisite is a bit of configuration on the crates.io management panel (cc @oshadmi).

I switched the repository to using stable as the default toolchain. There does seem to be no need for nightly anywhere.

@LukeMathWalker LukeMathWalker marked this pull request as ready for review September 24, 2025 11:51
@@ -1,11 +1,19 @@
[workspace]
members = [".", "redismodule-rs-macros", "redismodule-rs-macros-internals"]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it normal to have this root member like this?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I generally prefer to have all root members in subfolders, since it makes cargo build in the root of the repository equivalent to cargo build --workspace.
But I know that some projects prefer to have the "key" package at the root level, so no strong preferences here.

on:
push:
branches:
- master
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this support releasing multiple release integration branches, e.g., a patch for 2.X and a minor for 3.X? (we do not release from master)
Is this a limitation? release-plz/release-plz#2159

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LukeMathWalker Will this support multiple concurrent releases? ☝🏼

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When looking at the version history, this didn't seem like a requirement—from what I can see, no backports have been made in the last few years.

I would recommend the following setup to minimise complexity:

  • Use master as trunk and cut releases for the latest major from there (i.e. all 2.x.y, until 3.0.0 is released)
  • Branch out when a new major release goes out (i.e. create a v2 branch once master moves over to 3.z.w)

If we need to backport something, we merge PRs into the backport branch and use something like cargo-release with a short-lived token to cut a release. In the meantime, I can look into adding support for branches to release-plz.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once release-plz/release-plz#2438 is merged, I should be able to adjust the workflow to cut backport releases from branches.

@oshadmi
Copy link
Contributor

oshadmi commented Sep 25, 2025

@LukeMathWalker using #429 #430 I could add myself as owner of redis-module and we could try setting up Trusted Publishing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants