cargo-smart-release
cargo-smart-release copied to clipboard
cargo-smart-release doesn't update `[workspace.dependencies]` version
First off, this crate is awesome. It is so close to being a does-what-you-want publish tool for cargo crates.
For this project though, we set our version numbers in the root workspace and cargo-smart-release
doesn't seem to update things there. When the publish step comes, cargo fails because versions don't match.
If organizing workspaces like this is bad practice, I can change it. That's one major problem with large Rust projects and workspaces. There is no "do it this way" guide that actually works from start to publish.
I tried to reorganize the project to align with git-oxide. I moved the binary to the root and combined the package & workspace Cargo.toml, but it wasn't enough.
If this seems like a bug in cargo-smart-release
vs how we structured our project, I'll gladly submit a PR if you can guide me to the part of the codebase I should start in.
Thanks again!
First off, this crate is awesome. It is so close to being a does-what-you-want publish tool for cargo crates.
Thank you! Even though I'd use cargo smart-release
with caution as it's reason to exist is gitoxide
, and it's relies heavily on the project structure there as you already concluded.
I wasn't aware of workspace dependencies at all at the time of creating cargo smart-release
, which is why it isn't supported. However, it could certainly be supported if you dare implementing it.
And I am saying that because I barely dare to make changes here as the core logic for publishing is definitely under-tested. There is a journey-test but it tests only the simple case. Nonetheless, you can probably add a journey test with a simple configuration mirroring yours, and make it work from there.
Unfortunately, that's already all the guidance I can muster as I barely remember the code here 😅.
I'd also like to make you aware of #9 , a critical issue that you will get when your crates go 1.0. It's definitely easier to implement than this, and maybe that's a good first issue to work on to get acquainted with the codebase. Thanks for your consideration.