← 输入框|github.com|刷新
Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1633 commits
Select commit Hold shift + click to select a range
e01203e
Bump which from 8.0.4 to 8.0.5 (#8333)
dependabot[bot] Jul 20, 2026
c22993c
Bump taiki-e/install-action from 2.82.9 to 2.83.2 (#8334)
dependabot[bot] Jul 20, 2026
e6b794d
Bump bitflags from 2.13.0 to 2.13.1 (#8336)
dependabot[bot] Jul 20, 2026
cc30cd5
Bump syn from 2.0.118 to 2.0.119 (#8337)
dependabot[bot] Jul 20, 2026
ea79826
Fix building against new libc (#8343)
joshuamegnauth54 Jul 22, 2026
72daf7c
Add more unicode functions to the c-api (#8272)
bschoenmaeckers Jul 22, 2026
bc12a97
bytes: support keyword arguments in hex() (#8312)
devyubin Jul 22, 2026
d2da5a2
Fix bytearray repr escaping for apostrophes (#8316)
cuishuang Jul 22, 2026
dd9bce5
Fix thread UnraisableException object to be None (#8326)
kyokuping Jul 22, 2026
8d7d9d9
Use dict keys-version stamps and entry-index hints in LOAD_ATTR/STORE…
youknowone Jul 23, 2026
c6b80e8
Unify nul errors (#8339)
joshuamegnauth54 Jul 23, 2026
9062f02
Fix StringIO newline splitting and character positions (#8351)
doma17 Jul 23, 2026
28454cc
Fix deadlock in c-api when a thread enters a stop_the_world (#8355)
bschoenmaeckers Jul 23, 2026
63542a6
sqlite3: fix closed connection error message to match CPython (#8362)
ever0de Jul 25, 2026
d797f99
sqlite3: allow Row construction with cursor having no description (#8…
ever0de Jul 25, 2026
4a80f2e
ast: fix identifier interning (#8361)
widehyo1 Jul 25, 2026
e9f7347
Fix float overflow in struct packing (#8360)
moreal Jul 25, 2026
d155c93
Fix b2a_qp CRLF boundary check (#8358)
YangSiJun528 Jul 25, 2026
1ee695e
time: use C altzone when available (#8357)
lms0806 Jul 25, 2026
0dc8f0f
Fix some pyo3 testcase against the c-api (#8349)
bschoenmaeckers Jul 25, 2026
003ebec
Bump fast-uri from 3.1.2 to 3.1.4 in /wasm/demo (#8365)
dependabot[bot] Jul 25, 2026
cc6c638
sqlite3: raise ProgrammingError when named param receives sequence (#…
ever0de Jul 26, 2026
a5bb9fd
build(deps-dev): bump postcss from 8.5.10 to 8.5.23 in /wasm/demo (#8…
dependabot[bot] Jul 26, 2026
15099d0
build(deps-dev): bump http-proxy-middleware in /wasm/demo (#8368)
dependabot[bot] Jul 26, 2026
b2d7ae0
build(deps-dev): bump shell-quote from 1.8.4 to 1.10.0 in /wasm/demo …
dependabot[bot] Jul 26, 2026
aea5fe3
Replace malformed unicode error helper calls with the _real variants …
devyubin Jul 26, 2026
321158c
Implement termios.tcgetwinsize/tcsetwinsize (#8347)
sigmaith Jul 26, 2026
44e5d84
_thread: initialize local subclasses per thread (#8353)
kyokuping Jul 26, 2026
92fe3fd
Propagate method wrapper repr errors (#8371)
YangSiJun528 Jul 26, 2026
9add522
Implement fractional grouping in format specs (#8373)
name-of-okja Jul 26, 2026
5db61a0
build(deps-dev): bump webpack-dev-server in /wasm/demo (#8374)
dependabot[bot] Jul 26, 2026
f0708f5
Use memchr consistently for NUL checks (#8372)
joshuamegnauth54 Jul 27, 2026
f8c66d0
dict iterator __reduce__ to resume from current position (#8384)
zzarbttoo Jul 27, 2026
d62a391
Fix sqlite autocommit lifecycle (#8387)
teddygood Jul 27, 2026
59e903d
Reject empty UU input before decoding (#8389)
doma17 Jul 27, 2026
2eeeb87
Update malachite dependencies to 0.10 (#8391)
youknowone Jul 27, 2026
6996beb
build(deps): bump actions/setup-python from 6.3.0 to 7.0.0 (#8392)
dependabot[bot] Jul 27, 2026
b3be474
build(deps): bump taiki-e/install-action from 2.83.2 to 2.84.0 (#8393)
dependabot[bot] Jul 27, 2026
523c1fc
build(deps): bump cargo-bins/cargo-binstall from 1.20.1 to 1.21.0 (#8…
dependabot[bot] Jul 27, 2026
c39c13b
build(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#8395)
dependabot[bot] Jul 27, 2026
061351c
build(deps): bump thiserror in the thiserror group across 1 directory…
dependabot[bot] Jul 27, 2026
14dcba2
build(deps): bump github/gh-aw/actions/setup from 0.81.6 to 0.82.14 (…
dependabot[bot] Jul 27, 2026
3aaec06
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8400)
dependabot[bot] Jul 27, 2026
1613741
Fix SymbolUsge::Iter, os.rename, sre_engine (#8390)
youknowone Jul 28, 2026
bf4a2b1
Fix zero padding for string format specs (#8407)
shAn-kor Jul 29, 2026
942ddae
Add seekable() to mmap.mmap (#8405)
doma17 Jul 29, 2026
9bf458c
host_env: Fix wcslen, leverage NonNull<T> more (#8386)
joshuamegnauth54 Jul 29, 2026
bf8bca8
wasi: support monotonic / perf time (#8385)
jiwahn Jul 29, 2026
363e8a9
build(deps): bump libc from 0.2.186 to 0.2.189 (#8399)
dependabot[bot] Jul 29, 2026
76f6f6c
build(deps): bump webpki-roots (#8397)
dependabot[bot] Jul 29, 2026
6906aa1
csv: support multi-character lineterminator in writer (#8328)
jinmay Jul 29, 2026
ede18e4
dict: match CPython errors for invalid update sequence elements (#8338)
2jiyong Jul 29, 2026
87de0dd
Fix some clippy lints for 1.99 (#8412)
joshuamegnauth54 Jul 30, 2026
55b3d68
ast: match CPython argument validation order (#8414)
widehyo1 Jul 30, 2026
1e34770
Fix x86_64-pc-windows-gnu build (#8411)
joshuamegnauth54 Jul 30, 2026
04c3ecf
Allow lone-surrogate keyword keys in f(**d) (#8409)
HyoJongPark Jul 30, 2026
f08933b
Split InterpreterFrame from FrameObject for stack-allocated execution…
youknowone Jul 31, 2026
05f7f74
fix(ssl): make Certificate immutable and non-instantiable (#8417)
kyokuping Aug 1, 2026
249ae08
fix(ssl): emit missing deprecation warnings (#8418)
kyokuping Aug 1, 2026
c9e48ba
Fix sqlite autocommit cursor transactions (#8419)
teddygood Aug 1, 2026
16bb018
csv: port CPython reader state machine (#8381)
widehyo1 Aug 1, 2026
dc1cae4
Bind method descriptor when __get__ owner is omitted (#8404)
devyubin Aug 1, 2026
bd653da
docs: drop stale crate paths from AGENTS.md (#8425)
leehanjeong Aug 1, 2026
e4dc580
docs: fix AGENTS.md's broken DEVELOPMENT.md references (#8426)
leehanjeong Aug 1, 2026
9e92f96
docs: match CONTRIBUTING.md's test command to what CI runs (#8427)
leehanjeong Aug 1, 2026
aa4f98a
fix(socket): use object repr in deallocation warnings (#8422)
kyokuping Aug 1, 2026
6131363
Replace rust-timsort with an in-tree powersort (#8421)
kangdora Aug 2, 2026
1306b71
__length_hint__ (#6636)
youknowone Aug 2, 2026
95f9d17
Fix miri UB: use transmute_copy for function pointer identity checks …
youknowone Aug 2, 2026
12f3646
ssl: store SSL socket owners as weak references (#8423)
kyokuping Aug 2, 2026
9dff4d3
Split InterpreterFrame hot/cold fields into FrameColdData (#8434)
youknowone Aug 3, 2026
74ae2d4
Fix bytes.isspace (#5655)
hbina Aug 3, 2026
a635d0b
socket: accept a filesystem-encoded hostname in sethostname (#8437)
youknowone Aug 3, 2026
654f3a5
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8439)
dependabot[bot] Aug 3, 2026
b2219b3
build(deps): bump github/gh-aw/actions/setup from 0.82.14 to 0.83.4 (…
dependabot[bot] Aug 3, 2026
7d0f588
build(deps): bump rustls from 0.23.42 to 0.23.43 (#8445)
dependabot[bot] Aug 3, 2026
8fd0785
build(deps): bump taiki-e/install-action from 2.84.0 to 2.85.2 (#8438)
dependabot[bot] Aug 3, 2026
c69e675
build(deps): bump proc-macro2 from 1.0.106 to 1.0.107 (#8444)
dependabot[bot] Aug 3, 2026
8b131ac
build(deps): bump bstr from 1.12.3 to 1.13.0 (#8442)
dependabot[bot] Aug 3, 2026
640154a
build(deps): bump zizmorcore/zizmor-action from 0.5.7 to 0.6.1 (#8443)
dependabot[bot] Aug 3, 2026
4172eb1
build(deps): bump reviewdog/action-actionlint from 1.72.0 to 1.73.0 (…
dependabot[bot] Aug 3, 2026
77b7b84
build(deps): bump https://github.com/rbubley/mirrors-prettier (#8440)
dependabot[bot] Aug 3, 2026
51d7b50
build(deps): bump j178/prek-action from 2.0.5 to 2.0.6 (#8446)
dependabot[bot] Aug 3, 2026
331c3b1
Use datastack path for __init__ dispatch in CallAllocAndEnterInit (#8…
youknowone Aug 3, 2026
184db11
Replace deprecated `chrono` with `jiff` (#8436)
joshuamegnauth54 Aug 4, 2026
5febd2e
Optimize list removal lock usage (#8451)
KRRT7 Aug 4, 2026
b03e032
build(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /wasm/demo (#8452)
dependabot[bot] Aug 4, 2026
6eea4fd
Fix complex zero-padding error priority (#8453)
shAn-kor Aug 4, 2026
1fa76a3
ast: enforce integer string limits in AST-only parsing (#8454)
widehyo1 Aug 4, 2026
1c7759c
Flatten Python eval loop with trampoline for reduced call overhead (#…
youknowone Aug 5, 2026
daafafa
Update Python version to 3.14.7 (#8456)
fanninpm Aug 7, 2026
9bab06c
Fix a few WASI lints (#8457)
joshuamegnauth54 Aug 7, 2026
bb75624
Implement cell comparison and repr (#8458)
name-of-okja Aug 7, 2026
4530ecd
Specialize list.sort() comparisons for homogeneous lists (#8464)
kangdora Aug 8, 2026
cbaa589
Implement TclObject support in tkinter varname_converter (#8465)
lms0806 Aug 8, 2026
cf68876
Fix locals()/vars() corrupting/leaking __conditional_annotations__ ou…
sigmaith Aug 8, 2026
695dda4
Allow automated commits and fix C-API test instructions (#8468)
moreal Aug 8, 2026
1819677
host_env: Simplify stat, fstatat with Rustix (#8455)
joshuamegnauth54 Aug 8, 2026
557bec1
sre_engine: resume the tail match at prefix_skip, not past the whole …
youknowone Aug 9, 2026
12a0a1e
Implement negative zero coercion format option (#8475)
shAn-kor Aug 9, 2026
6ec4360
Fix EOF SyntaxError diagnostics (#8429)
chestnut1717 Aug 9, 2026
5b3eb41
Fix panic in code.replace() with non-interned strings (#8471)
MsfPablo Aug 9, 2026
3a1caa1
Use C string literals and w! instead of allocs (#8474)
joshuamegnauth54 Aug 9, 2026
689c8b5
wasi: fix os.environb byte handling (#8476)
jiwahn Aug 9, 2026
bcf5c4b
ssl: support explicit session reuse (#8466)
kyokuping Aug 9, 2026
dca9b09
Add new_payload_exception helper for constructing built-in payload ex…
kangdora Aug 9, 2026
365434b
Add JIT support for returning None (#8479)
kyokuping Aug 10, 2026
98d060d
build(deps): bump cargo-bins/cargo-binstall from 1.21.0 to 1.21.1 (#8…
dependabot[bot] Aug 10, 2026
81187db
build(deps): bump j178/prek-action from 2.0.6 to 3.0.0 (#8483)
dependabot[bot] Aug 10, 2026
0d8260b
build(deps): bump jiff in the jiff group across 1 directory (#8484)
dependabot[bot] Aug 10, 2026
c30748c
build(deps): bump pyo3 in the pyo3 group across 1 directory (#8485)
dependabot[bot] Aug 10, 2026
6ff1c26
build(deps): bump libz-rs-sys from 0.6.6 to 0.6.7 (#8486)
dependabot[bot] Aug 10, 2026
68fa89a
build(deps): bump github/gh-aw/actions/setup from 0.83.4 to 0.84.3 (#…
dependabot[bot] Aug 10, 2026
b25b14f
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8488)
dependabot[bot] Aug 10, 2026
05a9873
build(deps): bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 (#8481)
dependabot[bot] Aug 11, 2026
e843149
Fix map no iterables (#8478)
william-goode Aug 11, 2026
81df1ff
Replace deleted README demo script reference (#8492)
Copilot Aug 11, 2026
7612e68
Reuse stored hashes when building a set from a set/frozenset/dict (#8…
fregataa Aug 12, 2026
643039d
Fix __qualname__ of compiler-generated __annotate__ functions (#8498)
kyokuping Aug 12, 2026
9de06cc
jit: preserve return types for recursive calls (#8499)
kyokuping Aug 12, 2026
d64cc2c
Fix marshal recursive reference loading (#8501)
youknowone Aug 12, 2026
24bd3b3
ssl: pass test_ssl with the rustls backend (#8502)
youknowone Aug 12, 2026
e02e215
ci: automate OSCCA pull request triage (#8505)
moreal Aug 12, 2026
3a98ef7
Allow and document clippy::drain_collect (#8500)
joshuamegnauth54 Aug 12, 2026
db5de5e
Reuse stored hashes in dict.fromkeys() (#8503)
fregataa Aug 12, 2026
6701520
itertools: defer dropwhile predicate validation (#8504)
widehyo1 Aug 12, 2026
212c0d0
Fix future annotation block alignment (#8506)
youknowone Aug 12, 2026
525ba8c
codegen: preserve symbol tables across copied finally bodies (#8507)
youknowone Aug 13, 2026
901d8e1
Normalize round() result to an exact int (#8511)
jseop-lim Aug 13, 2026
0b150ca
Reject a fifth argument to property() (#8510)
jseop-lim Aug 13, 2026
c9a6244
Reject extra positional arguments to `float()` (#8509)
jseop-lim Aug 13, 2026
2ed082a
Fix 33 reproduced fuzzing and static-review defects (#8514)
youknowone Aug 13, 2026
fd7d107
marshal: round-trip code constants through the runtime bag (#8516)
youknowone Aug 13, 2026
2690c16
marshal: refuse a back-reference to an object still being written (#8…
youknowone Aug 14, 2026
d0baa1c
Preserve lone surrogates across WASM conversions (#8508)
HyoJongPark Aug 14, 2026
b109723
Fix the itertools.tee leak and race, the contextvars and generator ra…
youknowone Aug 14, 2026
d04318e
_sre: drive an all-ASCII str subject over its bytes (#8520)
youknowone Aug 14, 2026
9f90967
str: count a stepped slice's characters with a ceiling division (#8525)
youknowone Aug 14, 2026
d609108
_sre: drive a non-ASCII str subject through a character index on the …
youknowone Aug 14, 2026
7e25617
str: resolve subscripts and slices through the code point index (#8526)
youknowone Aug 14, 2026
466d9da
ci: fix OSCCA pull request permissions (#8515)
moreal Aug 14, 2026
7a2cc65
build(deps): bump thiserror in the thiserror group across 1 directory…
dependabot[bot] Aug 14, 2026
a6fe919
build(deps): bump psm from 0.1.31 to 0.1.32 (#8528)
dependabot[bot] Aug 14, 2026
2274cef
build(deps): bump quote from 1.0.46 to 1.0.47 (#8529)
dependabot[bot] Aug 14, 2026
5919be9
str: take search bounds through the character index (#8530)
youknowone Aug 15, 2026
833a2ba
str, bytes: answer equality with equality rather than with an orderin…
youknowone Aug 15, 2026
36a59f5
sqlite3: validate narg before creating functions/aggregates (#8532)
ever0de Aug 15, 2026
32b1f21
sqlite3: add Connection exception attributes and fix autocommit Value…
ever0de Aug 15, 2026
70b47dd
sqlite3: pass None for NULL authorizer args instead of crashing (#8534)
ever0de Aug 15, 2026
7eb6d38
sqlite3: add SQLITE_DBCONFIG constants, setconfig() and getconfig() (…
ever0de Aug 16, 2026
aa3c8b5
Remove private comprehension flags (#8537)
YangSiJun528 Aug 16, 2026
5c13fa1
Per-interpreter runtime state and a process-wide GC stop-the-world (#…
youknowone Aug 16, 2026
f24b257
Implement PEP 688 and rework the buffer protocol around managed expor…
youknowone Aug 16, 2026
c85b83f
Fix crashes found hunting the last open fuzzing record (#8524)
youknowone Aug 16, 2026
aaeab4f
Fix malformed Unicode error constructors (#8497)
youknowone Aug 16, 2026
25e76af
Expose symbol scopes through _symtable (#8538)
YangSiJun528 Aug 17, 2026
62d04c6
Add StringIO newline tracking (#8539)
doma17 Aug 18, 2026
6f4c86d
build(deps): bump reviewdog/action-actionlint from 1.73.0 to 1.73.1 (…
dependabot[bot] Aug 18, 2026
f667060
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8542)
dependabot[bot] Aug 18, 2026
da3f6e8
build(deps): bump taiki-e/install-action from 2.85.2 to 2.85.11 (#8543)
dependabot[bot] Aug 18, 2026
67cf607
build(deps): bump num-integer in the num group across 1 directory (#8…
dependabot[bot] Aug 18, 2026
182175b
memoryview: count exports, hash the exporter, and index through `__in…
youknowone Aug 18, 2026
189bc97
marshal: let runtime bags preserve raw code bytes (#8552)
youknowone Aug 18, 2026
bf46487
common: distinguish printf width and precision overflow (#8549)
youknowone Aug 18, 2026
fdd101b
Fix int unicode decimal digits (#8521)
zzarbttoo Aug 18, 2026
d8bb7bb
builtins: generate accurate __text_signature__ (#8512)
leehanjeong Aug 18, 2026
419a0b2
ffi: No interior NULs (part 1) (#8245)
joshuamegnauth54 Aug 18, 2026
ee0bb64
winsound: drop the imports the NUL-safe PlaySound left behind (#8554)
youknowone Aug 19, 2026
ebc0459
host_env: Reject interior NULs for CreateProcessW (#8555)
joshuamegnauth54 Aug 19, 2026
ca907d1
Collapse bare ExpectedExpression to 'invalid syntax'; fix '<>' diagno…
mumallaeng Aug 19, 2026
86d9407
Raise where the fuzzer found aborts and stack overflows, and collect …
youknowone Aug 19, 2026
91a725f
compiler-core: implement DerefMut and IndexMut for Constants (#8557)
youknowone Aug 20, 2026
dd2cc4d
Align compiler futures, annotations, and symtable with CPython (#8550)
youknowone Aug 20, 2026
95dbc12
clarify AI policy checkbox
youknowone Aug 21, 2026
02a80ea
`str.format`: fix not raising for unknown conversions (#8560)
Andrej730 Aug 21, 2026
dbf6e6d
Fix str.replace with an empty pattern splitting characters (#8561)
luantaraschi Aug 21, 2026
c077373
Drop the lint expectations clippy 1.98 no longer fulfils (#8564)
luantaraschi Aug 21, 2026
6079ad0
Fix re.findall reporting a group that did not match (#8563)
luantaraschi Aug 21, 2026
c420cc5
Rebase range iterator `__reduce__` to match CPython (#8424)
devyubin Aug 21, 2026
728a61e
csv: validate dialect options (#8402)
hyoinandout Aug 21, 2026
b917e96
Drop the last two lint expectations clippy 1.98 no longer fulfils (#8…
luantaraschi Aug 21, 2026
6f542bf
Fix str.expandtabs aborting on a tab size of zero (#8562)
luantaraschi Aug 21, 2026
3d2ee64
Drop the narrow-build surrogate pairing from unicode_escape (#8569)
luantaraschi Aug 21, 2026
f8de240
Insert the item rather than its key in bisect.insort (#8565)
luantaraschi Aug 22, 2026
4c448c4
Apply the format spec to a bool instead of dropping it (#8566)
luantaraschi Aug 22, 2026
f9e65c0
Drop what a deque with maxlen of zero is handed (#8567)
luantaraschi Aug 22, 2026
377c9db
Follow CPython's padding rules in a2b_base64 (#8570)
luantaraschi Aug 22, 2026
30be390
Reject the string format flags CPython refuses (#8571)
luantaraschi Aug 22, 2026
17e1e49
Use `ruff_python_ast::name::Name` for symtable and compiler (#8344)
ShaharNaveh Aug 22, 2026
9edd97e
build(deps): bump github/gh-aw/actions/setup from 0.84.3 to 0.85.4 (#…
dependabot[bot] Aug 22, 2026
dfbc9b6
replace wasmer --dir -> --volume (#8572)
youknowone Aug 22, 2026
344bf8f
Give the strong count the bits an unused weak field held (#8574)
youknowone Aug 22, 2026
09dbec3
Update some tests to 3.14.7 (#8558)
ShaharNaveh Aug 22, 2026
7cc162a
Remove `#[repr(C)]` from LinkedList (#8575)
ShaharNaveh Aug 22, 2026
d53f35f
Use non-raising lookup for default optional attribute access (#8576)
widehyo1 Aug 22, 2026
435d588
Update some libs & tests to 3.14.7 (#8577)
ShaharNaveh Aug 22, 2026
e988072
Update `Lib/support` to `3.14.7` + some tests (#8578)
ShaharNaveh Aug 22, 2026
acad681
Update doc DB for CPython 3.14.7 (#8579)
github-actions[bot] Aug 22, 2026
cc1e55e
Update some libs and tests to `3.14.7` (#8559)
ShaharNaveh Aug 22, 2026
0dfc93a
Drop the handler-table borrow before running a signal handler (#8582)
luantaraschi Aug 22, 2026
4e2ac38
Stop skipping six tests whose reason no longer reproduces (#8583)
luantaraschi Aug 22, 2026
bf7c173
Bound the recursion in exception group split and subgroup (#8584)
luantaraschi Aug 22, 2026
48a3a1f
Match CPython on code objects, ast, symtable and syntax error positio…
youknowone Aug 23, 2026
ba2c2d7
unicodedata: Fix Bidirectional, improve parser (#8548)
joshuamegnauth54 Aug 24, 2026
5edfa41
Warn instead of aborting when a class namespace holds a non-string ke…
luantaraschi Aug 24, 2026
a3db5d5
build(deps): bump reviewdog/action-actionlint from 1.73.1 to 1.73.2 (…
dependabot[bot] Aug 25, 2026
051f7de
build(deps): bump libffi in the libffi group across 1 directory (#8588)
dependabot[bot] Aug 25, 2026
a7fb414
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8589)
dependabot[bot] Aug 25, 2026
abf6785
build(deps): bump github/gh-aw/actions/setup from 0.85.4 to 0.86.2 (#…
dependabot[bot] Aug 25, 2026
696b57b
host_env: rustix for unlinkat, fix clippy deny (#8591)
joshuamegnauth54 Aug 25, 2026
3a93747
build(deps): bump taiki-e/install-action from 2.85.11 to 2.86.2 (#8586)
dependabot[bot] Aug 25, 2026
c8c2a7d
build(deps-dev): bump brace-expansion in /wasm/demo (#8592)
dependabot[bot] Aug 25, 2026
ed3111f
Update some libs and tests to 3.14.7 (#8593)
ShaharNaveh Aug 25, 2026
cb7acec
compiler: end the missing-comma diagnostic past the whole second atom…
youknowone Aug 25, 2026
307852d
`str.format`: reject non-existing `!b` format conversion (#8597)
Andrej730 Aug 26, 2026
f9d986b
Update test_unicodedata to 3.15 (#8598)
joshuamegnauth54 Aug 26, 2026
7931cb0
Update some tests & libs to `3.14.7` (#8595)
ShaharNaveh Aug 26, 2026
b0b4d2f
lock: add an opt-in rwlock that detaches before it blocks (#8556)
youknowone Aug 28, 2026
86e7ede
Update malachite to 0.11 (#8604)
youknowone Aug 28, 2026
ec6fec2
Update some libs and tests to 3.14.7 (#8603)
ShaharNaveh Aug 29, 2026
27d13d2
Give heap types a dict namespace (#8606)
youknowone Aug 29, 2026
28815d1
Fix formatting, numeric, unicode, codec, complex and marshal mismatch…
youknowone Aug 29, 2026
371bb82
memoryview: traverse the view for the collector, and name types as `t…
youknowone Aug 29, 2026
a4b5bc5
CI: run cargo with `--locked` (#8607)
ShaharNaveh Aug 29, 2026
1db2006
posixsubprocess: call libc setgroups directly in the child (#8609)
youknowone Aug 30, 2026
1e3573c
Implement CPython 3.14 subinterpreter APIs (#8605)
youknowone Aug 30, 2026
6af309d
Add CodSpeed continuous benchmarking (#8613)
codspeed[bot] Aug 30, 2026
fc0069f
Match `uuid.getnode()` native node detection to CPython (#8612)
moreal Aug 30, 2026
474c48c
Implement PEP 667 frame locals semantics (#8602)
youknowone Aug 30, 2026
1597e0a
feat: reuse weak callable proxy (#8618)
rlaisqls Aug 30, 2026
b566b16
Fix CodSpeed cargo install cache (#8620)
moreal Aug 30, 2026
d62ab2a
ci: bump actions and opt into Node.js 24 (#8616)
moreal Aug 30, 2026
a783ae8
Fix tuple subclass preservation in type bases (#8420)
moreal Aug 30, 2026
4bd9545
Leave a byte that starts no UTF-8 sequence at the end of a console wr…
youknowone Aug 30, 2026
6cf0321
Report every generated `__text_signature__`, and keep it out of `__do…
leehanjeong Aug 31, 2026
43544a2
common: add VM-independent codec and text engines (#8622)
youknowone Aug 31, 2026
6a3a8b0
codecs: address post-merge review findings (#8623)
youknowone Aug 31, 2026
ed60536
build(deps): bump system-configuration (#8627)
dependabot[bot] Aug 31, 2026
62d2a19
build(deps): bump github/gh-aw/actions/setup from 0.86.2 to 0.87.3 (#…
dependabot[bot] Aug 31, 2026
a68e3b0
build(deps): bump https://github.com/astral-sh/ruff-pre-commit (#8625)
dependabot[bot] Aug 31, 2026
5494a3a
Name the function a failed argument binding was binding for (#8630)
youknowone Aug 31, 2026
399378c
Fix post-merge subinterpreter lifecycle issues (#8632)
youknowone Aug 31, 2026
5b5f4c3
ucd: Rewrite parser to be faster & more flexible (#8611)
joshuamegnauth54 Aug 31, 2026
7ec8333
benchmarks: add pyperformance workloads (#8633)
moreal Sep 1, 2026
cc5f76c
Document separate C-API Clippy checks (#8615)
moreal Sep 1, 2026
294ba6b
common: share the zlib stream engine (#8631)
youknowone Sep 1, 2026
d3fbcf0
build(deps): bump base64 from 0.22.1 to 0.23.1 (#8545)
dependabot[bot] Sep 1, 2026
3ae7166
build(deps): bump libsqlite3-sys from 0.38.1 to 0.38.2 (#8546)
dependabot[bot] Sep 1, 2026
3167896
Raise the shared argument-binding errors from the slots that count fo…
youknowone Sep 1, 2026
db50809
perf: avoid building error strings on the **kwargs call path
moreal Sep 2, 2026
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
  •  
  •  
  •  
63 changes: 63 additions & 0 deletions .agents/skills/apple-container/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: apple-container
description: Run RustPython tests in Apple's `container` CLI Linux environment. Use when user asks to run or compare Linux test results on macOS.
allowed-tools: Bash(container:*) Bash(cargo:*) Read Grep Glob
---

# Run Tests in Linux Container (Apple `container` CLI)

Run RustPython tests inside a Linux container using Apple's `container` CLI.
NEVER use Docker, Podman, or any other container runtime. Only use the `container` command.

## Arguments

- Test command to run (examples: `test_io`, `test_codecs -v`, `test_io -v -m "test_errors"`)

## Prerequisites

- The `container` CLI is installed via `brew install container`.
- The dev image `rustpython-dev` is already built.

## Workflow

1. Check whether the test container is already running:

```shell
container list 2>/dev/null | grep rustpython-test
```

2. Start the container if it is not running:

```shell
container run -d --name rustpython-test -m 8G -c 4 \
--mount type=bind,source="$(pwd)",target=/workspace \
-w /workspace rustpython-dev sleep infinity
```

3. Run the requested test command inside the container:

```shell
container exec rustpython-test cargo run --release -- -m test <test-args>
```

4. Report results:

- Show pass/fail summary and expected failures / unexpected successes.
- Highlight new failures compared to macOS results, if available.
- Do not stop or remove the container after testing.

## Notes

- The workspace is bind-mounted, so local code changes are immediately available in the container.
- Use `container exec rustpython-test sh -c "..."` for any command inside the container.
- Rebuild after code changes with:

```shell
container exec rustpython-test sh -c "cargo build --release"
```

- Stop the container when explicitly requested:

```shell
container rm -f rustpython-test
```
53 changes: 53 additions & 0 deletions .agents/skills/investigate-test-failure/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: investigate-test-failure
description: Investigate a failing RustPython test, compare with CPython behavior, and decide whether to implement a fix or prepare incompatibility issue details.
allowed-tools: Bash(python3:*) Bash(cargo run:*) Bash(gh issue create:*) Read Grep Glob Bash(git add:*) Bash(git commit:*) Bash(cargo fmt:*) Bash(git diff:*) Task
---

# Investigate Test Failure

Investigate why a specific test is failing and determine whether it can be fixed now or should be reported as an incompatibility issue.

## Arguments

- Failed test identifier (example: `test_inspect.TestGetSourceBase.test_getsource_reload`)

## Workflow

1. Analyze the failure cause:

- Read the test code.
- Analyze failure message and traceback.
- Check related RustPython implementation code.

2. Verify behavior in CPython:

- Run the test with `python3 -m unittest`.
- Document expected behavior/output.

3. Determine fix feasibility:

- Simple fix (import issues, small logic bugs): implement fix, run formatting and checks, review changes, and commit.
- Complex fix (major missing feature): gather issue information and report to user.

Pre-commit review process:

- Run `git diff` to review local changes.
- Use a focused subagent review to compare implementation against CPython behavior and check for missed edge cases.
- Commit only after review passes.

4. For complex issues, collect issue information using `.github/ISSUE_TEMPLATE/report-incompatibility.md`:

- Feature: missing or broken Python feature.
- Minimal reproduction code.
- CPython behavior (`python3`).
- RustPython behavior (`cargo run`).
- Python documentation reference link.

Report the collected information to the user. Create an issue only when explicitly requested.

Example issue command:

```shell
gh issue create --template report-incompatibility.md --title "..." --body "..."
```
60 changes: 60 additions & 0 deletions .agents/skills/rustpython-capi-expansion/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: rustpython-capi-expansion
description: Implement missing RustPython C-API functions in crates/capi using the pyo3-ffi header split mapping (`pyo3-ffi/src/*.rs`, mirroring CPython C API headers). Use this whenever the user asks to add or port C-API functions (for example from setobject.h, dictobject.h, unicodeobject.h) or add capi tests.
---

# RustPython C-API Expansion

Use this workflow for adding missing C-API functions to RustPython.

## Source of truth for target files

- Use this mapping source: `pyo3-ffi/src/*.rs`, which mirrors the CPython header split used by the C API.
- Map requested header APIs to `crates/capi/src/<header_basename>.rs` using that split. Examples:
- `setobject.h` -> `crates/capi/src/setobject.rs`
- `dictobject.h` -> `crates/capi/src/dictobject.rs`
- `unicodeobject.h` -> `crates/capi/src/unicodeobject.rs`
- Do not invent alternate target modules when the header split implies a direct target.
- If the target file is not present yet, create it and wire it in `crates/capi/src/lib.rs`.

## Implementation workflow

1. Identify requested missing APIs from the user request and their originating C API header.
2. Open nearby capi modules in `crates/capi/src/` and follow existing style and patterns.
3. Implement only the requested functions in the mapped target file.
4. Keep behavior aligned with CPython C-API contracts.
5. Prefer using existing `rustpython-vm` functionality as much as possible instead of re-implementing behavior in capi.
6. If a needed `rustpython-vm` helper exists but is private, make it public with a minimal, focused visibility change.
7. Prefer direct contract assumptions over defensive null checks unless required by the established local style.
8. Add basic tests only; do not overfit with very specific edge-case clutter.
9. In tests, use `pyo3` only as a safe wrapper over the API. Avoid raw pointer-heavy direct FFI-style tests.
10. Run tests from `crates/capi`.

## Testing rules

- Run test commands with working directory set to `crates/capi`.
- Prefer targeted tests first (module/function filter), then broader capi tests if needed.
- Keep test names concise (no required `test_` prefix).

## Style rules

- Follow existing RustPython capi coding style in neighboring files.
- Reuse `rustpython-vm` methods and types first; avoid duplicating VM logic in capi wrappers.
- When exposing previously private VM helpers, keep the API surface minimal and avoid unrelated refactors.
- Only expose and implement ABI-stable C-API surface needed for `abi3` / `abi3t`.
- Add comments only when they explain non-obvious behavior.
- Keep edits minimal and focused on requested API expansion.

## Completion checklist

- [ ] All requested functions implemented in mapped target file.
- [ ] New module exported in `crates/capi/src/lib.rs` when applicable.
- [ ] Basic safe-wrapper `pyo3` tests added/updated.
- [ ] Tests executed from `crates/capi` and passing for changed area.
- [ ] Final response includes changed file paths and test command summary.

## Example prompts this skill should handle

- "Implement these missing functions from `dictobject.h`."
- "Add `setobject.h` C-API functions in RustPython and include basic tests."
- "Port the listed `unicodeobject.h` APIs in capi, follow existing style, and run tests from `crates/capi`."
34 changes: 34 additions & 0 deletions .agents/skills/upgrade-pylib-next/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: upgrade-pylib-next
description: Pick the next CPython stdlib module ready for upgrade based on update_lib todo output and skip modules with open upgrade PRs.
allowed-tools: Skill(upgrade-pylib) Bash(gh pr list:*) Bash(cargo run:*)
---

# Upgrade Next Python Library

Find the next Python library module ready for upgrade and then run the `upgrade-pylib` workflow for it.

## Workflow

1. Get current TODO status:

```shell
cargo run --release -- scripts/update_lib todo 2>/dev/null
```

2. Get open upgrade PRs:

```shell
gh pr list --search "Update in:title" --json number,title --template '{{range .}}#{{.number}} {{.title}}{{"\\n"}}{{end}}'
```

3. From TODO output, select modules in this priority order:

- `[ ] [no deps]`
- `[ ] [0/n]` where dependencies are all upgraded (for example `[0/3]`, `[0/5]`)

4. Skip modules that already have an open upgrade PR.

5. Run upgrade for selected module using the `upgrade-pylib` workflow.

If no modules match, report that eligible modules are blocked by dependencies.
102 changes: 102 additions & 0 deletions .agents/skills/upgrade-pylib/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
name: upgrade-pylib
description: Upgrade a Python standard library module from CPython into RustPython using scripts/update_lib and then triage and mark remaining failures.
allowed-tools: Bash(git add:*) Bash(git commit:*) Bash(git diff:*) Bash(cargo run:*) Bash(python3 scripts/update_lib quick:*) Bash(python3 scripts/update_lib auto-mark:*)
---

# Upgrade Python Library from CPython

Upgrade a Python standard library module from CPython to RustPython.

## Arguments

- Library name or path (examples: `inspect`, `asyncio`, `json`, `cpython/Lib/inspect.py`, `cpython/Lib/json/`)

## Important: Report Tool Issues First

If `scripts/update_lib` shows a bug, missing automation, or unexpected behavior, stop the upgrade and report the tooling issue first, including:

1. What you were trying to do:

- Library name.
- Full command used.

2. What went wrong or what is missing.
3. Expected vs actual behavior.

## Workflow

1. Run quick upgrade with update_lib:

- `python3 scripts/update_lib quick <module>`
- or `python3 scripts/update_lib quick cpython/Lib/<module>.py`
- or `python3 scripts/update_lib quick cpython/Lib/<module>/`

This step copies library files, patches tests while preserving markers where possible, runs tests, auto-marks new failures, removes stale `@unittest.expectedFailure`, and creates a commit.

If warnings like `WARNING: TestCFoo does not exist in remote file` appear, class structure changed and some markers must be restored manually.

2. Review diff and restore RustPython-specific changes:

- Run `git diff Lib/test/test_<module>`.
- Restore only changes with explicit `RUSTPYTHON` comments.
- Do not restore unrelated upstream CPython changes.

3. Investigate failing dependent tests:

- Get dependencies:

```shell
cargo run --release -- scripts/update_lib deps <module>
```

- Find direct dependent test modules from the `- [ ] <module>:` line.
- Run dependent tests and collect failures:

```shell
cargo run --release -- -m test <test_modules...> 2>&1 | grep -E "^(FAIL|ERROR):"
```

- For each failing test identifier, investigate with the `investigate-test-failure` workflow.

4. Mark remaining failures with auto-mark:

- `python3 scripts/update_lib auto-mark Lib/test/test_<module>.py --mark-failure`
- or `python3 scripts/update_lib auto-mark Lib/test/test_<module>/ --mark-failure`

Note: `--mark-failure` marks all current failures including regressions; review carefully.

5. Handle panics manually:

- For tests that panic/crash/hang, use `@unittest.skip("TODO: RUSTPYTHON; ...")` rather than expectedFailure.

6. Handle class-specific failures:

- If only one subclass fails (for example `TestCFoo` but not `TestPyFoo`), move marker to the failing subclass override.

7. Commit test-fix markers as a separate commit:

```shell
git add -u && git commit -m "Mark failing tests"
```

## Example usage

```text
upgrade-pylib inspect
upgrade-pylib json
upgrade-pylib asyncio
upgrade-pylib cpython/Lib/inspect.py
upgrade-pylib cpython/Lib/json/
```

## Notes

- The `cpython/` directory should contain the CPython source used for sync.
- `scripts/update_lib` modes:
- `quick`: patch + auto-mark
- `migrate`: patch only
- `auto-mark`: mark failures only
- `copy-lib`: copy library files only
- Patching transfers `@unittest.expectedFailure` and `@unittest.skip` with `TODO: RUSTPYTHON` markers where possible.
- The tool does not preserve every RustPython-specific change; always review and restore explicit RUSTPYTHON-marked logic.
13 changes: 13 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,16 @@ rustflags = "-C link-args=-Wl,--stack,8000000"

[target.wasm32-unknown-unknown]
rustflags = ["--cfg=getrandom_backend=\"wasm_js\""]

# Enforce a 1 MB stack limit for WASI targets.
# (Runaway heap growth is fixed by the smaller DataStack chunk
# and the size‑optimized wasm‑release profile.)
[target.wasm32-wasip1]
rustflags = [
"-C", "link-arg=-zstack-size=1048576",
]

[target.wasm32-wasip2]
rustflags = [
"-C", "link-arg=-zstack-size=1048576",
]
49 changes: 0 additions & 49 deletions .claude/commands/investigate-test-failure.md

This file was deleted.

Loading
Loading