3 ms·
Other people have addressed the question about epochs, but I'd also note that we do work to mitigate the code bloat issues of multiple versions of libraries. ca
by tatterdemalion 9y ago
Other people have addressed the question about epochs, but I'd also note that we do work to mitigate the code bloat issues of multiple versions of libraries. cargo is designed to unify all dependencies on a library within each major version to a single instance (that is, you'll never build serde-1.0.0 and serde-1.1.0 together, but you may build serde-1.0.0 and serde-2.0.0).
- Manishearth 9y ago> you'll never build serde-1.0.0 and serde-1.1.0 together nit: unless you explicitly ask for this by an `=1.0.0` version dep. which is rare, but can be pretty useful in edge cases.
- tatterdemalion 9y agoThat's not correct. cargo will fail to resolve your dependencies if that happens. For example (cargo_metadata 0.2.1 depends on serde ^1.0.2): [dependencies] serde = "=1.0.0" cargo_metadata = "0.2.1" Attempting to cargo fetch will result in this error message: error: failed to select a version for `serde` (required by `cargo_metadata`): all possible versions conflict with previously selected versions of `serde` This is an intentional design decision in cargo that isn't well known.