GeezerVison is showing github.com — Sync canonical Python 3.15 gated test sources and Lib metadata by youknowdot · Pull Request #9369 · RustPython/RustPython
Conversation
Summary
Split the canonical interpreter-test source distribution and small Lib source/metadata cleanups out of #8954. This is source synchronization, not interpreter lifecycle support or runtime validation.
-
Sync test_interpreters and _crossinterp_definitions.py, plus the comment-only test.support.channels update.
-
Bring three production comment-only changes (asyncio.staggered, urllib.error, wsgiref.handlers) and the site-packages/README.txt packaging file to canonical source.
-
Remove the unused pickletools doctest checker, preserving the existing expectedFailure forwarding override (decorator, method, and return). Existing doctest selection is unchanged.
-
Restore canonical executable metadata for test_uuid.py; its bytes are unchanged.
-
Sync canonical opcache, remote-pdb, Android and type-cache test sources under their existing gates; remove the already unconditionally skipped obsolete IMDb test and narrow the existing ctypes GNU IFUNC predicate to exclude parisc.
-
Relocate the picklebuffer marker reason through the official updater only, preserving its existing expectedFailure, identical reason, and complete AST.
Provenance and activation boundary
Canonical source: CPython d220409a13b77de7a6c30abe16ea90db01528edc, through narrowly targeted scripts/update_lib migration/copy operations. All 23 paths have canonical bytes and modes except the intentionally retained, pre-existing pickletools forwarding override and picklebuffer expectedFailure/reason adaptation. UUID is a metadata-only correction.
The upstream test_interpreters package already raises SkipTest("GIL disabled") before its load_tests hook or submodule imports. Current bundled Linux/macOS and Windows sysconfig providers report Py_GIL_DISABLED=1; the existing regrtest selection treats this as a package, so that canonical gate precedes the newly distributed tests. No skip, runner, workflow, or native implementation is added or changed. Custom sysconfig overrides or future configuration changes may alter that gate; this is a static source/CI audit, not an executed skip claim.
Deliberately excluded: standalone test__interpreters.py and test__interpchannels.py (would activate low-level lifecycle tests), test_crossinterp.py (requires unavailable fixture functionality), and the production _queues.py eager-pickle-import change. No fixture activation or recreation of #9143.
The additional test-source gates are unchanged: opcache skips non-CPython before fixture use; remote-pdb skips when sys.is_remote_debug_enabled() is false (constant false in the current VM); Android skips non-Android before its new API-level lookup; type-cache skips when _testcapi is absent, before fixture dereferences. _testinternalcapi exists and is distinct from the absent _testcapi; supplying an incomplete external _testcapi changes that boundary. The later cpython_only decorators do not protect those earlier dereferences.
These files are not import-inert: ordinary imports precede the gates. In particular, remote-pdb imports pdb/threading/optional pty, pdb tracing may open a file when PYREPL_TRACE is configured (not set by current CI), and existing Windows support imports may load kernel32. No pre-gate remote-debug operation or process/thread/pty startup was found. The static gate audit applies to current supported CI configurations, not arbitrary custom configurations, Android runtime correctness, or new feature support.
Validation
- Normal affected-file hooks passed, including merge-conflict checks, Ruff format/check and redundant-test-patch checks; normal commit hooks passed again.
- Host CPython syntax compilation of the 22 Python sources, without executing them, importing project modules, or emitting bytecode files.
cargo check --locked --offline --bin rustpython — passed.
cargo check --locked --offline --features freeze-stdlib --bin rustpython — passed.
Both final23 compile-only checks used the same independently reviewed full-source/tool/config binding and bounded single-job guard. Source, modes, tools and protected artifacts remained unchanged; no child processes remained afterward. No RustPython runtime, lifecycle, GC, threading, stress, or fixture tests were run. This draft does not claim those capabilities work.
Assisted by OpenAI Codex (model version unavailable).
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Assisted-by: OpenAI Codex: model version unavailable
coderabbitai
Bot
commented
Oct 25, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Important
Review skipped
Review was skipped due to path filters
⛔ Files ignored due to path filters: 23
-
Lib/asyncio/staggered.py is excluded by !Lib/**
Lib/site-packages/README.txt is excluded by !Lib/**
Lib/test/_crossinterp_definitions.py is excluded by !Lib/**
Lib/test/support/channels.py is excluded by !Lib/**
Lib/test/test_android.py is excluded by !Lib/**
Lib/test/test_ctypes/test_dlerror.py is excluded by !Lib/**
Lib/test/test_interpreters/__init__.py is excluded by !Lib/**
Lib/test/test_interpreters/__main__.py is excluded by !Lib/**
Lib/test/test_interpreters/test_api.py is excluded by !Lib/**
Lib/test/test_interpreters/test_channels.py is excluded by !Lib/**
Lib/test/test_interpreters/test_lifecycle.py is excluded by !Lib/**
Lib/test/test_interpreters/test_queues.py is excluded by !Lib/**
Lib/test/test_interpreters/test_stress.py is excluded by !Lib/**
Lib/test/test_interpreters/utils.py is excluded by !Lib/**
Lib/test/test_opcache.py is excluded by !Lib/**
Lib/test/test_picklebuffer.py is excluded by !Lib/**
Lib/test/test_pickletools.py is excluded by !Lib/**
Lib/test/test_remote_pdb.py is excluded by !Lib/**
Lib/test/test_type_cache.py is excluded by !Lib/**
Lib/test/test_urllib2net.py is excluded by !Lib/**
Lib/test/test_uuid.py is excluded by !Lib/**
Lib/urllib/error.py is excluded by !Lib/**
Lib/wsgiref/handlers.py is excluded by !Lib/**
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.
Run configuration
-
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
-
Comment @coderabbitai help to get the list of available commands.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
📦 Library Dependencies
The following Lib/ modules were modified. Here are their dependencies:
[x] lib: cpython/Lib/pickle.py
[ ] lib: cpython/Lib/_compat_pickle.py
[x] test: cpython/Lib/test/picklecommon.py
[ ] test: cpython/Lib/test/test_pickle.py (TODO: 5)
[x] test: cpython/Lib/test/test_picklebuffer.py (TODO: 1)
[ ] test: cpython/Lib/test/test_pickletools.py (TODO: 1)
[x] test: cpython/Lib/test/test_xpickle.py
[x] test: cpython/Lib/test/xpickle_worker.py
dependencies:
- pickle (native: _pickle, itertools, sys)
- _compat_pickle
- _compat_pickle
- io (native: _io, _thread, errno, msvcrt, sys)
- argparse, codecs, copyreg, functools, pprint, struct, types
dependent tests: (100 tests)
- pickle: test_annotationlib test_argparse test_array test_ast test_asyncio test_bool test_builtin test_bytes test_bz2 test_codecs test_collections test_concurrent_futures test_configparser test_coroutines test_csv test_ctypes test_decimal test_defaultdict test_deque test_descr test_dict test_dictviews test_email test_enum test_enumerate test_exceptions test_external_inspection test_fractions test_functools test_generators test_genericalias test_genericpath test_http_cookies test_importlib test_inspect test_interpreters test_io test_ipaddress test_iter test_itertools test_json test_list test_logging test_lzma test_memoryview test_minidom test_opcache test_operator test_ordered_dict test_os test_pathlib test_pickle test_picklebuffer test_pickletools test_platform test_plistlib test_positional_only_arg test_random test_range test_re test_set test_shelve test_slice test_socket test_statistics test_str test_string test_structseq test_super test_time test_trace test_tuple test_turtle test_type_aliases test_type_params test_types test_typing test_unittest test_urlparse test_uuid test_xml_dom_minicompat test_xml_etree test_xpickle test_zipfile test_zlib test_zoneinfo
- logging: test_asyncio test_concurrent_futures test_hashlib test_pkgutil test_support test_urllib2net
- asyncio.futures: test_asyncio
- http.cookiejar: test_http_cookiejar test_urllib2
- multiprocessing.util: test_asyncio test_compileall test_concurrent_futures
- venv: test_venv
- tracemalloc: test_tracemalloc
[x] test: cpython/Lib/test/test_android.py
dependencies:
dependent tests: (no tests depend on android)
[ ] lib: cpython/Lib/profiling
[ ] test: cpython/Lib/test/test_profiling
dependencies:
- profiling (native: main, _child_monitor, _css_utils, _format_utils, _lsprof, _remote_debugging, binary_collector, binary_reader, cli, collector, constants, display, dump, errors, gecko_collector, heatmap_collector, importlib.machinery, importlib.resources, importlib.util, itertools, jsonl_collector, live_collector, marshal, math, module_utils, opcode_utils, profiling.tracing, profiling.tracing._utils, pstats_collector, sample, stack_collector, string_table, sys, time, trend_tracker, widgets)
- curses (native: _curses, _curses_panel, curses.ascii, has_key, sys)
- opcode (native: _opcode, builtins)
- platform (native: _wmi, itertools, sys, vms_lib, winreg)
- site (native: _io, _pyrepl.main, _pyrepl.pager, _pyrepl.readline, _pyrepl.unix_console, _pyrepl.windows_console, atexit, builtins, errno, readline, sitecustomize, sys, usercustomize)
- sysconfig (native: _sysconfig, _winapi, importlib.machinery, importlib.util, os.path, sys)
- io
- _colorize, abc, argparse, base64, collections, contextlib, dataclasses, functools, html, json, linecache, locale, optparse, os, pathlib, pstats, re, runpy, selectors, socket, statistics, subprocess, tempfile, threading, traceback, types, typing, uuid, webbrowser
dependent tests: (3 tests)
- profiling: test_profiling
- cProfile: test_cprofile test_pstats
[x] lib: cpython/Lib/urllib
[x] test: cpython/Lib/test/test_urllib.py
[x] test: cpython/Lib/test/test_urllib2.py
[x] test: cpython/Lib/test/test_urllib2_localnet.py
[x] test: cpython/Lib/test/test_urllib2net.py
[x] test: cpython/Lib/test/test_urllibnet.py
[x] test: cpython/Lib/test/test_urlparse.py
[x] test: cpython/Lib/test/test_urllib_response.py
[x] test: cpython/Lib/test/test_robotparser.py
dependencies:
dependent tests: (107 tests)
- urllib: test_genericalias test_http_cookiejar test_http_cookies test_httpservers test_logging test_pathlib test_pydoc test_robotparser test_sax test_site test_sqlite3 test_ssl test_ucn test_urllib test_urllib2 test_urllib2_localnet test_urllib2net test_urllib_response test_urllibnet test_urlparse
- email.utils: test_email test_smtplib
- http.server: test_xmlrpc
- logging.handlers: test_concurrent_futures test_pkgutil
- smtplib: test_smtpnet
- http: test_docxmlrpc test_hashlib test_httplib test_unicodedata test_wsgiref test_xml_dom_xmlbuilder
- mimetypes: test_mimetypes
- pathlib: test_ast test_dbm_sqlite3 test_ensurepip test_importlib test_json test_launcher test_netrc test_os test_pathlib test_peg_generator test_profiling test_pyrepl test_runpy test_tarfile test_tempfile test_tomllib test_tools test_traceback test_unparse test_venv test_winapi test_zipapp test_zipfile test_zoneinfo test_zstd
- compileall: test_compileall
- importlib: test_asdl_parser test_bdb test_cmd_line_script test_codecs test_ctypes test_doctest test_external_inspection test_frozen test_importlib test_inspect test_interpreters test_linecache test_modulefinder test_multiprocessing_main_handling test_py_compile test_pyclbr test_pyrepl test_reprlib test_sundry test_support test_unittest test_zipfile test_zipimport test_zoneinfo
- profiling.sampling.heatmap_collector: test_profiling
- traceback: test_asyncio test_builtin test_code_module test_concurrent_futures test_contextlib test_contextlib_async test_coroutines test_dictcomps test_exceptions test_iter test_listcomps test_pyexpat test_setcomps test_socket test_subprocess test_sys test_threadedtempfile test_threading test_unittest test_with
- zipapp: test_pdb
- pydoc:
[x] lib: cpython/Lib/ctypes
[ ] test: cpython/Lib/test/test_ctypes (TODO: 8)
[ ] test: cpython/Lib/test/test_stable_abi_ctypes.py
dependencies:
dependent tests: (37 tests)
- ctypes: test_android test_buffer test_bytes test_code test_codecs test_ctypes test_genericalias test_ntpath test_os test_ssl test_venv
- platform: test__locale test__osx_support test_asyncio test_baseexception test_builtin test_calendar test_cmath test_fcntl test_math test_mimetypes test_os test_platform test_regrtest test_shutil test_socket test_strptime test_sysconfig test_time test_tkinter test_winreg test_wsgiref
- profiling.sampling.gecko_collector: test_profiling
- profiling.sampling.heatmap_collector: test_profiling
- pydoc: test_enum test_pydoc
- webbrowser: test_webbrowser
[x] test: cpython/Lib/test/test_type_cache.py
dependencies:
dependent tests: (no tests depend on type_cache)
[x] lib: cpython/Lib/wsgiref
[x] test: cpython/Lib/test/test_wsgiref.py
dependencies:
dependent tests: (1 tests)
[x] test: cpython/Lib/test/test_opcache.py
dependencies:
dependent tests: (no tests depend on opcache)
[x] lib: cpython/Lib/asyncio
[ ] test: cpython/Lib/test/test_asyncio (TODO: 3)
dependencies:
dependent tests: (9 tests)
- asyncio: test_asyncio test_concurrent_futures test_external_inspection test_inspect test_logging test_os test_pdb test_unittest
[ ] lib: cpython/Lib/concurrent
[x] test: cpython/Lib/test/test_concurrent_futures (TODO: 1)
[x] test: cpython/Lib/test/test_interpreters
[ ] test: cpython/Lib/test/test__interpreters.py
[ ] test: cpython/Lib/test/test__interpchannels.py
[ ] test: cpython/Lib/test/test_crossinterp.py
dependencies:
- concurrent (native: _crossinterp, _interpqueues, _interpreters, _queues, concurrent.futures, concurrent.futures._base, interpreter, itertools, multiprocessing.connection, multiprocessing.queues, multiprocessing.synchronize, process, sys, thread, time)
- collections, functools, logging, multiprocessing, os, queue, threading, traceback, types, weakref
dependent tests: (19 tests)
- concurrent: test_asyncio test_compileall test_concurrent_futures test_context test_external_inspection test_genericalias test_inspect test_interpreters test_struct test_sys test_threading test_types test_wmi
- asyncio: test_asyncio test_logging test_os test_pdb test_unittest
[x] test: cpython/Lib/test/test_remote_pdb.py
dependencies:
dependent tests: (no tests depend on remote_pdb)
[x] lib: cpython/Lib/uuid.py
[x] test: cpython/Lib/test/test_uuid.py
dependencies:
dependent tests: (3 tests)
- uuid: test_os
- profiling.sampling.jsonl_collector: test_profiling
- wave: test_wave
Legend:
[+] path exists in CPython
[x] up-to-date, [ ] outdated
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Codex Review Summary
This comment shows the latest Codex review activity on this pull request.
| Review |
Status |
Commit |
Review trigger |
| 📝 Code Review |
⚠️ Failed 2026-10-26T01:13:26.496873Z We couldn’t complete this review. Comment @codex review to try again. |
6d71469 |
Draft marked ready |
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review" or "@codex security review".
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|