-
Notifications
You must be signed in to change notification settings - Fork 69
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
Rename MACOS_DEPLOYMENT_TARGET back to MACOSX_DEPLOYMENT_TARGET #309
Rename MACOS_DEPLOYMENT_TARGET back to MACOSX_DEPLOYMENT_TARGET #309
Conversation
There is one other similar occurrence, which is |
Ideally, it would be nice to get this into a patch release, since it is a pretty bad regression that breaks the ability to make wheels for older macOS versions (unless you know to set |
Ups, this typo is mine. I remember cross checking the variable name with the one used by other tools and convincing myself that all was good. I also tested this and it seemed to work fine, for example here https://github.com/dnicolodi/python-siphash24/actions/runs/3553666516/jobs/5969311668 cibuildwheel does not complain. Anyhow, the fix is obviously correct. The |
Nope, I added the broken |
@stefanv I don't find anything about environment variables in the |
The X got lost in the big refactoring in mesonbuild#202.
7fc234c
to
f4cdce7
Compare
The test tried to test the effect of setting the MACOS_BUILD_TARGET environment variable on the produced wheel tags, however there is bug for which the emitted tags are always compared to the tag for the current platform. The environment variable has no effect on the wheel tags. Remove the bogus test.
f4cdce7
to
af2432d
Compare
Thanks for reviewing, @dnicolodi! Here's the relevant manpage (I don't own a mac, so can't say exactly where this was captured): |
It was broken, because meson, in contrast to the wheel, does not check the platform tag in binary files, but only read values from the environment variable. |
@henryiii @FFY00 A 0.13.0rc1 release would be great, since we are already using 0.13.0rc0 for scikit-image. |
Would you like to elaborate? Meson is not responsible for generating Python wheels. Also, which piece of software react to the |
Thanks. The linked man page is the same as the one on my system. I just overlooked the mention of the |
The test that was removed in this PR and does not fails even if a typo in the variable because there is no validation if files are created correctly. I do not play with meson, but when using another build system, it happens to have build polluted by the previous run (ex. make, cmake will not rebuild all files because the env variable is changed, only this that sources files were changed) or part of build process may be the usage of binary blob give by a vendor (like in this package https://github.com/tlambert03/nd2). Both scenarios will lead to an incorrectly tagged wheel file. First may be minimalized by using CI, but still user could enable cache operations for speedup build. |
This is not what was wrong with the test. The typo was in an environment variable name not touched by the removed test. |
|
||
@pytest.mark.skipif(platform.system() != 'Darwin', reason='macOS specific test') | ||
def test_tag_macos_build_target(monkeypatch): | ||
monkeypatch.setenv('MACOS_BUILD_TARGET', '12.0') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see here that is touched
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, but who reads it? Which piece of software reads this environment variable? The environment variable expected by the toolchain is MACOSX_DEPLOYMENT_TARGET
. I suspect that MACOS_BUILD_TARGET
is something I made up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. but when this test will set variable to 10.9 and the tag calculation will check files then this test will fail, as the test will in both runs return 12.0 (as the wrong variable was set).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Czaki you don't make any sense. I'm giving up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your assumption that after correctly setting the environment variable, the toolchain will produce the correct files is wrong. It will often be true, but not always.
Nad I only point the test that, if checking the platform tag will examine files, the test will find a bug in the variable name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except that the test is not compiling any code an there is no file to examine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After reading the code I was pretty sure that it compile. I'm sorry for bothering you.
Change CI MACOSX_DEPLOYMENT_TARGET from 10.13 to 10.9 to allow for continued compatibility with earlier OS versions given that associated wheels are available which meet the dependency version requirements. The correct fix for building MacOSX wheels is here: mesonbuild/meson-python#309 We are using this temporary workaround: scikit-image#6757 SciPy 1.10.1 will also suport 10.9: scikit-image#6750
Change CI MACOSX_DEPLOYMENT_TARGET from 10.13 to 10.9 to allow for continued compatibility with earlier OS versions given that associated wheels are available which meet the dependency version requirements. The correct fix for building MacOSX wheels is here: mesonbuild/meson-python#309 We are using this temporary workaround: #6757 SciPy 1.10.1 will also suport 10.9: #6750
This is the environment variable name used by Apple (see compat(5)). It is also supported by cibuildwheel, CMAKE, etc.
It was renamed in 9e84bd9
Closes pypa/cibuildwheel#1419