Skip to content

Conversation

@complexspaces
Copy link
Member

This PR technically updates windows-sys, but more importantly it makes some changes to allow arboard to work with either 0.52 (more common) or 0.59 versions of the crate. This change's goal is to make it easier to balance the desires of parties who want the latest version in their tree (and to help the ecosystem move along) with those who are stuck with older versions and don't want their build times or lockfiles damaged.

It accomplishes this via three parts:

  • Making changes to the windows.rs module to abstract over some function parameter and return value changes that have been made in the past.
  • Using a range specifier in arboard's Cargo.toml
  • Implementing CI testing to prevent accidentally using newer features that don't exist in 0.52 which would break downstream builds. This is the most important part as it helps verify our code is actually compatible with this version range.

The idea is based off many similar changes being made across crates.io, including winapi-util, errno, is-terminal, and many others to reduce version churn for users.

@complexspaces
Copy link
Member Author

Looking at the CI run you can see that we download + check 0.59 of windows-sys in the new job, which succeeds, confirming there are no cargo version conflicts and that arboard's source is compatible with both library versions:
image

Locally running the same steps demonstrates the same.

complexspaces and others added 2 commits February 13, 2025 17:51
Co-authored-by: Exotik850 <kidkool850@gmail.com>
This is to prevent accidental breakage due to the new version range
@complexspaces complexspaces merged commit e824bc8 into master Feb 14, 2025
11 checks passed
@complexspaces complexspaces deleted the windows-sys-update branch February 14, 2025 00:26
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