mrhooray / crc-rs

Rust implementation of CRC(16, 32, 64) with support of various standards

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Release 3.1.0 in violation of semantic versioning?

d-e-s-o opened this issue · comments

Release 3.1.0 broke the build of lzma-rs (possibly among others). The reason seems to be the changed trait bound of crc::Digest:

As per my understanding this is not in line with semantic versioning requirements. Would it be possible to yank this version and fix this or publish it as 4.0 instead?

Thanks for being considerate of the wider eco system.

Thanks for reporting this, just yanked 3.1.0 and will investigate further.

Yup, this'll do it: https://github.com/gendx/lzma-rs/blob/168221a91f66000cf2424a62f9ffd18cf5fd91b7/src/encode/util.rs#L7. I suspect this is a somewhat uncommon use of the API, but it's still a breaking change that's not acceptable.

Unfortunately, I don't see an easy way to replace Width with Implementation when there are generic call sites explicitly referencing Width.

Will either have to rename Implementation to Width or release 4.0.0.

I have a solution for this that doesn't break semver: #115. Will do some more testing (incl. against lzma-rs before release 3.1.0).