-
Notifications
You must be signed in to change notification settings - Fork 183
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
ureq 2.x: Make MSRV 1.63 work (by bumping to MSRV 1.67) #878
Conversation
I found a combination of versions that work to compile 1.63 locally. However the CI now fails with:
|
I think that means we might be stuck in a situation where ureq 2.x either must bump MSRV to whatever time requires at 0.3.35, or not be able to compile with rustc >= 1.80 |
8145f0e
to
9ce7316
Compare
Alright. This fixes MSRV... Not in a satisfactory way, but in a way that is releasable. The RUSTSEC-2024-0399 error in the CI I'll deal with separately. |
FYI the Cargo team discourages using non There are two problems with enforcing MSRV this way
From Cargo's documentation for
The way I see people handle this include
In 1.84, Cargo will include an MSRV-aware resolver, see https://doc.rust-lang.org/nightly/cargo/reference/config.html#resolverincompatible-rust-versions Use of the MSRV-aware resolver does not require bumping your MSRV; you just need to change your |
Hi @epage, thanks for the feedback! Since I'm close to releasing ureq 3.x (RC3 is out), my hope is to be able to abandon the 2.x version soon anyway (apart from security and potentially more MSRV fixes). This pinned dep is a band aid until such time. For 2.x I think I'm stuck between a rock and a hard place. The MSRV table you provided here tells us that if I unlock the rustls dep, a user on anything below <1.71 will fail to compile with less than editing the lock file. That means ~25% of potential users of ureq could fail to use ureq out-of-the box. Did I get that right? One of ureq's primary goals have always been to work out-of-the-box especially for beginners to Rust. A potential 25% failure rate is not good. Or am I misunderstanding it? |
There is also another angle to this matter: I think in the case of |
That table was published on 11/10/2023. Whats more important is to look at the relative value. 1.71 was released on 2023-07-13 which is almost 1.5 years ago. For a release that was a year old at the time the table was made, 98.766% of requests to crates.io would be satisfied.
In considering the out-of-the-box experience for beginniners, also consider the esoteric errors you put your users at risk of seeing, e.g. https://www.reddit.com/r/rust/comments/p8clcx/how_to_fix_cargo_dependency_issue/ |
@epage I have now released 2.12.0. This is MSRV 1.71 with dependencies unpinned. I am going to maintain two lines:
I will pin dependencies in those lines as needed by releasing patch versions. If I must bump MSRV again, it will be in another minor version. 2.x will not get any more features. So I will only release patch to keep it alive (upon request). |
@algesten is there a reason you are still pinning versions in your |
Close #877