-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
In Piston, we have a pattern where in order to decouple dependencies and achieve maximum independence, we split up a interface and it's implementation(s) into multiple projects.
The interface does not depend on the implementations, but the opposite is true. For example:
- My App
- piston
- some_piston_backend
- piston
What we would really like is a way to make sure that the two piston
repositories in the tree are the exact same version. A user could theoretically pick piston-3.0 and some_piston_backend-1.0 (that depends on piston-1.0).
I'm not sure what resolution strategy Cargo is planning on using for this, but I would like the option as a maintainer of piston
to be able to say "THERE CAN ONLY BE ONE" and fail at the cargo package fetching stage. Anything else would either run (and have terrible bugs) or fail at compile time with confusing error messages.
Edit: A more detailed example of what could go wrong: PistonDevelopers/piston#430