cargo-smart-release icon indicating copy to clipboard operation
cargo-smart-release copied to clipboard

cargo-smart-release doesn't update `[workspace.dependencies]` version

Open jsoverson opened this issue 1 year ago • 1 comments

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!

jsoverson avatar Sep 14 '23 14:09 jsoverson

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.

Byron avatar Sep 15 '23 07:09 Byron