Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a186551
Add regression tests for MemoryDenyWriteExecute=true (#1071)
geofft Apr 16, 2026
7c9f6cf
Run a smaller subset of targets on pull requests by default (#1075)
zanieb Apr 23, 2026
8887794
Bump pip from 26.0.1 -> 26.1 (#1109)
mmangkad Apr 27, 2026
90a9247
statically link libpython on macOS (#1105)
jjhelmus Apr 28, 2026
7baf76f
remove tcl/tk translations and demo files from distributions (#1104)
jjhelmus Apr 29, 2026
a21e242
Fix expansion of ci targets when labels are outside the default set (…
zanieb Apr 30, 2026
b8a0627
Force patchelf to use 64KB page size on loongarch64 (#1107)
wojiushixiaobai May 1, 2026
f6ed9c1
Bump 3.14 to 3.14.5rc1 (#1119)
zanieb May 2, 2026
20f6240
Update the target for 3.14rc1 (#1120)
zanieb May 4, 2026
1e42e61
Bump pip from 26.1 -> 26.1.1 (#1121)
mmangkad May 6, 2026
6888ae4
CPython 3.15.0a8 -> 3.15.0b1 (#1123)
jjhelmus May 8, 2026
f0ae464
Bump 3.14 to 3.14.5 (#1125)
jjhelmus May 10, 2026
96a589a
cross compile riscv64 with LLVM toolchain and sysroot (#1116)
jjhelmus May 11, 2026
6905b66
Build OpenSSL with no-uplink for Python 3.12+ (#1132)
jjhelmus May 21, 2026
f276b10
include missing vm_sockets.h for socket.AF_VSOCK (#1133)
jjhelmus May 22, 2026
79a5e9a
Bump pip from 26.1.1 -> 26.1.2 (#1135)
mmangkad Jun 2, 2026
545a2e2
Bump 3.15.0 version (#1136)
jjhelmus Jun 2, 2026
9150a58
sqlite 3.50.4 -> 3.53.1 (#1137)
jjhelmus Jun 2, 2026
7eaec0d
expat 2.6.3 -> 2.8.1 (#1143)
jjhelmus Jun 9, 2026
36488ea
Bump OpenSSL 3.5.6 -> 3.5.7 (#1144)
geofft Jun 10, 2026
97d71a8
Bump Python 3.13 and 3.14 (#1146)
jjhelmus Jun 10, 2026
a6b8a1c
Cherry-pick an improved DER parser in _ssl.c from 3.12 onto 3.10 and …
geofft Jun 10, 2026
5fc3223
weakref is not included in test[limited]api in 3.15 (#1151)
jjhelmus Jun 11, 2026
f1d7b92
Revert "cross compile riscv64 with LLVM toolchain and sysroot (#1116)…
jjhelmus Jun 11, 2026
0c76069
Merge upstream tag 20260610 (conflicts — see PR)
github-actions[bot] Jun 12, 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
1 change: 1 addition & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ jobs:
--platform linux \
--labels "${STEPS_GET_LABELS_OUTPUTS_LABELS}" \
--max-shards 2 \
--event ${{ github.event_name }} \
${{ (steps.check-pythonbuild.outputs.changed == 'true' || github.ref == 'refs/heads/main') && '--force-crate-build' || '' }} \
--free-runners \
> matrix.json
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,11 @@ jobs:
- name: Generate build matrix
id: set-matrix
run: |
<<<<<<< HEAD
uv run ci-matrix.py --platform darwin --labels "${STEPS_GET_LABELS_OUTPUTS_LABELS}" ${{ (steps.check-pythonbuild.outputs.changed == 'true' || github.ref == 'refs/heads/main') && '--force-crate-build' || '' }} --free-runners > matrix.json
=======
uv run ci-matrix.py --platform darwin --labels "${STEPS_GET_LABELS_OUTPUTS_LABELS}" --event ${{ github.event_name }} ${{ (steps.check-pythonbuild.outputs.changed == 'true' || github.ref == 'refs/heads/main') && '--force-crate-build' || '' }} > matrix.json
>>>>>>> refs/tags/20260610

# Extract python-build matrix
echo "matrix=$(jq -c '."python-build"' matrix.json)" >> $GITHUB_OUTPUT
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,11 @@ jobs:
- name: Generate build matrix
id: set-matrix
run: |
<<<<<<< HEAD
uv run ci-matrix.py --platform windows --labels "${STEPS_GET_LABELS_OUTPUTS_LABELS}" ${{ (steps.check-pythonbuild.outputs.changed == 'true' || github.ref == 'refs/heads/main') && '--force-crate-build' || '' }} --free-runners > matrix.json
=======
uv run ci-matrix.py --platform windows --labels "${STEPS_GET_LABELS_OUTPUTS_LABELS}" --event ${{ github.event_name }} ${{ (steps.check-pythonbuild.outputs.changed == 'true' || github.ref == 'refs/heads/main') && '--force-crate-build' || '' }} > matrix.json
>>>>>>> refs/tags/20260610

# Extract python-build matrix
echo "matrix=$(jq -c '."python-build"' matrix.json)" >> $GITHUB_OUTPUT
Expand Down
47 changes: 30 additions & 17 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,41 @@ 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.
Pull request labels
===================
By default, pull requests build a small subset of targets defined in
``ci-defaults.yaml`` under ``pull_request``. Pushes to ``main`` build the full
matrix from ``ci-targets.yaml``.

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.
Pull request labels can be used to change what CI builds:

The following label prefixes can be used to customize the build matrix:
* ``platform:<value>`` filters the selected targets by platform.
* ``arch:<value>`` filters the selected targets by architecture.
* ``libc:<value>`` filters the selected targets by libc.
* ``python:<value>`` filters the selected Python versions.
* ``build:<value>`` filters the selected build options by component.

* `platform`
* `python`
* `build`
* `arch`
* `libc`
The ``:all`` labels expand only their own dimension:

To bypass CI entirely for changes that do not affect the build (such as
documentation updates), use the `ci:skip` label.
* ``platform:all`` expands the selected platforms.
* ``arch:all`` expands the selected architectures.
* ``libc:all`` expands the selected libc variants.
* ``python:all`` expands the selected Python versions.
* ``build:all`` expands the selected build options.

Please utilize these tags when appropriate for your changes to minimize CI
resource consumption.
Use ``ci:all-targets`` to build the full matrix from ``ci-targets.yaml``.

Examples:

* ``platform:linux`` builds only the Linux targets from ``ci-defaults.yaml``.
* ``python:3.13`` builds the default targets with Python 3.13.
* ``build:pgo`` builds the selected targets whose build options include ``pgo``.
* ``platform:linux,arch:all,libc:all,python:all,build:all`` builds the full
Linux matrix.

To bypass CI entirely for changes that do not affect the build, use the
``ci:skip`` label. The ``documentation`` label is treated the same way. To run
a dry-run build matrix, use ``ci:dry-run``.

Releases
========
Expand Down
28 changes: 28 additions & 0 deletions ci-defaults.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Describes the default targets that CI will build for different events.

pull_request:
python_version: "3.14"

targets:
x86_64-pc-windows-msvc:
build_options:
- pgo

aarch64-apple-darwin:
build_options:
- pgo+lto

x86_64-unknown-linux-gnu:
build_options:
- pgo+lto
- freethreaded+pgo+lto

x86_64-unknown-linux-musl:
build_options:
- lto
- lto+static
- freethreaded+lto

armv7-unknown-linux-gnueabihf:
build_options:
- lto
Loading
Loading