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

Build custom wheels for each target Python version and OS #479

Open
matthewfeickert opened this issue Jun 15, 2019 · 4 comments
Open

Build custom wheels for each target Python version and OS #479

matthewfeickert opened this issue Jun 15, 2019 · 4 comments
Labels
CI CI systems, GitHub Actions feat/enhancement New feature or request tests pytest

Comments

@matthewfeickert
Copy link
Member

Description

Following up from awkward-array Issue 143, it would be good to test wheel building for every pyhf supported Python version and operating system rather than just the universal wheel we currently produce. @henryiii has done some awesome work on this already for iminuit and azure-wheel-helpers using Azure pipelines. As this moves forward with scikit-hep projects it should be tracked and hopefully painlessly brought into pyhf as well.

@matthewfeickert matthewfeickert added feat/enhancement New feature or request tests pytest CI CI systems, GitHub Actions labels Jun 15, 2019
@henryiii
Copy link
Member

Note: Universal wheels are far superior to binary wheels if you are using pure Python only. You only want non-universal wheels if you have compiled components1, so you don't really ever get to choose which you want. If you want to add a compiled component, then you need to change wheel types.

Binary wheels will never support some systems, like Alpine Linux, Clear Linux, and others.

Footnotes

  1. Or if you have different Python code for different Python versions, but this is very, very rare - it was only there to support the 2to3 script and no-one uses that anymore, it was a bad idea.

@henryiii
Copy link
Member

PS: You can test with each of these systems though, on the universal wheel you make, that's not a bad idea, and maybe what you are referring to.

@kratsg
Copy link
Contributor

kratsg commented Jun 18, 2019

PS: You can test with each of these systems though, on the universal wheel you make, that's not a bad idea, and maybe what you are referring to.

Does this mean that if pyhf itself aims to be pure-python -- but does depend on non-universal-wheeled packages (e.g. tensorflow) -- this is still possible?

@henryiii
Copy link
Member

Yes, of course. A universal wheel requests a dependency just like any other, and pip then decides how to install the package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI CI systems, GitHub Actions feat/enhancement New feature or request tests pytest
Projects
None yet
Development

No branches or pull requests

3 participants