atcollab / at

Accelerator Toolbox
Apache License 2.0
48 stars 31 forks source link

Support of python 3.12, 64-bit wheels only #704

Closed lfarv closed 6 months ago

lfarv commented 7 months ago

python 3.12 is officially released, so it's now included in tests and in release builds.

Numpy does not provide 32-bit wheels (binary builds) for recent versions. It's therefore impossible to build 32-bit wheels for PyAT starting with python 3.12. We still provide 32-bit Windows and Linux builds for the previous python versions. But we may consider removing completely 32-bit builds in the future (building from source is still possible if needed).

MJGaughran commented 7 months ago

In #659 we agreed to keep Ubuntu 20, but I think I was being overly conservative due to my lack of experience with these builds.

Could you please clarify the full names for the built manylinux wheels, using this branch?

lfarv commented 7 months ago

Hello @MJGaughran. From what I could understand, the choice of the GitHub runner has no influence on the generated wheels: they are built in Docker containers, based on 2 different Linux distributions. This depends on the tags given to cibuildwheel. These tags are in the form {python_tag}-{platform_tag}.

The python tag is obvious: cp38 -> cp for CPython followed by the version number,

The platform tag for linux has 2 flavours corresponding to two distributions. manylinux* for distributions based on "glibc", musllinux* for distributions based on "musl". Each runs in a Docker container based on the corresponding Linux distribution. So the distribution used be the GitHub runner itself has no influence.

This is what I understand at the moment. I tested the wheel generation, it's OK, but I cannot install and run them all…

Concerning the Linux GitHub runner, all we ask it is to run python3.9 and run cibuildwheel. Today, I think Ubuntu20.04 is still able to do that. But we'll have to move at some point. New wheels will be generated on the next PyAT release, in some time from now (we just released 0.5). But in the mean time, you can explicit ask for wheel generation by triggering manually the "Build and upload wheels and sdist" workflow, and have a look.

What's you advice about the distribution of 32-bit wheels?

lfarv commented 6 months ago

Is there still any question about this one?

MJGaughran commented 6 months ago

Hi @lfarv, sorry for not getting back to you. I can see from the built wheels that it is still compatible with the same GLIBC versions as before.

I'm not sure what I can say about 32-bit wheels other than that it is probably sensible to drop them if they become annoying to maintain.

lfarv commented 6 months ago

@MJGaughran : so we keep 32-bit wheels as the are, that is for python < 3.12. For now, it's harmless.