paritytech / parity-scale-codec

Lightweight, efficient, binary serialization and deserialization codec
Apache License 2.0
257 stars 94 forks source link

v3.7.0 is a breaking version #656

Open FabijanC opened 3 days ago

FabijanC commented 3 days ago

Version 3.7.0 broke the semver contract. The required Rustc version has been incremented to 1.79, thus breaking backwards compatibility, which should have made the new release 4.0.0 instead of 3.7.0. Unfortuantely I learned this the hard way (broken CI / release process).

But not sure what's going on here; on crates.io v3.7.0 is the latest version, while on GitHub it's v3.6.12. Was 3.7.0 a deliberate release?

bkchr commented 2 days ago

https://github.com/rust-lang/api-guidelines/discussions/231 and there are other discussions. MSRV bumps alongside a minor bump are fine, aka not semver breaking.

FabijanC commented 2 days ago

Thanks for the link. Basically breaking people's CI is by some not considered a breaking change. And even though they do not consider it a breaking change, they advise MSRV bumps to be included in breaking releases.

Moreover, for us, parity-scale-codec is not a direct dependency, but one of hundreds of dependencies of a dependency. Which makes it hard to track such changes. We were able to fix our CI by specifying parity-scale-codec (and parity-scale-odec-derive) as our direct dependencies with a =3.6.12 requirement.

Since it seems you are not going to yank 3.7.0 and replace it with 4.0.0, feel free to close this issue.