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

Adding cibuildwheel workflow to build and publish wheels #361

Merged
merged 39 commits into from
Jan 29, 2024

Conversation

omar-h-omar
Copy link
Contributor

@patrikhuber Here's a complete workflow. It builds wheels for all systems and supports all python versions. The only exceptions are Pypy and i686 as those are not fully supported by numpy. The following workflow will run a simple python test after building a wheel to confirm that it works as expected. It will also publish wheels to PyPi. As of now it is triggered by pushes to master but let me know if you'd want it to be enabled for all branches.

@omar-h-omar
Copy link
Contributor Author

@patrikhuber
Copy link
Owner

Hi @omar-h-omar,

Thank you very much, that is all really amazing! I also gave this a try and tested it on https://test.pypi.org/, just so I'll know how to configure it, and it all worked.

Just a couple small questions:

CIBW_TEST_SKIP: "*-macosx_arm64 *-macosx_universal2:arm64"

I think this means that the tests are skipped on these two platforms, but I think we are building the wheels for them (?). What's the reason for skipping these?

And, you mentioned in your email that the test doesn't work yet for Python 3.12 because NumPy wasn't available yet, and I think you've then disabled Python 3.12? In my latest run, it looks like it did build and test the wheels on Python 3.12 successfully: https://github.com/patrikhuber/eos-testpypi/actions/runs/6517348994. As Python 3.12 final officially came out a couple weeks ago, this is probably all just automatically resolved now, correct?

I'll merge this in a moment - I think it's all good to go!

@omar-h-omar
Copy link
Contributor Author

Hi @patrikhuber,

It's great to see this working!! I really think it would help eos a lot.

So the reason for skipping some tests is because cibuildwheel currently doesn't support testing arm64 macos wheels on github action runners. Thus, I've added the skip to avoid any warnings in the build logs. See point number 2 below:

Screenshot 2023-10-15 at 4 32 16 pm

As for Python 3.12, I think the email I sent was before the official release. I had forgotten to mention that the issue was resolved since then. The current build does support 3.12 like you saw.

Yeah I think we should good to go with this PR :))

@patrikhuber
Copy link
Owner

Hi @omar-h-omar,

Sorry I haven't gotten back to this - I think I tested it all back in Oct/Nov but then didn't actually do the final merge / setup. Let's merge this now, fingers crossed that it still works! (I don't see why not, but you never know.)

@patrikhuber
Copy link
Owner

Hi @omar-h-omar, just wanted to let you know I've released eos v1.5.0 yesterday, and the cibuildwheel workflow worked - including uploading all the wheels to pypi for the tagged release! https://pypi.org/project/eos-py/1.5.0/#files

I've tested one of the binary wheels on Windows and one on Linux and they both worked. For macOS, I think it built universal, Intel, and ARM64 wheels, and I think we can assume that they work too.

Thank you again for this great contribution!

@omar-h-omar
Copy link
Contributor Author

omar-h-omar commented Dec 21, 2024 via email

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