Lean on workspace inheritance for deps for development #568
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Switch to specifying development versions on dependencies instead of separately as patches.
Why
@tsachiherman recently highlighted how the use of
[patch.*]
in this repo is a burden to crates upstream in the dependency graph.During development we use the
[patch.*]
configuration in Cargo to override the version dependencies for each full repo. This has a side effect that every repo has to know about its dependencies transitive dependencies that also require the patch entries, because patch entries of this crate are ignored by crates upstream and have to be manually specified in the upstream crate.There are other ways we can express these development/unreleased dependencies. Specifically we can move the git references onto the dependency definitions itself, making them automatically carry to importers, and we can do so at the repo level by using Rust 1.64's workspace inheritance.
This will mean that crates such as the SDK and CLI that import the crates in this repo will not need to specify the versions of things like wasmi, or internal crates that they do not import.
Close #567