Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

shadowsocks broke semver by upgrading shadowsocks-crypto from ^0.3.3 to ^0.5.1 #1128

Open
faern opened this issue Mar 6, 2023 · 0 comments

Comments

@faern
Copy link
Contributor

faern commented Mar 6, 2023

I just bumped our dependency on shadowsocks by just doing cargo update -p shadowsocks. This sticks to semver compatible releases (1.14 -> 1.15 in this case). But then my code stopped compiling. Because we were using shadowsocks::crypto::v1::CipherKind, a type that no longer existed.

This is because shadowsocks publicly re-exports shadowsocks-crypto, the API for shadowsocks-crypto changed in a semver breaking way.

I like the convenience of having shadowsocks-crypto re-exported directly from shadowsocks. But also, shadowsocks-crypto is a 0.x release and shadowsocks is at 1.y. It's probably not ideal to publicly re-export an "unstable" crate in the public API of a stable crate.

You could potentially try out semver checking software before a release, to check if you did not break the API. Such as https://crates.io/crates/cargo-semver-checks or https://crates.io/crates/semverver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant