I have a workspace of several crates. One of them is kind of a core, others are plugins. So, when you use it, you’d depend on the core and some of the plugins, depending on functionality you’d need.
Now, I want to use a plugin in an example of the core (because the core is kind of useless on its own, you need some plugins to see what it does).
For that to work, I have dependencies like:
- The plugin depends on core.
- The core doesn’t directly depend on any plugin, but dev-depends on it.
This works fine in a local workspace. But I don’t seem to be able to release the crates on crates.io.
First I attempted to release without versions (only with
path =) inside the dev dependencies. Cargo refused that, saying that to publish a crate, I need to specify versions for all dependencies (even the dev ones, which seems to be unnecessary).
If I add the versions, it tells me such version is not on crates.io yet (well, of course, I would be releasing that one next).
I don’t see a way to release them “atomically”.
Is there a trick I’m missing? Or is my only chance to exclude the examples, which would be a pity?
The stuff I have is this: https://github.com/vorner/spirit/
Thanks for any directions what to try or explanations why this makes no sense.