cholcombe973 / block-utils

Rust utilities for working with block devices
MIT License
22 stars 17 forks source link

Upgrade `strum` to 0.23 #32

Closed Veetaha closed 2 years ago

Veetaha commented 2 years ago

This appeared on our cargo-deny radar. Would be glad if you could do a patch release.

Even though "technically" strum::ParseError is part of public BlockUtilsError and 0.22 -> 0.23 is a breaking change, I doubt that anyone would break as a result of this, and if it would break, the resolution of the problem would not be too dificult

cholcombe973 commented 2 years ago

Interesting. What was the output from cargo deny?

Veetaha commented 2 years ago

@cholcombe973 ah, it's just the way we use cargo-deny.

First of all we track the duplicates of different versions of the same crate in the dependencies tree. Since now we gradually transition to 0.23 of strum we see crates from our tree still using 0.22 making that version of the library compiled in together with 0.23. Here is the example output of that (cargo deny check):

error[B004]: found 2 duplicate entries for crate 'strum'
    ┌─ /home/veetaha/work/{redacted}
    │  
739 │ ╭ strum 0.22.0 registry+https://github.com/rust-lang/crates.io-index
740 │ │ strum 0.23.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────^ lock entries

Also, we have the following config in deny.toml

[bans]

deny = [
    # `strum_macros` direct usage is deprecated. Use `strum = { features = ["derive"] }` instead.
    { name = "strum_macros", wrappers = ["strum"] },
]

This lets us track if anyone still uses strum_macros crate directly instead of using strum's "derive" feature

cholcombe973 commented 2 years ago

Yeah that makes sense. Sure I'll cut a patch release for it. Thanks!