-
Notifications
You must be signed in to change notification settings - Fork 78
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?
Changes from all commits
d36355d
37a9434
5b9c4ec
d9165b9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
This file was deleted.
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
name: Open a release PR | ||
|
||
on: | ||
workflow_dispatch: # Manual trigger only | ||
|
||
jobs: | ||
# Create a PR with the new versions and changelog, preparing the next release. | ||
# A release will be automatically published when the PR is merged into master. | ||
release-pr: | ||
name: Open a release PR | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
pull-requests: write | ||
concurrency: | ||
group: release-plz-${{ github.ref }} | ||
cancel-in-progress: false | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v5 | ||
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
persist-credentials: false | ||
- name: Install toolchain | ||
uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
- name: Run release-plz | ||
uses: release-plz/[email protected] | ||
with: | ||
command: release-pr | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Release-plz | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
|
||
jobs: | ||
# Release unpublished packages if the latest commit merged | ||
# a release PR into master | ||
release: | ||
name: Publish a new release to crates.io | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
id-token: write | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v5 | ||
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
persist-credentials: false | ||
- name: Install toolchain | ||
uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
- uses: rust-lang/crates-io-auth-action@v1 | ||
id: auth | ||
- name: Run release-plz | ||
uses: release-plz/[email protected] | ||
with: | ||
command: release | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 commentThe 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 commentThe 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 |
||
|
||
[workspace.package] | ||
version = "2.0.7" | ||
license = "BSD-3-Clause" | ||
edition = "2021" | ||
|
||
[package] | ||
name = "redis-module" | ||
version = "99.99.99" | ||
version.workspace = true | ||
edition.workspace = true | ||
license.workspace = true | ||
authors = ["Gavrie Philipson <[email protected]>", "Guy Korland <[email protected]>"] | ||
edition = "2021" | ||
build = "build.rs" | ||
description = "A toolkit for building Redis modules in Rust" | ||
license = "BSD-3-Clause" | ||
repository = "https://github.com/RedisLabsModules/redismodule-rs" | ||
readme = "README.md" | ||
keywords = ["redis", "plugin"] | ||
|
@@ -162,4 +170,4 @@ bindgen-static = ["bindgen/static"] | |
bindgen-runtime = ["bindgen/runtime"] | ||
|
||
# List all features here, that are not in a exclusive or relationship | ||
all-features-but-xor = [] | ||
all-features-but-xor = [] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
[package] | ||
name = "redis-module-macros-internals" | ||
version = "99.99.99" | ||
authors = ["Meir Shpilraien <[email protected]>"] | ||
edition = "2021" | ||
description = "A macros crate for redismodule-rs" | ||
license = "BSD-3-Clause" | ||
version.workspace = true | ||
edition.workspace = true | ||
license.workspace = true | ||
repository = "https://github.com/RedisLabsModules/redismodule-rs" | ||
keywords = ["redis", "plugin"] | ||
categories = ["database", "api-bindings"] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
[package] | ||
name = "redis-module-macros" | ||
version = "99.99.99" | ||
version.workspace = true | ||
edition.workspace = true | ||
license.workspace = true | ||
authors = ["Meir Shpilraien <[email protected]>"] | ||
edition = "2021" | ||
description = "A macros crate for redismodule-rs" | ||
license = "BSD-3-Clause" | ||
repository = "https://github.com/RedisLabsModules/redismodule-rs" | ||
keywords = ["redis", "plugin"] | ||
categories = ["database", "api-bindings"] | ||
|
@@ -19,6 +19,4 @@ serde = { version = "1", features = ["derive"] } | |
serde_syn = "0.1.0" | ||
|
||
[lib] | ||
name = "redis_module_macros" | ||
path = "src/lib.rs" | ||
proc-macro = true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
[toolchain] | ||
channel = "nightly-2025-07-30" | ||
channel = "1.90" | ||
components = ["rustfmt", "clippy"] |
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:
master
as trunk and cut releases for the latest major from there (i.e. all2.x.y
, until3.0.0
is released)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 torelease-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.