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

Update default image away from manylinux2014 #1772

Open
dralley opened this issue Mar 1, 2024 · 5 comments
Open

Update default image away from manylinux2014 #1772

dralley opened this issue Mar 1, 2024 · 5 comments

Comments

@dralley
Copy link

dralley commented Mar 1, 2024

Description

CentOS 7 (on which manylinux2014 is based) goes end-of-life in only a few months (June) - as such it's probably a good idea to look for a new default base image. Almost certainly manylinux_2_28.

Build log

No response

CI config

No response

@dralley
Copy link
Author

dralley commented Mar 1, 2024

And also, although this is a separate issue, decide on a timeline for dropping support for manylinux2014 from other ecosystem tools (probably not soon, but still, dates should be decided and communicated in advance).

@henryiii
Copy link
Contributor

henryiii commented Mar 1, 2024

FYI, manylinux1 and manylinux2010 were supported well past CentOS EoL, in fact manylinux1 is still receiving automated updates and is still supported in cibuildwheel (CentOS 5). 20% of systems cannot support manylinux_2_28 (https://mayeut.github.io/manylinux-timeline/), based solely on the GLIBC version (you also need a recent pip version, which might limit it further). 70% of projects still distribute manylinux2014 wheels.

So while this might change, I don't think it's likely to until after the EoL deadline. (That might help it start to change).

@EwoutH
Copy link

EwoutH commented Mar 13, 2024

We could also do it conditionally, based on Python version. So for example, practically all Python 3.12 consumers support glibc 2.31 or higher. Almost all Python 3.11 consumers support 2.28 or higher.

So you could end up with something like:

  • Python 3.6-3.9: Default to manylinux_2_17 (== manylinux2014)
  • Python 3.10: Default to manylinux_2_26
  • Python 3.11: Default to manylinux_2_28
  • Python 3.12: Default to manylinux_2_31

Of course this needs to be properly announced, and maybe some policy for instated to update those numbers.

@joerick
Copy link
Contributor

joerick commented Mar 13, 2024

Hmm..! Nice idea, downside would be that it is a bit wasteful in time and bandwidth, as a default. Much of the time of a build is downloading the container, plus, some users do heavy stuff in before-all, which would be done many times for such a setup. Plus, most users don't really need the newer standards - manylinux2014/2010/1 are by far the most popular options today. https://sourcegraph.com/search?q=context:global+%28CIBW_%29%3FMANYLINUX%5B_-%5DX86_64%5B-_%5DIMAGE&patternType=regexp&sm=0

@joerick
Copy link
Contributor

joerick commented Mar 13, 2024

a great reference here is @mayeut's manylinux timeline

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

No branches or pull requests

4 participants