-
-
Notifications
You must be signed in to change notification settings - Fork 481
Bump MSRV and Edition for rand_core
#1668
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
Conversation
newpavlov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we still need a separate Cargo.lock.msrv with MSRV-aware resolver?
I think we could commit MSRV-compatible Cargo.lock (as much as I dislike it, it's the default resolver behavior) and re-generate Cargo.lock for non-MSRV jobs.
|
Our automated tooling should:
In theory |
|
My point is that unless you manually pass My suggestion is to remove Cargo.lock.msrv and simply use Cargo.lock instead of it and for (2) modify our non-MSRV CI jobs to use |
|
By "breaking releases" I meant bumps to the major/minor version, so no it would not resolve (3). For (2) we'd need an explicit I don't think we'd want I guess the primary difference is what happens when someone checks out the repo and runs a Cargo command. |
Nope. You have a wrong understanding of how MSRV-aware resolver works by default. If we have a patch release in an upstream dependency which requires Rust 1.90, the resolver would select an older version compatible with In the RFC discussion I strongly argued that it should use the currently used toolchain version, but, unfortunately, it was decided otherwise... |
|
This still doesn't give us an incentive to commit |
|
If you do not want to update Cargo.lock regularly, then one option is to not commit Cargo.lock at all and generate it from scratch as part of CI jobs (with or without Personally, I like to commit Cargo.lock since it allows to catch issues introduced in upstream dependencies, but I understand if you would prefer a slightly different trade off. |
|
Yes, I'd prefer not to have so many dependabot PRs updating deps. We'll get build failures either way.
This actually feels pretty stupid: users could easily end up missing important fixes. Maybe then binaries should not specify |
The difference is that we would get build errors in PRs which update lock files, not in random PRs with unrelated changes.
Well, I agree. But it's not me whom you should be telling this, but @epage. |
|
If you commit your
Feel free to checkout the RFC. We analyzed archetypes of use cases, compared their impacts on users, and then prioritized them for when they come into conflict with each other when selecting a solution. This led to "using latest deps despite MSRV" as one of the lowest priority workflow. See also https://doc.rust-lang.org/nightly/cargo/reference/rust-version.html |
|
@epage I apologise if I caused offence. I likely have a biased point of view, in particular since
I appreciate that MSRV-aware version resolution simplifies testing of the MSRV, and also that for projects which commit I am surprised about the MSRV-aware dependency resolution behaviour for projects which do not commit (And just committing
Yes, and especially for less-frequently-updated repos like https://github.com/rust-random/rngs/ it would make sense to get such updates sooner. My preference however would be to run CI jobs on a schedule — I should set this up! |
CHANGELOG.mdentrySummary
Bump MSRV and Edition for
rand_core