-
Notifications
You must be signed in to change notification settings - Fork 2.7k
declare version of windows-sys by range set to fix compile under win7 #16326
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
This comment has been minimized.
This comment has been minimized.
|
Sorry, I forgot to rebase before. I fix this. |
|
I'm not a fan of multi-major semver versions when we are not testing them to make sure the our version requirement is valid. |
Using a range instead of the default Caret requirements helps avoid duplicate versions in downstream graphs and improves resolver flexibility. Additionally, `[email protected]+` has a bug that causes compilation errors under `*-win7-windows-*` targets, so this change will allow users to choose & lock older version of `windows-sys` in theirs `Cargo.lock` to avoid this bug and continue support Windows 7.
fb65b34 to
edefcbb
Compare
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
I start facing with compile errors in various projects that declare home@^0.5.12 as their dependency. What can we do? Maybe it is possible to make a downgrade windows-sys to 0.60.2, at least until we actually need some features in new versions of |
Rust ecosystem has perfect support Winows 7, exclude this [email protected]+. Even Rust 1.91.1 can be compiled (without any changes in source code (!) ) to running toolchain with host tools on Windows 7: rust-lang/rust#148362 |
Either you can switch to |
I guess you misunderstand me. MSRV cannot be too high for me, because I use the latest rustc 1.91.1 for compiling. You give me advises for case if I write my own crate. In this case I really can make all versions under control. However if I want to compile not my program (for example, running Well, I understood you and your mood about this problem. However this is a really sad to see how the whole ecosystem is crashing, even on tier 3 target. |
|
So if this is for |
This is not only for
For now, not many crates that required Well, I'm trying to figure out how resolve this problem with minimal effort. Hmm. If I create my own |
|
We discussed this in today's Cargo team meeting. Some potentially relevant sections from tier 3 policy
While there would be a clearer line if we were using new features from
There was some concern within the team over them recommending this
Ideally, they would not bump their major version so much which would provide more flexibility in how all of this is handled. As such, I'm going to go ahead and close this. |
|
FWIW, Microsoft is uninterested in merging win7-related fixes into windows-rs: microsoft/windows-rs#3791. I'm currently working around this by using a fork of windows-rs in my personal builds, but it's a bit unclear on how to progress here for more general availability of the Win7 target. There's a workaround provided by riverar for that specific issue in the PR, but I'm not sure if it's something that we can bundle in the toolchain easily (it requires shipping a .def file, and passing it as a linker flag). |
Declaration with range is a recommended way to add
windows-syscrate as dependency:Additionally,
[email protected]+has a bug that causes compilation errors under*-win7-windows-*targets, so this change will allow your users to choose & lock older version ofwindows-sysin theirsCargo.lockto avoid this bug and continue support Windows 7.I faced with compile errors causes from [email protected] (0.5.11 works fine).