Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
6d3649f
Add OpenSSL 3.5, build with instead of 3.0
Edward-Knight Sep 1, 2025
e81856b
Bump minimum supported s390x arch-level to z10
Edward-Knight Sep 2, 2025
643516b
Bump NASM version to 2.16.03
Edward-Knight Sep 2, 2025
7edd1aa
Patch OpenSSL 3.5 to hardcode the vlenb CSR address on RISC-V
Edward-Knight Sep 2, 2025
87563b4
Add C++ to cross-compiling Docker images
Edward-Knight Sep 2, 2025
e00d99a
Remove OpenSSL 3.0
Edward-Knight Sep 3, 2025
8774868
macOS CI: Stop setting $APPLE_SDK_PATH (#795)
geofft Sep 17, 2025
aeba083
downloads: Switch NASM and ftp.gnu.org sources to mirrors (#796)
geofft Sep 17, 2025
e414d4c
sqlite: Remove -DSQLITE_ENABLE_FTS3_TOKENIZER and add tests for compi…
geofft Sep 18, 2025
4cec933
Bump CPython to 3.14rc3 (#798)
zanieb Sep 18, 2025
9793ac5
Upgrade OpenSSL to 3.5.3 (#797)
geofft Sep 18, 2025
3811863
windows: Sync SQLite build flags from the UNIX build (#800)
geofft Sep 18, 2025
ceeed39
cpython-unix/build-sqlite.sh: Fix typo in location of comment (#803)
geofft Sep 18, 2025
45586d7
CI: Disable Docker build summaries and artifacts (#802)
geofft Sep 18, 2025
cd5307d
Fix AsyncioDebug section detection on Python 3.14 (#804)
geofft Sep 18, 2025
c6b6bab
Bump OpenSSL 3.5.3 -> 3.5.4 (#807)
geofft Oct 7, 2025
145dc8d
Bump CPython to 3.14.0 (#812)
zsol Oct 7, 2025
8d46b87
Use relative paths in build-details.json (#811)
geofft Oct 7, 2025
1abe862
Bump CPython 3.13 to 3.13.8 (#813)
zanieb Oct 7, 2025
31349d7
Bump stable Python versions: 3.12.12, 3.11.14, 3.10.19 and 3.9.24 (#817)
edgarrmondragon Oct 10, 2025
5cfcffd
Bump to 3.13.9 (#820)
zanieb Oct 14, 2025
a4eb9b3
Add support for Python 3.15 (#819)
zanieb Oct 14, 2025
bd52271
Add missing 3.15 aarch64 targets (#821)
zanieb Oct 14, 2025
5dcb8cc
Use siphash on architectures that support misaligned accesses (#825)
geofft Oct 21, 2025
7b74774
Bump the python group with 13 updates (#808)
dependabot[bot] Oct 27, 2025
0f5e332
Bump the actions group in /.github/workflows with 3 updates (#810)
dependabot[bot] Oct 27, 2025
b73246f
Bump the rust group across 1 directory with 31 updates (#809)
dependabot[bot] Oct 27, 2025
ce3b5ae
Upgrade pip from 25.2 -> 25.3 (#826)
mmangkad Oct 27, 2025
4f27e39
Fix musl detection in Python 3.12 and below (#827)
geofft Oct 28, 2025
615a5d2
Skip sys.implementation._multiarch tests on Windows (#832)
geofft Oct 28, 2025
c7bf8b1
include existing LDFLAGS on macos when building tk (#833)
jjhelmus Oct 29, 2025
d0969cd
Update LLVM toolchains to 21.0.4 (#835)
indygreg Oct 30, 2025
5ac34b4
Build _dbm as a shared module (#838)
geofft Oct 31, 2025
bdabbfb
CPython 3.9.25 (#839)
geofft Oct 31, 2025
651d393
Drop support for EOL Python 3.9 (#845)
hugovk Nov 6, 2025
cdb5ce6
Fix LLVM URL in release script (#840)
geofft Nov 11, 2025
1859bbe
Add optimization flag based on build type (#852)
jjhelmus Nov 12, 2025
652d246
Fix typo (#854)
singiamtel Nov 13, 2025
ddddc08
Upgrade xz from 5.2.12 -> 5.8.1 (#853)
jjhelmus Nov 17, 2025
ad2b817
Do not strip VC redists (#856)
neilmehta24 Nov 19, 2025
4012f5b
Update to CPython 3.15.0a2 (#860)
jjhelmus Nov 19, 2025
4e1ffb6
remove unused build-tix.sh script (#862)
jjhelmus Nov 23, 2025
f98de0c
enable building aarch64-linux targets from macOS (#890)
jjhelmus Nov 25, 2025
642c300
Bump the python group with 7 updates (#842)
dependabot[bot] Dec 1, 2025
6778ea8
test stack size on macOS
jjhelmus Dec 2, 2025
4d17e22
Revert "test stack size on macOS"
jjhelmus Dec 2, 2025
c0b68ec
Drop `patch-apple-cross` on 3.14+ (#887)
zanieb Dec 2, 2025
b6ecbef
Bump the python group with 5 updates (#897)
dependabot[bot] Dec 2, 2025
f7bfc24
Bump the rust group across 1 directory with 16 updates (#898)
dependabot[bot] Dec 2, 2025
6945a61
Bump to 3.14.1 and 3.13.10 (#900)
zanieb Dec 2, 2025
fa176fe
use uv to bootstrap the host system Python environment (#892)
jjhelmus Dec 2, 2025
f4b05df
Futz with the macOS CI target definitions (#902)
zanieb Dec 4, 2025
ef1b25e
Bump to 3.14.2 (#906)
jjhelmus Dec 5, 2025
91c11ac
Use the symlink-resolved location of Python in getpath on 3.14+ (#896)
geofft Dec 5, 2025
06b7216
Bump to 3.13.11 (#908)
jjhelmus Dec 5, 2025
91f343f
Correctly set install_name for macOS libpython (#914)
keith Dec 9, 2025
29c7b9a
BUG: restore tcl/tk patch on python 3.14+ (#915)
jjhelmus Dec 9, 2025
f322ad6
Use latest LLVM for musl builds (#916)
jjhelmus Dec 10, 2025
0d07a8b
Remove multiarch patch (#917)
jjhelmus Dec 10, 2025
d1684b0
limit test-embed patch to Python 3.12 and 3.13 (#918)
jjhelmus Dec 10, 2025
182c038
rename build-uv.py -> build.py (#920)
jjhelmus Dec 11, 2025
5cbc49f
add section on CI labels to CONTRIBUTING.rst (#921)
jjhelmus Dec 15, 2025
2b04093
getpath: Fix /proc/self/maps parsing (#922)
geofft Dec 16, 2025
135c79e
Apply the getpath library name patch to 3.11+ (#924)
geofft Dec 16, 2025
85fdc74
Update to CPython 3.15.0a3 (#927)
jjhelmus Dec 17, 2025
de54d2d
fix list block in contributing (#929)
jjhelmus Dec 19, 2025
cb7ad3c
Merge remote-tracking branch 'upstream/main' into nickvines/sync-upst…
nickvines Jan 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: "3.12"

Expand Down
40 changes: 22 additions & 18 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ jobs:
with:
persist-credentials: false

- name: Install Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
python-version: "3.11"
enable-cache: false

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
Expand All @@ -88,7 +88,7 @@ jobs:

- name: Generate Dockerfiles
run: |
./build-linux.py --make-target empty
./build.py --make-target empty
repo_name=$(echo "${GITHUB_REPOSITORY,,}" | sed 's|\.|_|g')
git_ref_name=$(echo "${GITHUB_REF_NAME,,}" | sed 's|[^a-z0-9_-]|_|g')
echo "REPO_NAME=${repo_name}" >> "${GITHUB_ENV}"
Expand All @@ -99,6 +99,8 @@ jobs:
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
env:
SOURCE_DATE_EPOCH: 0
DOCKER_BUILD_SUMMARY: false
DOCKER_BUILD_RECORD_UPLOAD: false
with:
context: .
file: build/${{ matrix.name }}.Dockerfile
Expand Down Expand Up @@ -148,8 +150,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Set up Python
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4.2.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
enable-cache: false

- name: Get pull request labels
id: get-labels
Expand Down Expand Up @@ -220,10 +224,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Install Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
python-version: "3.11"
enable-cache: false

- name: Download pythonbuild
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
Expand Down Expand Up @@ -263,19 +267,19 @@ jobs:
if: ${{ ! matrix.dry-run }}
run: |
# Do empty target so all generated files are touched.
./build-linux.py --make-target empty
./build.py --make-target empty

# Touch mtimes of all images so they are newer than autogenerated files above.
touch build/image-*

./build-linux.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
./build.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
env:
MATRIX_TARGET_TRIPLE: ${{ matrix.target_triple }}
MATRIX_PYTHON: ${{ matrix.python }}
MATRIX_BUILD_OPTIONS: ${{ matrix.build_options }}

- name: Generate attestations
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
if: ${{ github.ref == 'refs/heads/main' }}
with:
subject-path: dist/*
Expand Down Expand Up @@ -328,10 +332,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Install Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
python-version: "3.11"
enable-cache: false

- name: Download pythonbuild
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
Expand Down Expand Up @@ -371,19 +375,19 @@ jobs:
if: ${{ ! matrix.dry-run }}
run: |
# Do empty target so all generated files are touched.
./build-linux.py --make-target empty
./build.py --make-target empty

# Touch mtimes of all images so they are newer than autogenerated files above.
touch build/image-*

./build-linux.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
./build.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
env:
MATRIX_TARGET_TRIPLE: ${{ matrix.target_triple }}
MATRIX_PYTHON: ${{ matrix.python }}
MATRIX_BUILD_OPTIONS: ${{ matrix.build_options }}

- name: Generate attestations
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
if: ${{ github.ref == 'refs/heads/main' }}
with:
subject-path: dist/*
Expand Down
33 changes: 16 additions & 17 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Set up Python
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4.2.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
enable-cache: false

- name: Get pull request labels
id: get-labels
Expand Down Expand Up @@ -128,10 +130,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Install Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
python-version: "3.11"
enable-cache: false

- name: Download pythonbuild
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
Expand All @@ -142,23 +144,14 @@ jobs:
- name: Build
if: ${{ ! matrix.dry-run }}
run: |
if [ "${MATRIX_TARGET_TRIPLE}" = "aarch64-apple-darwin" ]; then
export APPLE_SDK_PATH=/Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk
elif [ "${MATRIX_TARGET_TRIPLE}" = "x86_64-apple-darwin" ]; then
export APPLE_SDK_PATH=/Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk
else
echo "unhandled target triple: ${MATRIX_TARGET_TRIPLE}"
exit 1
fi

./build-macos.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
./build.py --target-triple ${MATRIX_TARGET_TRIPLE} --python cpython-${MATRIX_PYTHON} --options ${MATRIX_BUILD_OPTIONS}
env:
MATRIX_TARGET_TRIPLE: ${{ matrix.target_triple }}
MATRIX_PYTHON: ${{ matrix.python }}
MATRIX_BUILD_OPTIONS: ${{ matrix.build_options }}

- name: Generate attestations
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
if: ${{ github.ref == 'refs/heads/main' }}
with:
subject-path: dist/*
Expand All @@ -184,4 +177,10 @@ jobs:
run: |
chmod +x build/pythonbuild

build/pythonbuild validate-distribution --macos-sdks-path macosx-sdks --run dist/*.tar.zst
if [ "${MATRIX_RUN}" == "true" ]; then
EXTRA_ARGS="--run"
fi

build/pythonbuild validate-distribution --macos-sdks-path macosx-sdks ${EXTRA_ARGS} dist/*.tar.zst
env:
MATRIX_RUN: ${{ matrix.run }}
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:
GITHUB_EVENT_INPUTS_SHA: ${{ github.event.inputs.sha }}
GITHUB_EVENT_INPUTS_TAG: ${{ github.event.inputs.tag }}
- name: Generate attestations
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
if: ${{ github.event.inputs.dry-run == 'false' }}
with:
subject-path: |
Expand Down
18 changes: 10 additions & 8 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: Set up Python
uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4.2.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
enable-cache: false

- name: Get pull request labels
id: get-labels
Expand Down Expand Up @@ -134,10 +136,10 @@ jobs:
with:
packages: autoconf automake libtool

- name: Install Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
- name: Set up uv
uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # v7.1.4
with:
python-version: "3.12"
enable-cache: false

- name: Download pythonbuild Executable
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
Expand All @@ -148,21 +150,21 @@ jobs:
# don't get compiled properly.
- name: Bootstrap Python environment
run: |
py.exe -3.12 build-windows.py --help
uv run build.py --help

- name: Build
if: ${{ ! matrix.dry-run }}
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\%MATRIX_VCVARS%"
py.exe -3.12 build-windows.py --python cpython-%MATRIX_PYTHON% --sh c:\cygwin\bin\sh.exe --options %MATRIX_BUILD_OPTIONS%
uv run build.py --python cpython-%MATRIX_PYTHON% --sh c:\cygwin\bin\sh.exe --options %MATRIX_BUILD_OPTIONS%
env:
MATRIX_VCVARS: ${{ matrix.vcvars }}
MATRIX_PYTHON: ${{ matrix.python }}
MATRIX_BUILD_OPTIONS: ${{ matrix.build_options }}

- name: Generate attestations
uses: actions/attest-build-provenance@e8998f949152b193b063cb0ec769d69d929409be # v2.4.0
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
if: ${{ github.ref == 'refs/heads/main' }}
with:
subject-path: dist/*
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/zizmor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ jobs:
persist-credentials: false

- name: Run zizmor
uses: zizmorcore/zizmor-action@5ca5fc7a4779c5263a3ffa0e1f693009994446d1 # v0.1.2
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.13
23 changes: 23 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,29 @@ Building distributions
See the [documentation](https://gregoryszorc.com/docs/python-build-standalone/main/building.html)
for instructions on building distributions locally.

CI labels
=========
By default, submitting a pull request triggers a complete build of all
distributions in CI, which can be time-consuming.

To conserve CI resources and reduce build times, you can limit the matrix of
distributions built by applying specific labels to your pull request. Only
distributions matching the specified labels will be built.

The following label prefixes can be used to customize the build matrix:

* `platform`
* `python`
* `build`
* `arch`
* `libc`

To bypass CI entirely for changes that do not affect the build (such as
documentation updates), use the `ci:skip` label.

Please utilize these tags when appropriate for your changes to minimize CI
resource consumption.

Releases
========

Expand Down
Loading
Loading