Thanks for stopping by to let us know something could be better!
Please provide the following details.
Environment details
- OS: nixos (linux)
- Node.js version: 24.14.0
- npm version: 11.9.0
release-please version: 17.5.2
Summary
release-please-action@v4 detects and evaluates a configured Rust package path (editors/zed), but after running the cargo-workspace plugin it is excluded from the in-scope releases and not version-bumped in the release PR.
This happens even though:
- the path is explicitly configured in
release-please-config.json
- there are qualifying commits under that path
- the plugin logs show the path was considered
Environment
Configuration
release-please-config.json:
{
"plugins": ["cargo-workspace"],
"release-type": "rust",
"packages": {
".": {
"exclude-paths": ["crates", "editors"]
},
"crates/panache-parser": {},
"editors/code": {
"release-type": "node",
"package-name": "panache-code"
},
"editors/zed": {
"release-type": "rust",
"package-name": "panache-zed",
"extra-files": [
{
"type": "toml",
"path": "extension.toml",
"jsonpath": "$.version"
}
]
}
}
}
Relevant manifest entry (.release-please-manifest.json):
{
"editors/zed": "2.32.0"
}
editors/zed/Cargo.toml:
[package]
name = "zed_panache"
version = "2.32.0"
publish = false
[workspace]
Root Cargo.toml workspace members:
[workspace]
members = ["crates/panache-parser", "crates/panache-wasm"]
(editors/zed is intentionally not a member of the root workspace.)
Reproduction
- Configure a monorepo with:
- root rust package (
.),
- one rust crate in root workspace,
- one independent rust package path with its own
Cargo.toml and [workspace] outside root workspace members.
- Enable
plugins: ["cargo-workspace"].
- Configure all paths explicitly in
packages.
- Push a fix commit touching only the independent package path:
- Run release-please action.
Actual behavior
Logs show:
Building candidate release pull request for path: editors/zed
Considering: 4 commits
component: panache-zed
running plugin: CargoWorkspace
Found 3 in-scope releases
The resulting release PR updates root/parser/code versions, but does not bump editors/zed in:
.release-please-manifest.json
editors/zed/Cargo.toml
editors/zed/extension.toml
Expected behavior
If a path is explicitly configured under packages and has qualifying commits, it should remain in-scope and get a candidate release/version bump, even if it is not part of the root Cargo workspace members.
At minimum, docs should clearly state that cargo-workspace restricts Rust package paths to root workspace members and will silently drop independently configured Rust paths.
Why this seems like a bug (or at least surprising behavior)
- The path is recognized and evaluated before plugin scoping.
- The action does not fail; it silently excludes the configured path.
- Mixed ecosystems in the same config (
node + multiple rust paths) otherwise work.
Additional notes
If this is intended behavior, a warning that names the excluded paths and the reason (not in workspace scope) would help a lot.
Thanks for stopping by to let us know something could be better!
Please provide the following details.
Environment details
release-pleaseversion: 17.5.2Summary
release-please-action@v4detects and evaluates a configured Rust package path (editors/zed), but after running thecargo-workspaceplugin it is excluded from the in-scope releases and not version-bumped in the release PR.This happens even though:
release-please-config.jsonEnvironment
googleapis/release-please-action@v417.3.0Configuration
release-please-config.json:{ "plugins": ["cargo-workspace"], "release-type": "rust", "packages": { ".": { "exclude-paths": ["crates", "editors"] }, "crates/panache-parser": {}, "editors/code": { "release-type": "node", "package-name": "panache-code" }, "editors/zed": { "release-type": "rust", "package-name": "panache-zed", "extra-files": [ { "type": "toml", "path": "extension.toml", "jsonpath": "$.version" } ] } } }Relevant manifest entry (
.release-please-manifest.json):{ "editors/zed": "2.32.0" }editors/zed/Cargo.toml:Root
Cargo.tomlworkspace members:(
editors/zedis intentionally not a member of the root workspace.)Reproduction
.),Cargo.tomland[workspace]outside root workspace members.plugins: ["cargo-workspace"].packages.editors/zed/src/lib.rsActual behavior
Logs show:
Building candidate release pull request for path: editors/zedConsidering: 4 commitscomponent: panache-zedrunning plugin: CargoWorkspaceFound 3 in-scope releasesThe resulting release PR updates root/parser/code versions, but does not bump
editors/zedin:.release-please-manifest.jsoneditors/zed/Cargo.tomleditors/zed/extension.tomlExpected behavior
If a path is explicitly configured under
packagesand has qualifying commits, it should remain in-scope and get a candidate release/version bump, even if it is not part of the root Cargo workspace members.At minimum, docs should clearly state that
cargo-workspacerestricts Rust package paths to root workspace members and will silently drop independently configured Rust paths.Why this seems like a bug (or at least surprising behavior)
node+ multiple rust paths) otherwise work.Additional notes
If this is intended behavior, a warning that names the excluded paths and the reason (not in workspace scope) would help a lot.