blake3 v1.8.4 just went out, which updates the digest crate. This is expected to cause some compatibility issues for callers who use the traits-preview feature, as per the docs for that feature:
The traits-preview feature enables implementations of traits from the RustCrypto digest crate, and re-exports that crate as traits::digest. However, the traits aren't stable, and they're expected to change in incompatible ways before that crate reaches 1.0. For that reason, this crate makes no SemVer guarantees for this feature, and callers who use it should expect breaking changes between patch versions. (The "-preview" feature name follows the conventions of the RustCrypto signature crate.)
I'm opening this issue preemptively, so that we can discuss the fallout in one place. Callers who see build breaks related to blake3 and digest have two options as far as I know:
- Update all of your dependencies on
digest itself or on any other crates that use it, so that everything is on v0.11, and v0.10 no longer appears in your Cargo.lock file. The cargo tree command might be helpful for this.
- If some of your dependencies use
digest but haven't yet published a new version that uses v0.11, you might need a version pin like blake3 = "=1.8.3" in your Cargo.toml while you wait for those dependencies to update.
For callers who only use the digest crate together with blake3, we re-export it as blake3::traits::digest when traits-preview is enabled, so you can avoid maintaining your own digest dependency version in Cargo.toml by accessing it that way.
blake3v1.8.4 just went out, which updates thedigestcrate. This is expected to cause some compatibility issues for callers who use thetraits-previewfeature, as per the docs for that feature:I'm opening this issue preemptively, so that we can discuss the fallout in one place. Callers who see build breaks related to
blake3anddigesthave two options as far as I know:digestitself or on any other crates that use it, so that everything is on v0.11, and v0.10 no longer appears in yourCargo.lockfile. Thecargo treecommand might be helpful for this.digestbut haven't yet published a new version that uses v0.11, you might need a version pin likeblake3 = "=1.8.3"in yourCargo.tomlwhile you wait for those dependencies to update.For callers who only use the
digestcrate together withblake3, we re-export it asblake3::traits::digestwhentraits-previewis enabled, so you can avoid maintaining your owndigestdependency version inCargo.tomlby accessing it that way.