Skip to content

Set up delvewheel as the default repair wheel command for Windows - #2831

Merged
henryiii merged 36 commits into
pypa:mainfrom
agriyakhetarpal:delvewheel-windows
May 13, 2026
Merged

henryiii merged 36 commits into
pypa:mainfrom
agriyakhetarpal:delvewheel-windows

Conversation

@agriyakhetarpal

@agriyakhetarpal agriyakhetarpal commented May 1, 2026 •

Copy link
Copy Markdown
Member

This PR adds delvewheel in the usual places for it to the default wheel repair command for our Windows platform in cibuildwheel v4. The current version is v1.12.0, and the project has become fairly stable as of 2026.

I think I covered everything, but please LMK if I missed anything. @joerick, since you expressed interest in adding this in various issues, it'd be great if you could take a look – and by all means, please feel free to push any further changes to my PR!

Also, cc: @adang1345 (I hope it is okay for us to ping you here!)

Thank you! :)

Also, perhaps we should look at #1567 too while we're at it, based on the open issues that reference "delvewheel".

@agriyakhetarpal

Copy link
Copy Markdown
Member Author

One of the concerns we had was listed in #2047 (comment), about users having to add --add-path to the Windows wheel repair. I think that can be resolved if we make a note of this in the docs, but I will wait for preliminary review suggestions to come, first.

@nilsnolde

nilsnolde commented May 1, 2026 •

Copy link
Copy Markdown

Thanks, I appreciate that:) I'll just reiterate that IMO this is a more general Windows limitation, they don't have a proper system package manager (EDIT: though I did see a winget randomly recently) and the way I always use it is to reference vcpkg/conan dll's (there's probably more scenarios for sure, but this might be the most dominant). Adding it to the docs will be appreciated by everyone. Much better than the current situation:)

Suggested-by: Nils <nilsnolde@proton.me>
@agriyakhetarpal

Copy link
Copy Markdown
Member Author

Thanks, I appreciate that:) I'll just reiterate that IMO this is a more general Windows limitation, they don't have a proper system package manager (EDIT: though I did see a winget randomly recently) and the way I always use it is to reference vcpkg/conan dll's (there's probably more scenarios for sure, but this might be the most dominant). Adding it to the docs will be appreciated by everyone. Much better than the current situation:)

Good point, thanks @nilsnolde. I agree that vcpkg is the closest to this kind of thing out there (and even Meson wraps is one more option). I added a note in 8cfdbf7. Does that suffice? :)

Comment thread cibuildwheel/platforms/windows.py Outdated
@agriyakhetarpal
agriyakhetarpal requested a review from timfel May 1, 2026 18:19
@agriyakhetarpal

This comment was marked as resolved.

@agriyakhetarpal agriyakhetarpal added CI: GraalPy Run the integration test suite with GraalPy included CI: PyPy Run the integration test suite with PyPy included labels May 1, 2026
@nilsnolde

nilsnolde commented May 2, 2026 •

Copy link
Copy Markdown

I added a note in 8cfdbf7. Does that suffice? :)

@agriyakhetarpal IMO sounds perfect, thanks!

@agriyakhetarpal

Copy link
Copy Markdown
Member Author

Let's see if this works!

@agriyakhetarpal

Copy link
Copy Markdown
Member Author

Something is pulling in 26.1.1 from a venv somewhere, but I can't yet figure out what. It's stopping the tests from proceeding, then moving on to the tests we actually want to see run (the C extension with an unfindable DLL).

@agriyakhetarpal
agriyakhetarpal requested a review from joerick May 13, 2026 17:27

@joerick joerick left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brilliant, that's perfect.

@joerick

joerick commented May 13, 2026

Copy link
Copy Markdown
Contributor

There's no equivalent test for auditwheel or delocate, so consistency called for doing so, but I think it's probably alright to bring it back

I'd reckon our integration tests do cover auditwheel, because the 'manylinux' filename is set by that tool. Not checking delocate on macOS is maybe an opportunity for better test coverage :)

@henryiii
henryiii merged commit 78869d0 into pypa:main May 13, 2026
45 checks passed
@agriyakhetarpal
agriyakhetarpal deleted the delvewheel-windows branch May 14, 2026 04:11
HinTak added a commit to HinTak/skia-python that referenced this pull request Aug 8, 2026
HinTak added a commit to HinTak/skia-python that referenced this pull request Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI: GraalPy Run the integration test suite with GraalPy included CI: PyPy Run the integration test suite with PyPy included

Projects

None yet

Development

Successfully merging this pull request may close these issues.

delvewheel as default for windows repair command

6 participants