Comments (7)
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).
from cibuildwheel.
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).
from cibuildwheel.
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.
from cibuildwheel.
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
from cibuildwheel.
a great reference here is @mayeut's manylinux timeline
from cibuildwheel.
As @joerick said, it's likely just a waste of resources to change the default conditionally on the python version and, users can already do that if they want(/need) to using overrides.
With the current stats for non-EOL python versions, I'd say a good time to change the default could be after AmazonLinux 2 EOL (2025-06-30, I think that's most of GLIBC 2.26 downloads) or Python 3.9 EOL (2025-10-31).
from cibuildwheel.
I think we can already safely go to 2.26 as the new default.
The fact that 2.17 (==2014) is so much used, is not because target systems don't support better, it's simply because it's the current default.
from cibuildwheel.
Related Issues (20)
- delocate.libsana.DelocationError: Failed to find any binary with the required architecture: 'arm64' HOT 5
- conda package HOT 3
- [feat] uv support HOT 8
- ModuleNotFoundError: No module named 'Cython' HOT 13
- `cibuildwheel` not finding the `conan` executable HOT 5
- Feature request: retry after pip error due to network issue
- extra emtpy `package.libs` directory included in wheel HOT 1
- Question: Universal2 wheel with binary extension HOT 8
- Macos-14 builds fail if output_dir does not already exist AND testing is enabled HOT 3
- Pyodide: test packages may be installed off-`sys.path` HOT 9
- Min macOS version
- Split `utils.py` into multiple coherent modules HOT 5
- [BUG] Linux builds do not respect `.dockerignore`
- cibuildwheel GitHub action fails due to duplicate skbuild build directory on Windows ARM64 build HOT 7
- Remove build specific environment variables from the test environment HOT 2
- Update tag on new minor version
- windows-latest MSVC compiler crashes HOT 3
- build[uv] uses wrong Python when testing on Windows HOT 10
- Pyodide builds: better support the use of Node.js-based script runners in `CIBW_TEST_COMMAND` HOT 1
- Issue with file permissions in tests on Linux GHA build
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cibuildwheel.