Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
dd3a87d
gh-127303: Add docs for token.EXACT_TOKEN_TYPES (#127304)
lubaskinc0de Nov 29, 2024
762c603
gh-126881: fix finalization of dtoa state (#126904)
kumaraditya303 Nov 29, 2024
9949091
gh-127341: Argument Clinic: fix compiler warnings for getters with do…
ZeroIntensity Nov 29, 2024
bfabf96
gh-127258: Fix asyncio test_staggered_race_with_eager_tasks() (#127358)
vstinner Nov 29, 2024
322b486
gh-126024: optimize UTF-8 decoder for short non-ASCII string (#126025)
methane Nov 29, 2024
3afb639
fix param type in PyObject_HasAttrWithError (docs) (#127403)
biggus-developerus Nov 29, 2024
b14fdad
gh-127208: Reject null character in _imp.create_dynamic() (#127400)
vstinner Nov 29, 2024
45c5cba
gh-127316: fix incorrect assertion in setting `__class__` in free-thr…
kumaraditya303 Nov 29, 2024
15d6506
Link to correct class methods in asyncio primitives docs (#127270)
ollanta Nov 29, 2024
38264a0
GH-127381: pathlib ABCs: remove `PathBase.lstat()` (#127382)
barneygale Nov 29, 2024
49f15d8
gh-119786: improve internal docs on `co_linetable` (#123198)
picnixz Nov 30, 2024
7043bbd
gh-127417: fix UTF-8 decoder optimization on AIX (#127433)
methane Nov 30, 2024
33ce8dc
Docs: Fix incorrect indents in `c-api/type.rst` (#127449)
Nov 30, 2024
4e0a4ca
summarize: Fix typo in stats (#127450)
alonme Nov 30, 2024
328187c
GH-127381: pathlib ABCs: remove `PathBase.cwd()` and `home()` (#127427)
barneygale Nov 30, 2024
46bfd26
gh-127165: Disallow embedded NULL characters in `_interpreters` (#127…
ZeroIntensity Dec 1, 2024
11c0109
Add the missing `f` on an f-string error message in multiprocessing. …
gpshead Dec 1, 2024
a880358
gh-127356: Fix prepend doctrees directory for gettext target (#127357)
rffontenelle Dec 1, 2024
1bc4f07
gh-127321: Avoid stopping at an opcode without an associated line num…
gaogaotiantian Dec 1, 2024
04673d2
gh-119786: cleanup internal docs and fix internal links (#127485)
picnixz Dec 1, 2024
7ea523f
gh-126899: Add `**kw` to `tkinter.Misc.after` and `tkinter.Misc.after…
Xiaokang2022 Dec 1, 2024
e271340
gh-115999: Add partial free-thread specialization for BINARY_SUBSCR (…
corona10 Dec 2, 2024
2950bc5
GH-127429: fix sysconfig data generation on cross-builds (#127430)
FFY00 Dec 2, 2024
1f8267b
gh-127443: Fix some entries in `Doc/data/refcounts.dat` (#127451)
picnixz Dec 2, 2024
2a373da
add missing gc_collect() calls in sqlite3 tests (#127446)
cfbolz Dec 2, 2024
a8dd821
GH-126491: GC: Mark objects reachable from roots before doing cycle c…
markshannon Dec 2, 2024
bf21e21
Fix Unicode encode_wstr_utf8() (#127420)
vstinner Dec 2, 2024
c112de1
gh-126890: Restore stripped `ssl` docstrings (GH-127281)
ZeroIntensity Dec 2, 2024
930ba0c
gh-126618: fix repr(itertools.count(sys.maxsize)) (#127048)
skirpichev Dec 2, 2024
31f16e4
gh-109523: Raise a BlockingIOError if reading text from a non-blockin…
giosiragusa Dec 2, 2024
3e81225
gh-101100: Fix Sphinx warnings about list methods (#127054)
Dec 2, 2024
7c2bd9b
gh-115999: Use light-weight lock for UNPACK_SEQUENCE_LIST (gh-127514)
corona10 Dec 2, 2024
c46acd3
gh-126876: Fix test_socket.testLargeTimeout() for missing _testcapi (…
vstinner Dec 2, 2024
c430376
gh-127411: Fix invalid conversion of load of TLBC array when compiled…
mpage Dec 2, 2024
c7dec02
gh-127521: Mark list as "shared" before resizing if necessary (#127524)
colesbury Dec 2, 2024
edefb86
gh-127518: Fix pystats build after #127169 (#127526)
mdboom Dec 2, 2024
bfb0788
gh-127111: Emscripten Make web example work again (#127113)
hoodmane Dec 2, 2024
dffb909
Speed-up lazy heapq import in collections (gh-127538)
rhettinger Dec 3, 2024
8c3fd1f
docs(logging): fix phrasing from "operation on" to "operate on" (#127…
geochip Dec 3, 2024
35d37d6
gh-127253: Note that Stable ABI is about ABI stability (GH-127254)
encukou Dec 3, 2024
84ff131
gh-126585: Add EHWPOISON error code (#126586)
rruuaanng Dec 3, 2024
979bf24
gh-117657: TSAN Fix races in `PyMember_Get` and `PyMember_Set` for C …
dpdani Dec 3, 2024
412e11f
gh-127255: Make `CopyComPointer` public and add to `ctypes` doc. (GH-…
junkmd Dec 3, 2024
8ba9f5b
gh-127347: Document `traceback.print_list` (#127348)
tomasr8 Dec 3, 2024
0cb5222
gh-115999: Specialize `LOAD_SUPER_ATTR` in free-threaded builds (gh-1…
nascheme Dec 3, 2024
13b68e1
gh-127421: Fix race in test_start_new_thread_failed (#127549)
mpage Dec 3, 2024
276cd66
gh-115999: Add free-threaded specialization for `SEND` (gh-127426)
nascheme Dec 3, 2024
fc5a0dc
gh-127271: Replace use of PyCell_GET/SET (gh-127272)
nascheme Dec 3, 2024
dabcecf
gh-115999: Enable specialization of `CALL` instructions in free-threa…
mpage Dec 3, 2024
12397a5
gh-112192: Increase the trace module coverage precision to one decima…
rruuaanng Dec 3, 2024
0f91078
gh-127146: Resolve some minor problems in Emscripten tests (#127565)
hoodmane Dec 4, 2024
7f882c8
Itertool recipe additions (gh-127483)
rhettinger Dec 4, 2024
6fc6436
gh-127572: Fix `test_structmembers` initialization (GH-127577)
colesbury Dec 4, 2024
ad9d059
gh-126524: Run `regen-unicodedata` as a part of our CI (#126682)
sobolevn Dec 4, 2024
bc0f2e9
gh-123378: Ensure results of `PyUnicode*Error_Get{Start,End}` are cla…
picnixz Dec 4, 2024
6bc3e83
gh-127481: Add `EPOLLWAKEUP` to the `select` module (GH-127482)
rruuaanng Dec 4, 2024
51cfa56
gh-127552: Remove comment questioning 4-digit restriction for ‘Y’ in …
bombs-kim Dec 4, 2024
e51da64
gh-127536: Add missing locks in listobject.c (GH-127580)
colesbury Dec 4, 2024
7c5a6f6
Enable native AArch64 Ubuntu CI jobs (#127584)
diegorusso Dec 4, 2024
94b8f8b
GH-126795: Increase the JIT side-exit threshold from 64 to 4096 (GH-1…
brandtbucher Dec 4, 2024
2f1cee8
gh-127111: Apply prettier formatter to Emscripten web example (#127551)
hoodmane Dec 5, 2024
43634fc
gh-127146: Emscripten: Skip segfaults in test suite (#127151)
hoodmane Dec 5, 2024
87faf0a
gh-127503: Emscripten make Python.sh function as proper Python CLI (#…
hoodmane Dec 5, 2024
6cf7794
gh-127434: Fix iOS `xcrun --sdk` clang/ar scripts to allow arguments …
FeodorFitsner Dec 5, 2024
1ef6e8c
gh-119182: Complete PyUnicodeWriter documentation (#127607)
vstinner Dec 5, 2024
fcbe6ec
gh-93312: Include <sys/pidfd.h> to get PIDFD_NONBLOCK (#127593)
vstinner Dec 5, 2024
67b9a53
gh-127413: allow to show specialized bytecode via `dis` CLI (#127414)
picnixz Dec 5, 2024
208b0fb
gh-122431: Disallow negative values in `readline.append_history_file`…
ZeroIntensity Dec 5, 2024
d958d9f
GH-126727: Fix test_era_nl_langinfo with Japanese ERAs on Solaris (GH…
kulikjak Dec 5, 2024
23f2e8f
gh-127221: Add colour to unittest output (#127223)
hugovk Dec 5, 2024
657d0e9
[Docs] GDB howto: Fix block type of a cast example (#127621)
m-aciek Dec 5, 2024
f4f5308
gh-127582: Make object resurrection thread-safe for free threading. (…
colesbury Dec 5, 2024
8b3cccf
GH-125413: Revert addition of `pathlib.Path.scandir()` method (#127377)
barneygale Dec 5, 2024
25eee57
gh-127627: Add `posix._emscripten_debugger` function (#127628)
hoodmane Dec 6, 2024
e991ac8
gh-127655: Ensure `_SelectorSocketTransport.writelines` pauses the pr…
bdraco Dec 6, 2024
8b7c194
gh-120010: Fix invalid (nan+nanj) results in _Py_c_prod() (GH-120287)
skirpichev Dec 6, 2024
023b7d2
GH-126491: Lower heap size limit with faster marking (GH-127519)
markshannon Dec 6, 2024
77a61c0
gh-101100: amend references starting with `!~` in gh-127054 (#127684)
Dec 6, 2024
36c6178
gh-126024: fix UBSan failure in `unicodeobject.c:find_first_nonascii`…
picnixz Dec 6, 2024
a353455
gh-125610: Fix `STORE_ATTR_INSTANCE_VALUE` specialization check (GH-1…
colesbury Dec 6, 2024
12680ec
gh-127314: Don't mention the GIL when calling without a thread state …
ZeroIntensity Dec 6, 2024
67b18a1
gh-59705: Add _thread.set_name() function (#127338)
vstinner Dec 6, 2024
89fa7ec
gh-119786: Add jit.md. Move adaptive.md to a section of interpreter.m…
iritkatriel Dec 6, 2024
e59caf6
Fix typo in `Lib/_android_support.py` (#127699)
StanFromIreland Dec 6, 2024
5b6635f
GH-127381: pathlib ABCs: remove `PathBase.rename()` and `replace()` (…
barneygale Dec 6, 2024
0fc4063
GH-127652: stop using `--wasi preview2` in `wasi.py` (GH-127704)
brettcannon Dec 6, 2024
31c9f3c
GH-127381: pathlib ABCs: remove `PathBase.resolve()` and `absolute()`…
barneygale Dec 6, 2024
72dca6c
gh-119786: fix typo in `InternalDocs/garbage_collector.md` (#127687)
srinivasreddy Dec 7, 2024
27d0d21
Give `poplib.POP3.rpop` a proper docstring (#127370)
StanFromIreland Dec 7, 2024
79b7cab
GH-127090: Fix `urllib.response.addinfourl.url` value for opened `fil…
barneygale Dec 7, 2024
7015485
GH-126789: fix some sysconfig data on late site initializations (#127…
FFY00 Dec 8, 2024
1503fc8
gh-127610: Added validation for more than one var-positional and var-…
ApostolFet Dec 8, 2024
8fa5ece
gh-123378: fix post-merge typos in comments and NEWS (#127739)
picnixz Dec 8, 2024
3b78409
gh-87138: convert SHA-3 object type to heap type (GH-127670)
picnixz Dec 8, 2024
2367759
[doc] Fix typos in `interpreter_definition.md` (#127742)
StanFromIreland Dec 8, 2024
7f8ec52
GH-127381: pathlib ABCs: remove `PathBase.unlink()` and `rmdir()` (#1…
barneygale Dec 8, 2024
a03efb5
gh-127734: improve signature of `urllib.request.HTTPPasswordMgrWithPr…
tungol Dec 8, 2024
be07edf
gh-127111: Emscripten Move link flags from `LDFLAGS_NODIST` to `LINKF…
hoodmane Dec 9, 2024
5876063
gh-127503 Don't propagate native PATH to Emscripten Python (#127633)
hoodmane Dec 9, 2024
d8d12b3
gh-127503: Fix realpath handling in emscripten cli (#127632)
hoodmane Dec 9, 2024
2041a95
gh-126925: Modify how iOS test results are gathered (#127592)
freakboy3742 Dec 9, 2024
5eb7fd4
gh-127732: Add Windows Server 2025 detection to platform module (GH-1…
Wulian233 Dec 9, 2024
e85f2f1
gh-127637: add tests for `dis` command-line interface (#127759)
picnixz Dec 9, 2024
5c89adf
GH-127456: pathlib ABCs: add protocol for path parser (#127494)
barneygale Dec 9, 2024
3b18af9
gh-127629: Add ctypes to the Emscripten build (#127683)
hoodmane Dec 10, 2024
58c7538
gh-125420: implement `Sequence.index` API on `memoryview` objects (#1…
picnixz Dec 10, 2024
3983527
gh-127651: Use __file__ in diagnostics if origin is missing (#127660)
hauntsaninja Dec 10, 2024
2233c30
gh-126775: make linecache.checkcache threadsafe and GC re-entrency sa…
graingert Dec 10, 2024
212448b
gh-127718: Add colour to `test.regrtest` output (#127719)
hugovk Dec 10, 2024
050d59b
add help blurb for "extralargefile" (#127710)
smontanaro Dec 10, 2024
4331832
gh-125420: implement `Sequence.count` API on `memoryview` objects (#1…
picnixz Dec 10, 2024
8dbdbad
gh-101100: Fix sphinx warnings in `whatsnew/3.0.rst` (#127662)
Dec 10, 2024
ae31df3
Add zizmor to pre-commit and fix most findings (#127749)
hugovk Dec 10, 2024
690fe07
gh-126491: Revert "GH-126491: Lower heap size limit with faster marki…
encukou Dec 10, 2024
f4b31ed
gh-127257: ssl: Raise OSError for ERR_LIB_SYS (GH-127361)
encukou Dec 10, 2024
cef0a90
gh-126937: ctypes: fix TypeError when a field's size is >65535 bytes …
Melissa0x1f992 Dec 10, 2024
9af96f4
gh-127563: use `dk_log2_index_bytes=3` in empty dicts (GH-127568)
picnixz Dec 10, 2024
c91ccbe
gh-59705: Set OS thread name when Thread.name is changed (#127702)
vstinner Dec 10, 2024
035f512
Docs: Fix indents in `xmlrpc.client.rst` (#127782)
Dec 10, 2024
5121685
gh-126821: Add versionadded annotation to use_system_logger feature. …
freakboy3742 Dec 10, 2024
12b4f1a
GH-127381: pathlib ABCs: remove `PathBase.samefile()` and rarer `is_*…
barneygale Dec 11, 2024
db9bea0
gh-127740: For odd-length input to bytes.fromhex(...) change the erro…
srinivasreddy Dec 11, 2024
2cdeb61
Add `extern "C"` around `PyTraceMalloc_` functions. (#127772)
hawkinsp Dec 11, 2024
d5d84c3
gh-127791: Fix, document, and test `PyUnstable_AtExit` (#127793)
ZeroIntensity Dec 11, 2024
ce76b54
gh-126992: Change pickle code to base 10 for load_long and load_int (…
Legoclones Dec 11, 2024
b2ad7e0
CI: Use bash to properly expand variable (#127822)
hugovk Dec 11, 2024
359389e
gh-123401: Fix http.cookies module to support obsolete RFC 850 date f…
Konano Dec 11, 2024
5a23994
GH-127058: Make `PySequence_Tuple` safer and probably faster. (#127758)
markshannon Dec 11, 2024
b0f278f
gh-127065: Make methodcaller thread-safe and re-entrant (GH-127746)
eendebakpt Dec 11, 2024
dd9da73
gh-118915: C API: Document frame locals proxies. (#127720)
ZeroIntensity Dec 11, 2024
bc262de
GH-125174: Mark objects as statically allocated. (#127797)
markshannon Dec 11, 2024
e8f4e27
gh-111609: Test `end_offset` in SyntaxError subclass (#127830)
nineteendo Dec 11, 2024
c84928e
gh-115999: Specialize `CALL_KW` in free-threaded builds (#127713)
mpage Dec 11, 2024
41f29e5
gh-127146: Some expected failures in Emscripten time tests (#127843)
hoodmane Dec 12, 2024
c33b6fb
gh-127740: Add some more tests for earlier PR #127756 (#127818)
srinivasreddy Dec 12, 2024
8bbd379
Simplify and speed-up an itertools recipe (gh-127848)
rhettinger Dec 12, 2024
292afd1
GH-127381: pathlib ABCs: remove remaining uncommon `PathBase` methods…
barneygale Dec 12, 2024
487fdbe
GH-125174: Fix compiler warning (GH-127860)
markshannon Dec 12, 2024
7146f18
GH-127807: pathlib ABCs: remove `PathBase._unsupported_msg()` (#127855)
barneygale Dec 12, 2024
f8dcb82
gh-127879: Fix data race in `_PyFreeList_Push` (#127880)
colesbury Dec 12, 2024
f823910
gh-127865: Fix build failure for systems without thread local support…
velemas Dec 12, 2024
365451e
gh-127353: Allow to force color output on Windows (#127354)
PalmtopTiger Dec 12, 2024
ed037d2
Fix typos in `Lib/_pydecimal.py` (#127700)
StanFromIreland Dec 12, 2024
a8ffe66
Revert "gh-127353: Allow to force color output on Windows (#127354)" …
hugovk Dec 12, 2024
8ac307f
GH-127724: don't use sysconfig to calculate the venv local include pa…
FFY00 Dec 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 20 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 1
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
- name: Check Autoconf and aclocal versions
Expand Down Expand Up @@ -94,6 +95,8 @@ jobs:
if: needs.check_source.outputs.run_tests == 'true'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.x'
Expand All @@ -120,7 +123,7 @@ jobs:
- name: Build CPython
run: |
make -j4 regen-all
make regen-stdlib-module-names regen-sbom
make regen-stdlib-module-names regen-sbom regen-unicodedata
- name: Check for changes
run: |
git add -u
Expand Down Expand Up @@ -235,10 +238,19 @@ jobs:
free-threading:
- false
- true
os:
- ubuntu-24.04
- ubuntu-24.04-aarch64
is-fork: # only used for the exclusion trick
- ${{ github.repository_owner != 'python' }}
exclude:
- os: ubuntu-24.04-aarch64
is-fork: true
uses: ./.github/workflows/reusable-ubuntu.yml
with:
config_hash: ${{ needs.check_source.outputs.config_hash }}
free-threading: ${{ matrix.free-threading }}
os: ${{ matrix.os }}

build_ubuntu_ssltests:
name: 'Ubuntu SSL tests with OpenSSL'
Expand All @@ -259,6 +271,8 @@ jobs:
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
Expand Down Expand Up @@ -319,6 +333,8 @@ jobs:
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install Dependencies
Expand Down Expand Up @@ -402,7 +418,7 @@ jobs:
#
# (GH-104097) test_sysconfig is skipped because it has tests that are
# failing when executed from inside a virtual environment.
${{ env.VENV_PYTHON }} -m test \
"${VENV_PYTHON}" -m test \
-W \
-o \
-j4 \
Expand Down Expand Up @@ -437,6 +453,8 @@ jobs:
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/documentation-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ on:
- 'Doc/**'
- '.github/workflows/doc.yml'

permissions:
pull-requests: write

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
documentation-links:
runs-on: ubuntu-latest
permissions:
pull-requests: write

steps:
- uses: readthedocs/actions/preview@v1
with:
Expand Down
39 changes: 14 additions & 25 deletions .github/workflows/jit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@ concurrency:
jobs:
interpreter:
name: Interpreter (Debug)
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build tier two interpreter
run: |
./configure --enable-experimental-jit=interpreter --with-pydebug
Expand Down Expand Up @@ -78,12 +80,15 @@ jobs:
runner: macos-14
- target: x86_64-unknown-linux-gnu/gcc
architecture: x86_64
runner: ubuntu-22.04
runner: ubuntu-24.04
- target: aarch64-unknown-linux-gnu/gcc
architecture: aarch64
runner: ubuntu-22.04
# Forks don't have access to our paid AArch64 runners. These jobs are skipped below:
runner: ${{ github.repository_owner == 'python' && 'ubuntu-24.04-aarch64' || 'ubuntu-24.04' }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.11'
Expand All @@ -104,7 +109,7 @@ jobs:

# The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966.
# This is a bug in the macOS runner image where the pre-installed Python is installed in the same
# directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes
# directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes
# the symlink to the pre-installed Python so that the Homebrew Python is used instead.
- name: Native macOS
if: runner.os == 'macOS'
Expand All @@ -118,43 +123,27 @@ jobs:
./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3

- name: Native Linux
if: runner.os == 'Linux' && matrix.architecture == 'x86_64'
# Forks don't have access to our paid AArch64 runners. Skip those:
if: runner.os == 'Linux' && (matrix.architecture == 'x86_64' || github.repository_owner == 'python')
run: |
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }}
make all --jobs 4
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3

- name: Emulated Linux
if: runner.os == 'Linux' && matrix.architecture != 'x86_64'
# The --ignorefile on ./python -m test is used to exclude tests known to fail when running on an emulated Linux.
run: |
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
./configure --prefix="$(pwd)/../build"
make install --jobs 4
make clean --jobs 4
export HOST=${{ matrix.architecture }}-linux-gnu
sudo apt install --yes "gcc-$HOST" qemu-user
export QEMU_LD_PREFIX="/usr/$HOST"
CC="$HOST-gcc" \
CPP="$HOST-gcc --preprocess" \
HOSTRUNNER=qemu-${{ matrix.architecture }} \
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }} --build=x86_64-linux-gnu --host="$HOST" --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes
make all --jobs 4
./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3

jit-with-disabled-gil:
name: Free-Threaded (Debug)
needs: interpreter
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
matrix:
llvm:
- 19
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.11'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ jobs:

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: "3.x"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/mypy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: "3.13"
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/require-pr-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@ on:
pull_request:
types: [opened, reopened, labeled, unlabeled, synchronize]

permissions:
issues: write
pull-requests: write

jobs:
label-dnm:
name: DO-NOT-MERGE
if: github.repository_owner == 'python'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
timeout-minutes: 10

steps:
Expand All @@ -28,6 +27,9 @@ jobs:
name: Unresolved review
if: github.repository_owner == 'python'
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
timeout-minutes: 10

steps:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-change-detection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ jobs:
- run: >-
echo '${{ github.event_name }}'
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check for source changes
id: check
run: |
Expand Down
14 changes: 10 additions & 4 deletions .github/workflows/reusable-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ jobs:
env:
branch_base: 'origin/${{ github.event.pull_request.base.ref }}'
branch_pr: 'origin/${{ github.event.pull_request.head.ref }}'
commits: ${{ github.event.pull_request.commits }}
refspec_base: '+${{ github.event.pull_request.base.sha }}:remotes/origin/${{ github.event.pull_request.base.ref }}'
refspec_pr: '+${{ github.event.pull_request.head.sha }}:remotes/origin/${{ github.event.pull_request.head.ref }}'
steps:
- name: 'Check out latest PR branch commit'
uses: actions/checkout@v4
with:
persist-credentials: false
ref: >-
${{
github.event_name == 'pull_request'
Expand All @@ -39,15 +41,15 @@ jobs:
if: github.event_name == 'pull_request'
run: |
# Fetch enough history to find a common ancestor commit (aka merge-base):
git fetch origin ${{ env.refspec_pr }} --depth=$(( ${{ github.event.pull_request.commits }} + 1 )) \
git fetch origin "${refspec_pr}" --depth=$(( commits + 1 )) \
--no-tags --prune --no-recurse-submodules

# This should get the oldest commit in the local fetched history (which may not be the commit the PR branched from):
COMMON_ANCESTOR=$( git rev-list --first-parent --max-parents=0 --max-count=1 ${{ env.branch_pr }} )
COMMON_ANCESTOR=$( git rev-list --first-parent --max-parents=0 --max-count=1 "${branch_pr}" )
DATE=$( git log --date=iso8601 --format=%cd "${COMMON_ANCESTOR}" )

# Get all commits since that commit date from the base branch (eg: master or main):
git fetch origin ${{ env.refspec_base }} --shallow-since="${DATE}" \
git fetch origin "${refspec_base}" --shallow-since="${DATE}" \
--no-tags --prune --no-recurse-submodules
- name: 'Set up Python'
uses: actions/setup-python@v5
Expand All @@ -69,7 +71,7 @@ jobs:
if: github.event_name == 'pull_request'
run: |
python Doc/tools/check-warnings.py \
--annotate-diff '${{ env.branch_base }}' '${{ env.branch_pr }}' \
--annotate-diff "${branch_base}" "${branch_pr}" \
--fail-if-regression \
--fail-if-improved \
--fail-if-new-news-nit
Expand All @@ -81,6 +83,8 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: 'Set up Python'
uses: actions/setup-python@v5
with:
Expand All @@ -99,6 +103,8 @@ jobs:
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/cache@v4
with:
path: ~/.cache/pip
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ jobs:
runs-on: ${{ inputs.os }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/reusable-tsan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,13 @@ jobs:
name: 'Thread sanitizer'
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
OPTIONS: ${{ inputs.options }}
SUPPRESSIONS_PATH: ${{ inputs.suppressions_path }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Runner image version
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
Expand All @@ -47,7 +52,7 @@ jobs:
sudo sysctl -w vm.mmap_rnd_bits=28
- name: TSAN Option Setup
run: |
echo "TSAN_OPTIONS=log_path=${GITHUB_WORKSPACE}/tsan_log suppressions=${GITHUB_WORKSPACE}/${{ inputs.suppressions_path }} handle_segv=0" >> "$GITHUB_ENV"
echo "TSAN_OPTIONS=log_path=${GITHUB_WORKSPACE}/tsan_log suppressions=${GITHUB_WORKSPACE}/${SUPPRESSIONS_PATH} handle_segv=0" >> "$GITHUB_ENV"
echo "CC=clang" >> "$GITHUB_ENV"
echo "CXX=clang++" >> "$GITHUB_ENV"
- name: Add ccache to PATH
Expand All @@ -59,7 +64,7 @@ jobs:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: Configure CPython
run: ${{ inputs.options }}
run: "${OPTIONS}"
- name: Build CPython
run: make -j4
- name: Display build info
Expand Down
Loading
Loading