-
Notifications
You must be signed in to change notification settings - Fork 19
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
Bump windows-core
to 0.53-0.54
range
#131
Conversation
Note that `windows 0.55` was not released, and any implementation in the wild depending on `windows` will get `windows-core 0.54` in their dependency tree for obvious compatibility reasons, and would get a duplicate if `iana-time-zone` decides to switch to o`windows-core 0.55` prematurely. This PR depends on strawlab#131 and can be updated and merged whenever there is a compelling reason to bump further. This requires a strange change to remove a "comment" from `bindings.txt`: Running `api_gen/target/debug/api_gen` Error: Error { message: "unused filters\n Dependencies\n above\n the\n of\n #", path: "", span: None }
Note that `windows 0.55` was not released, and any implementation in the wild depending on `windows` will get `windows-core 0.54` in their dependency tree for obvious compatibility reasons, and would get a duplicate if `iana-time-zone` decides to switch to o`windows-core 0.55` prematurely. This PR depends on strawlab#131 and can be updated and merged whenever there is a compelling reason to bump further. This requires a strange change to remove a "comment" from `bindings.txt`: Running `api_gen/target/debug/api_gen` Error: Error { message: "unused filters\n Dependencies\n above\n the\n of\n #", path: "", span: None }
Bumping the edition for having |
@astraw I don't see any strategy as to what the policy is regarding MSRV bumps in https://github.com/strawlab/iana-time-zone?tab=readme-ov-file#minimum-supported-rust-version-policy, and it seems likely that an internal version bump for a newer crate that doesn't provide any useful/fixed functionality otherwise (besides getting rid of duplicate deps downstream) isn't very compelling to break MSRV for. Despite that, what are your thoughts? The requested version here for |
a7a0907
to
a478270
Compare
a478270
to
06fe3ee
Compare
06fe3ee
to
43cac50
Compare
@@ -26,7 +26,7 @@ android_system_properties = "0.1.5" | |||
core-foundation-sys = "0.8.6" | |||
|
|||
[target.'cfg(target_os = "windows")'.dependencies] | |||
windows-core = { version = ">=0.50, <=0.52" } | |||
windows-core = { version = ">=0.53, <=0.54" } |
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.
are we able to lower the bound on this so we can get the crate building with Rust 1.61.0?
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.
Let me do some experimentation to see how far we can stretch this bound without bumping the generator and hence requirements for MSRV/edition, and keep separate PRs open when we do end up bumping those.
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.
0.53
already requires MSRV 1.62
, the resulting compatibility issues with older windows-bindgen
output don't even matter at that point.
43cac50
to
c6ace10
Compare
whoops sorry, didn't mean to close this. #161 is merged and when I deleted the |
@MarijnS95 Just to confirm my understanding of the current state:
Looking ahead to your other PR (#133):
Assuming I’ve summarized this correctly, this means that if we’re comfortable raising our MSRV by one version (to Rust 1.62.0), we can adopt a significantly more up-to-date version range of Could you please confirm this assessment? If this understanding is correct, the next step would be discussing with the other maintainers and the Chrono team whether this MSRV increase is acceptable. Thanks again for your patience and for driving these improvements. I really appreciate your efforts here! |
Whoops, now I apparently accidentally deleted the git branch associated this PR. Sorry! (Actually, I thought I was deleting the Many thanks for your ongoing work on this - I really appreciate it. I apologize for this. @MarijnS95 I also missed your question about the MSRV policy. My main thought is that increases up to chrono's level are likely fine and beyond that should ideally be done in consultation with the chrono team. |
@astraw you can just push up the branch with the same name on current main and it will let you reopen the PR. I'm used to work GitHub where stacking branches like this would automatically update the base of a PR to the primary branch on merge, but I guess that doesn't work with forks. |
OK, I was able to restore the branch I deleted and the GitHub let me reopen the PR. Sorry for the noise. (I didn't anticipate that deleting the name of a merged branch would cause this. Now I know how GitHub keeps force push commits associated with the same PR.) |
@astraw the bump we just landed to 1.61.0 matches Chrono. In order to move forward here, we have to bump again to 1.62.0. |
c6ace10
to
88b8858
Compare
This includes the necessary binding changes for compatibility, provided by `windows-bindgen 0.53-0.54`. Generated code by `windows-bindgen` now also expects `TryInto` to be in scope via Rust's `prelude`, which is only the case in Rust edition `2021`.
88b8858
to
a26e540
Compare
Looks like GitHub is just broken. It used to automatically reset the target branch to I've updated the target branch (hopefully maintainers can do that as well?) so it should once again be safe to remove @lopopolo your points above are all correct, expanding on these:
Correct, both forwards and backwards.
Yes, and I don't think/remember if there was another combination that is useful to us (i.e. if we use I've pushed a preliminary MSRV bump to this PR just to see if the CI is happy with these claims (here and in #133), feel free to pull that in through a separate PR when upstream consumers like
Yeah a PR tracks a branch, wherever that branch ends up pointing to (and doesn't prune "unreachable" commits, since they're commonly still "reachable" from the UI here, like the |
It looks like CI is passing with the MSRV bump. Thanks again @MarijnS95 for your efforts! I’d like to move forward with this proposal, but recognize it might cause some friction for downstream consumers, so I want to ensure we’re fully aligned before proceeding. Specifically, we’re proposing to raise this crate's tier 1 target MSRV from 1.61 to 1.62. This change enables support for a broader range of The update is also beneficial to us as maintainers of @djc, from Chrono’s standpoint, is it acceptable to include this MSRV increase in another 0.1.x release? Alternatively, would you prefer we mark this clearly by releasing it as version 0.2.0? I’m open to feedback and eager to find a path forward that aligns with everyone’s needs. |
Hey everyone 👋. I wanted to chime in as a downstream user of At work this is currently blocking us from cleanly migrating to the latest versions of On my side as an OSS developer, I've worked around
If the MSRV arrangements here end up being problematic, I'd like to propose a different approach: Dropping the use of Note that while in theory Rust 1.61-1.62 supports versions of Windows before 10, the current use of WinRT APIs in |
Bumping MSRV to 1.62 is fine at this point. Though, following through on @complexspaces points would be nice. (chrono itself already uses windows-bindgen too.) |
Thanks for the feedback, everyone. As I rarely use Windows, and even more rarely program low-level Windows-specific stuff, I really depend on your input. These 1k+ lines of autogenerated code, with lots of From my side, bumping MSRV to 1.62 would be fine with me, too. |
Merging this—thanks everyone for the thoughtful discussion and collaboration here! I’ve opened #166 to continue the conversation around simplifying the Windows implementation and potentially dropping the @MarijnS95 once this is in, I believe we can rebase #133 and land that pretty quickly. @astraw, I think we owe folks a release once all of these PRs are in. |
Depends on #161
This includes the necessary binding changes for compatibility, provided by
windows-bindgen 0.53-0.54
. Generated code bywindows-bindgen
now also expectsTryInto
to be in scope via Rust'sprelude
, which is only the case in Rust edition2021
.