Skip to content

Commit c40ef4e

Browse files
committed
DOC: Justify exclusion of 3.12 and 3.13 build
Minimizing the explicit build list greatly reduces the CI burdens for testing resources. Python 3.12 and 3.13 aim to maintain ABI compatibility with Python 3.11 through the Stable ABI. Extensions compiled against the Python 3.11 ABI should, in principle, continue to work without recompilation in Python 3.12 and 3.13. However, relying on the Stable ABI doesn't guarantee complete compatibility, as behavioral changes or bug fixes in newer Python versions can still affect extension behavior. It is recommended to rebuild extensions for each major Python version to ensure optimal compatibility and to take advantage of any potential performance improvements.
1 parent 954b23a commit c40ef4e

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

.github/workflows/build-test-package-python.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,18 @@ on:
3434
description: 'JSON-formatted array of Python 3.x minor version wheel targets'
3535
required: false
3636
type: string
37+
# Do not build explicit python 3.12 packages. The 3.11 packages support >= 3.11.
38+
# Python 3.12 and 3.13 aim to maintain ABI compatibility with Python 3.11 through the Stable ABI.
3739
default: '["9","10","11"]'
3840
manylinux-platforms:
3941
description: 'JSON-formatted array of "<manylinux-image>-<arch>" specializations'
4042
required: false
4143
type: string
44+
# Select configurations from https://github.com/pypa/manylinux
45+
# "_2_28-x86_64" -- most commonly used platform for developers (largest use case)
46+
# "_2_28-aarch64" -- developers with aarch64 likely use quite modern os
47+
# "2014-x86_64" -- fallback packages for deployments to older OS's (i.e. computational cluster environments)
48+
# 2014-x86_64 Wheels are built on CentOS 7 which will reach End of Life (EOL) on June 30th, 2024.
4249
default: '["_2_28-x64","2014-x64","_2_28-aarch64"]'
4350
macosx-deployment-target:
4451
description: 'A string to provide as MACOSX_DEPLOYMENT_TARGET, e.g. "10.15". If left empty (default), the per-architecture default will be used.'

0 commit comments

Comments
 (0)