Workspace intercrate dependencies how to

I have just converted my project from a single crate to two crates.

The project, GitHub - phillord/horned-owl, now has too crates -- horned-owl which is a library and horned-bin which are some command line utilities. -bin depends on -owl. I have been using cargo-release to manage releases.

I have managed the interdependency by having a path version in the horned-bin point to horned-owl. That seems sensible, because I want the binary crate to depending on the development version of the library. But, cargo-release won't let me release it like this because the release version of -bin needs to depend on the a published version of -owl.

Is the only solution to change the dependency in -owl to the release version in the release commit and then back again for the next iteration? Or am I just doing it all wrong?

I believe you can simply specify both path and version and cargo will use the path when you build the workspace normally, and use the version when you release.

https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies

Thank you! That's a very simple solution to the problem!

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.