Skip to content

Commit 4ef31c0

Browse files
committed
build: adopt manylinux_2_28 on 3.14
This is only needed for ppc64le, which breaks when we introduce cffi 2.0 for free-threaded support (it appears the pre-built 2.0.0b wheels have an glibc 2.22 symbol - unsure if this is a bug). But, `manylinux2014` is getting long in the tooth. I'm not convinced we need to provide binaries that work on distros from 2013. Especially for a Python version released in 2025. So let's just bump the ABI on all 3.14 wheels.
1 parent ea3c086 commit 4ef31c0

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

.github/workflows/wheel.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- 'musllinux'
2929
image:
3030
- 'manylinux2014'
31+
- 'manylinux_2_28'
3132
- 'musllinux_1_1'
3233
- 'musllinux_1_2'
3334
exclude:
@@ -38,13 +39,28 @@ jobs:
3839
image: 'musllinux_1_2'
3940
- abi: 'musllinux'
4041
image: 'manylinux2014'
42+
- abi: 'musllinux'
43+
image: 'manylinux_2_28'
4144
# Remove some older ABIs that don't need to exist.
4245
- arch: 'i686'
4346
image: 'musllinux_1_1'
4447
- arch: 'ppc64le'
4548
image: 'musllinux_1_1'
4649
- arch: 's390x'
4750
image: 'musllinux_1_1'
51+
# Switch to manylinux_2_28 on 3.14+.
52+
- py: 'cp39'
53+
image: 'manylinux_2_28'
54+
- py: 'cp310'
55+
image: 'manylinux_2_28'
56+
- py: 'cp311'
57+
image: 'manylinux_2_28'
58+
- py: 'cp312'
59+
image: 'manylinux_2_28'
60+
- py: 'cp313'
61+
image: 'manylinux_2_28'
62+
- py: 'cp314'
63+
image: 'manylinux2014'
4864
# Drop support for musllinux_1_1 on 3.14+
4965
- py: 'cp314'
5066
image: 'musllinux_1_1'

docs/news.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ Version History
3535
to figure out how to thread config settings into ``setup.py`` invocations.
3636
(`--build-option`` is sent to the ``build_wheel`` command but not the
3737
``build_editable`` command.)
38+
* Python 3.14 wheels are now built with ``manylinux_2_28`` (versus
39+
``manylinux2014``) for older Python versions. This may raise the minimum
40+
glibc version, effectively dropping support for Debian 8 and 9, Ubuntu
41+
13.10 through 18.04, Fedora 19 to 28, and RHEL/Centos 7. However, in
42+
practice most platforms don't container newer glibc symbols and are still
43+
ABI compatible with ``manylinux2014`` and glibc 2.17.
3844

3945
0.24.0 (released 2025-08-17)
4046
============================

0 commit comments

Comments
 (0)