Say I have a crate A that depends on
zstd = ^0.6 (only used internally) and a crate B that depends on
zstd = ^0.6 (also only used internally).
^0.6 because it matches
A (smaller binary, etc.).
A confirms that it is compatible with
^0.9 and would like to offer support also for this in their next release (e.g. 0.9 is faster than 0.6).
From the Python ecosystem, we generally favor 2. because it offers downstream consumers the flexibility to choose how they wanna do it. However, Python does not allow 2 packages with different versions.
Option 1. seems the preferred option in Cargo, but my impression is that we "force" everyone to follow suit or increase the binary size (the same way B was "forced" to use
^0.6 in the first place).
Is there a practice here?