Skip to content
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

MacOS older version support in wheels #62

Closed
henryiii opened this issue Apr 14, 2020 · 4 comments · Fixed by #63
Closed

MacOS older version support in wheels #62

henryiii opened this issue Apr 14, 2020 · 4 comments · Fixed by #63
Assignees

Comments

@henryiii
Copy link

What is the expected enhancement?

I was helping someone install this library and realized that they had macOS 10.12 + Conda Python 3.7, and couldn't pull the wheels since they are 10.13+ (intel) and 10.15+ (normal). Could the MACOSX_DEPLOYMENT_TARGET be set to 10.12 or 10.9? I'm guessing it is not set at all, due to the 10.15 in the wheel. If not, is there a reason it can't be lowered?

@henryiii
Copy link
Author

henryiii commented Apr 14, 2020

Note: In cibuildwheel, regardless of what the current documentation seems to claim, MACOSX_DEPLOYMENT_TARGET is not set automatically, and it generally always should be set by hand.

@mtreinish
Copy link
Member

Thanks for the suggestion, I wasn't aware of that env variable. As a non-mac user I wasn't sure how to control the compat level and the reason for the different wheels on the current version on pypi was ci env differences (azure pipelines vs travis). I agree we should do this as I want to make sure we offer widely compatible wheels for as many platforms as we can for this (the nightly rustc requirement is difficult for some users unfamiliar with the rust ecosystem). I'll push up a pr tomorrow to experiment with setting that env variable in the cibuildwheel environment to see if I can get it to build wheels targeting 10.9.

@mtreinish mtreinish self-assigned this Apr 15, 2020
mtreinish added a commit to mtreinish/retworkx that referenced this issue Apr 15, 2020
In order to maximize compatibility for macOS wheels this commit sets the
MACOSX_DEPLOYMENT_TARGET env variable during the wheel building jobs to
explicity say we're building with compatibility for MacOS 10.9. Then in
order to verify that we're building during CI tests with the same
version this commit also updates the macOS test jobs to set the same
flag so we do not test with a different build than we publish at release
time.

Fixes Qiskit#62
@mtreinish
Copy link
Member

Ok, I've pushed up a PR (#63) to fix this. I also pushed up test commit to manually trigger the macOS wheel builds to test this. Based on the output of the ci job it looks like it's working:

https://dev.azure.com/qiskit-ci/retworkx/_build/results?buildId=11655&view=logs&j=59072c2d-ff9c-5ba9-5217-fae5d67698fb&t=e64845d4-b26a-5b36-9ae2-80aaa975f01a&l=523

If you want to test the wheels built by the job are hosted here: https://dev.azure.com/qiskit-ci/retworkx/_build/results?buildId=11655&view=artifacts&type=publishedArtifacts (there is a download icon that will appear when you hover your mouse over the drop line, the azure pipelines ui leaves something to be desired) if you want to verify that these work on an older macOS version. Once the PR merges I will soon push out a 0.3.4 release to get the updated wheels on pypi.

mtreinish added a commit that referenced this issue Apr 16, 2020
* Revert "Rely on travis for macos wheel builds (#52)"

In an effort to get more reliable and compatible MacOS wheel builds
at release time this commit switches back to using azure pipelines
for the wheel jobs to get a faster and more up to date MacOS image.
This commit reverts the switch back to travis which was done to get
10.13 compatible wheels built by using the older MacOS travis env.
This is the first step, the next commit will start setting the
appropriate compiler flags to set the minimum compat level to an older
MacOS version.

This reverts commit 8cd11d5.

* Explicitly set MACOSX_DEPLOYMENT_TARGET during MacOS jobs

In order to maximize compatibility for macOS wheels this commit sets the
MACOSX_DEPLOYMENT_TARGET env variable during the wheel building jobs to
explicity say we're building with compatibility for MacOS 10.9. Then in
order to verify that we're building during CI tests with the same
version this commit also updates the macOS test jobs to set the same
flag so we do not test with a different build than we publish at release
time.

Fixes #62

* DNM: Test wheel builds

* Revert "DNM: Test wheel builds"

This reverts commit 43fb31e.
@mtreinish
Copy link
Member

Just wanted to leave a note here, the 0.3.4 release is up on pypi now: https://pypi.org/project/retworkx/0.3.4/#files and the macOS wheels were built with a 10.9 target so local compilation should no longer be required to install the package on older versions of macOS.

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 a pull request may close this issue.

2 participants