oconnor663 / blake2_simd

high-performance implementations of BLAKE2b/s/bp/sp in pure Rust with dynamic SIMD
MIT License
126 stars 22 forks source link

Last version has silently force-bumped MSRV without breaking change #30

Open CPerezz opened 1 year ago

CPerezz commented 1 year ago

I'd suggest to add an MSRV to the crate in the next release. And keep track of what bumps or not the MSRV. As basically anyone that has MSRV and builds on the top of this lib gets the CI crushed every time a new dependency is silently bumping the MSRV without you noticing (as you depend on things with "^0.x.x".

For more info, see: https://github.com/privacy-scaling-explorations/halo2/issues/207

oconnor663 commented 1 year ago

This was mentioned in the release notes: https://github.com/oconnor663/blake2_simd/releases/tag/1.0.2. The bump was discussed here: https://github.com/oconnor663/blake2_simd/pull/29#issuecomment-1712908114. But I realize that in your shoes that's hardly different from "silent".

This crate doesn't have an explicit MSRV policy, but if it did it would probably be similar to this proposed policy from libc: https://github.com/rust-lang/libs-team/issues/72. In general I agree with Andrew Gallant's opinion from that thread:

Treating MSRV bumps as semver incompatible is completely untenable. I tried it many years ago and quickly gave it up for a variety of reasons, and I think it would be disastrous to conform to such a policy.

Is there a specific "stable - N" policy you aim to support?

CPerezz commented 1 year ago

This was mentioned in the release notes: https://github.com/oconnor663/blake2_simd/releases/tag/1.0.2. The bump was discussed here: https://github.com/oconnor663/blake2_simd/pull/29#issuecomment-1712908114. But I realize that in your shoes that's hardly different from "silent".

That's my bad, I should have checked the release notes. I did not. Thanks for the links!

This crate doesn't have an explicit MSRV policy, but if it did it would probably be similar to this proposed policy from libc: https://github.com/rust-lang/libs-team/issues/72. In general I agree with Andrew Gallant's opinion from that thread:

That makes a lot of sense. I was unaware of it! I like the N-2, N-3 policy they propose. Definitely makes sense and also doesn't fight against semver which seems also the way to go.

I don't have any specific proposals, neither know what would make more sense (2,3 etc..). So happy with any that you feel makes sense. So that we can follow it! :)

Thanks so much for the detailed and quick response.

CPerezz commented 9 months ago

We can also close this probably @oconnor663 ??

Again thanks a lot for the references!