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

Setup build wheels using cibuildwheel for all systems #559

Merged
merged 22 commits into from
May 17, 2022
Merged

Setup build wheels using cibuildwheel for all systems #559

merged 22 commits into from
May 17, 2022

Conversation

Czaki
Copy link
Contributor

@Czaki Czaki commented May 3, 2022

Building wheel on Linux for manylinux and pypy. Configuration for muslinux is prepared, but not enabled because lack of OpenCL bindings in the stable channels (if there is a need for such wheels then I think it will be possible to build it from the source). Tests on Linux is disabled because of a lack of OpenCL compatible device on the host system.

For macOS, pypy wheels are disabled because of the problem with building NumPy from the source

For windows, only 64 bits wheels are built because 32 bits build wheels fail with linker errors. Tests are disabled, One needs to test weels manually on the device with openCL.

Building wheel procedure for MacOS and Windows is based on conda-forge one.

close #488

setup.py Show resolved Hide resolved
test/test_wrapper.py Show resolved Hide resolved
test/test_wrapper.py Outdated Show resolved Hide resolved
Copy link
Owner

@inducer inducer left a comment

Choose a reason for hiding this comment

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

Thanks for working on this, much appreciated! Could you make it so that this gets rid of the existing wheel build infrastructure? (entry in ci.yml plus associated scripts)

test/test_wrapper.py Outdated Show resolved Hide resolved
test/test_wrapper.py Outdated Show resolved Hide resolved
@haesleinhuepf
Copy link
Contributor

Hi @Czaki, hi @inducer ,

I've just tested if the wheels in this artifact install and work on one of my Windows machines. I testet python 3.9 and 3.10:
pyopencl-2022.1.3-cp39-cp39-win_amd64.whl
pyopencl-2022.1.3-cp310-cp310-win_amd64.whl

Both work nicely. I'm so happy to see this happening here! It's a huge relief. Thanks so much for working on this!

Best,
Robert

pyproject.toml Show resolved Hide resolved
setup.py Outdated Show resolved Hide resolved
@Czaki Czaki marked this pull request as ready for review May 4, 2022 17:26
Copy link
Owner

@inducer inducer left a comment

Choose a reason for hiding this comment

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

Thanks for working on this! Just a few notes below, then this should be ready to go.

.github/workflows/github-deploy.yml Outdated Show resolved Hide resolved
setup.py Outdated Show resolved Hide resolved
scripts/build-ocl-windows.sh Outdated Show resolved Hide resolved
pyproject.toml Outdated Show resolved Hide resolved
pyproject.toml Show resolved Hide resolved
scripts/build-ocl-windows.sh Outdated Show resolved Hide resolved
scripts/build-ocl-macos.sh Show resolved Hide resolved
Copy link
Owner

@inducer inducer left a comment

Choose a reason for hiding this comment

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

Thanks for seeing this through! Assuming we can get the CI to pass, I'd be OK with merging this. @isuruf, any remaining concerns?

scripts/build-ocl.sh Outdated Show resolved Hide resolved
scripts/build-ocl.sh Outdated Show resolved Hide resolved
Co-authored-by: Andreas Klöckner <[email protected]>
@inducer
Copy link
Owner

inducer commented May 17, 2022

Tried a wheel, seems to work for me. I think this is a better way than what we had, with far better platform coverage. So let's go for it. Thanks @Czaki for working on this!

@inducer inducer merged commit 04143b9 into inducer:main May 17, 2022
@inducer
Copy link
Owner

inducer commented May 17, 2022

Quite possibly I should roll a release to try all this out, so let's do that. :)

@inducer
Copy link
Owner

inducer commented May 17, 2022

@inducer
Copy link
Owner

inducer commented May 17, 2022

Looks like that worked:

https://pypi.org/project/pyopencl/2022.1.4/#files

🎉 Thanks again!

@Czaki Czaki deleted the build_wheel branch May 18, 2022 08:40
@haesleinhuepf
Copy link
Contributor

I also tried this morning and I'm super happy that this works now. Thanks everyone! 🥳

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.

ci.feat(wheel & pypi): use cibuildwheel
4 participants