-
Notifications
You must be signed in to change notification settings - Fork 115
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
Backwards incompatible change in minor version bump from 4.1.3 -> v4.1.4 #148
Comments
I'm sorry for the breakage, I didn't consider this case. Yanking and republishing as 4.2.0 is possibly the best way forward? I don't think this warrants a big jump, as this is technically a backwards-compatible change except if you on purpose disable default features. In my mind, if you do that, you already state, "I know better" and are then on the hook for selecting the right features, no? :) Let me know if this would work for you. |
I understand where you're coming from, but it's still a backwards incompatible change since the effect of setting I don't think
For our usage of the library, we ended up just upgrading to |
As per cargo's use of semver for MAJOR versions
A more common line of thinking here goes something along the lines of "I am making a library and don't want to be on a hook for transitively pulling dependencies my library doesn't require". That's how most of the uses of A good way to avoid this situation in general would be to only have features that are always additive (that is, no mutually exclusive features) and that the library always builds without any enabled. |
https://doc.rust-lang.org/nightly/cargo/reference/features.html#feature-unification has some nice documentation and guidelines. A particularly nice option for yup-oauth2 may be selecting one feature over another by default if both are specified. |
It looks like the bump from v4.1.3 -> 4.1.4 here (v4.1.3...v4.1.4) is a breaking change for dependent crates that use
default-features = false
.With
default-features = false
, a crate that depends onyup-oauth2
will get neitherhyper-rustls
norhyper-tls
and thus will fail to compile.I'm not entirely sure what there is to be done here. I wonder if it's worth yanking this version of the crate from crates.io?
The text was updated successfully, but these errors were encountered: