Skip to content

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

Merged
BurntSushi merged 1 commit intomasterfrom
ag/relax-windows-sys
Aug 18, 2024
Merged

cargo: permit windows-sys >=0.52.0 and <=0.59.*#106
BurntSushi merged 1 commit intomasterfrom
ag/relax-windows-sys

Conversation

@BurntSushi
Copy link
Copy Markdown
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
@BurntSushi BurntSushi deleted the ag/relax-windows-sys branch August 18, 2024 21:49
@ChrisDenton
Copy link
Copy Markdown

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
Copy Markdown
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