-
Notifications
You must be signed in to change notification settings - Fork 928
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
Explicitly specify minimum supported rust version #2400
Conversation
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.
I don't mind testing some minimum Rust version in CI (as long as we don't start saying "no, I won't accept this feature because it bumps the MSRV").
Note that we can't guarantee this for downstream users without all of our dependencies also setting the field to the same version or lower!
Want a badge in the README?
|
I don't like them, and we have that stated in
We actually do guarantee, given that CI builds winit now with MSRV and it won't pass otherwise. |
True, but that only says something about a version of Rust that As an example, let's take a hypothetical |
My point is, I'm fine with stating what our current MSRV is, but we must take care not to make it part of our SemVer contract, since we can't uphold such a guarantee. |
Yes, but applications can downgrade the dependencies, that's the point. In general version change is a breaking change so library writers should have some sanity. |
I think I understand the use-case better now, so we just state "there exists dependencies that can satisfy this specific version of Is that the idea? Or is there another use-case for distributions that I'm missing? |
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.
Won't our CI break if one of our dependencies bumps their MSRV in a patch release (or minor release for post-1.0
versions)?
Yes. And that we can ship alacritty to fedora/ubuntu since those update rust not that often. |
I'm not entire sure, but we'll see how it works. In general libraries must not break msrv in a not breaking change without a reason. At some point we can make all of them behave. I've started that since it broke the ability to ship alacritty to any non rolling release distro, and I haven't noticed it due to not having automatic tests for msrv, etc. (But I was very happy having |
Do we have some sort of list of distros we care about in this regard, since I assume we then want to keep ourselves compatible with the |
In general I'd suggest to target latest stable ubuntu rustc version. Every other distro is likely having newer version. |
In general, what would be the resolution here? I think that we can go ahead and keep it that way and see how often it'll break CI for us, but it should be pretty rare case. |
@kchibisov I'd just go ahead with this. Any crate that breaks us / our CI at some point should simply result in a discussion whether the crate in question is at fault (and should realistically be yanked if MSRV is considered part of "breaking version bump" semver-wise), or our view of MSRV should be bumped and published. At the very least it won't hurt testing for it now. |
This should help with distributing apps using winit. Fixes rust-windowing#1075.
This should help with distributing apps using winit.
Fixes #1075.
--
Will require a patch bump afterwards unfortunately.