Skip to content
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

cargo: permit windows-sys >=0.52.0 and <=0.59.* #106

Merged
merged 1 commit into from
Aug 18, 2024

Conversation

BurntSushi
Copy link
Owner

This matches a similar change made by @ChrisDenton for winapi-util in:
BurntSushi/winapi-util#19

The benefit is that this should hopefully put less constraints on the
ecosystem and to enable fewer copies of windows-sys to appear in
dependency trees.

I am somewhat miffed that this is necessary. IMO, the windows-sys
maintainers should find a way to make a stable release with infrequent
or ~zero breaking change releases.

This matches a similar change made by @ChrisDenton for winapi-util in:
BurntSushi/winapi-util#19

The benefit is that this should hopefully put less constraints on the
ecosystem and to enable fewer copies of windows-sys to appear in
dependency trees.

I am somewhat miffed that this is necessary. IMO, the windows-sys
maintainers should find a way to make a stable release with infrequent
or ~zero breaking change releases.
@BurntSushi BurntSushi merged commit ae6000b into master Aug 18, 2024
17 checks passed
@BurntSushi BurntSushi deleted the ag/relax-windows-sys branch August 18, 2024 21:49
@ChrisDenton
Copy link

ChrisDenton commented Aug 18, 2024

IMO, the windows-sys maintainers should find a way to make a stable release with infrequent or ~zero breaking change releases.

The windows-sys crate is auto-generated from upstream metadata so only has so much control. And people do want fixes for issues so zero breaking changes won't be realistic until the metadata stabilizes and is fully reliable. I don't think infrequent release would solve the issue either. Whether it's a breaking release every six months or two years, there's going to be a point where the ecosystem is split for a long time due to the very different rates at which crates update their dependencies (almost immediately via a bot or a year or two later when someone happens to notice the outdated dependency).

There is however another option. Bespoke bindings can be generated using the windows-bindgen crate. The only public dependency is the windows-targets crate which should rarely (if ever) require an update. You can see a quick example of using it in the crate's readme. The windows-rs repository uses it for some crates. E.g. see strings.txt.

@BurntSushi
Copy link
Owner Author

Thank you! I'll probably move to windows-targets at some point, since there are very small interaction points (at least currently) with the Windows API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants