Skip to content

compatibility breaks from the digest 0.10 -> 0.11 update in blake3 1.8.4 #548

Description

@oconnor663

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:

  1. 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.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions