-
Notifications
You must be signed in to change notification settings - Fork 77
Revamp the CI pipeline, including publishing #428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
1c58d51
to
4967a89
Compare
4967a89
to
d9165b9
Compare
@@ -1,11 +1,19 @@ | |||
[workspace] | |||
members = [".", "redismodule-rs-macros", "redismodule-rs-macros-internals"] |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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? ☝🏼
There was a problem hiding this comment.
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. all2.x.y
, until3.0.0
is released) - Branch out when a new major release goes out (i.e. create a
v2
branch oncemaster
moves over to3.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
.
There was a problem hiding this comment.
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.
@LukeMathWalker using #429 #430 I could add myself as owner of redis-module and we could try setting up Trusted Publishing |
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 fornightly
anywhere.