pypa / cibuildwheel

🎡 Build Python wheels for all the platforms with minimal configuration.
https://cibuildwheel.pypa.io
Other
1.88k stars 239 forks source link

Remove build specific environment variables from the test environment #1863

Open mayeut opened 5 months ago

mayeut commented 5 months ago

Description

macOS builds are using multiple environment variables specific to the build environment: MACOSX_DEPLOYMENT_TARGET, _PYTHON_HOST_PLATFORM, ARCHFLAGS, SDKROOT

Those are propagated to the test environments. They should probably be removed from those.

see https://github.com/pypa/cibuildwheel/pull/1856#issuecomment-2156493426 and the 2 following comments for more context.

Build log

No response

CI config

No response

henryiii commented 5 months ago

While MACOSX_DEPLOYMENT_TARGET makes sense, the others might cause it to be harder to build wheels in the test step if wheels are missing from test dependencies. Not the best idea to build here, in general, but it may currently work because the correct variables are set for building.

mayeut commented 5 months ago

Maybe we should adapt them all then ?

If we're thinking that we might break some edge case that requires building from sources by removing any of those environment variable then IMHO we should update them all:

joerick commented 1 month ago

I think removing these variables for the test step makes sense in general.

Probably the right approach would be to start again from os.environ rather than copying env here:

https://github.com/pypa/cibuildwheel/blob/7c3b0fbee8d7cb8d065a50d12b206978204a8238/cibuildwheel/macos.py#L675

And equivalents for the other platforms.

  • MACOSX_DEPLOYMENT_TARGET to the current running OS (this one is already done but was meant to be temporary, required by uv for now)

I don't follow this - normally on a user's machine MACOSX_DEPLOYMENT_TARGET isn't set and installing with uv works.