From b3899e8fada3079a0495667c87a3721f785ec184 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 6 Aug 2025 20:31:24 +0100 Subject: [PATCH 01/15] Introduce a structure for .github/CODEOWNERS --- .github/CODEOWNERS | 752 +++++++++++++++++++++++++++++---------------- 1 file changed, 483 insertions(+), 269 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 57022de2b0e5ca..a22c7757767709 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,379 +3,593 @@ # It uses the same pattern rule for gitignore file # https://git-scm.com/docs/gitignore#_pattern_format +# Notably, a later match overrides earlier matches, so order matters. +# If using a wildcard pattern, try to be as specific as possible to avoid +# matching unintended files or overriding previous entries. +# To exclude a file from ownership, add a line with only the file. +# See the exclusions section at the end of the file for examples. + +# ========= +# Structure +# ========= +# +# The CODEOWNERS file is organised by topic area. +# Please add new entries in alphabetical order within the relevant section. +# Top-level sections are: +# +# * Buildbots, Continuous Integration, and Testing +# * Build System +# * Interpreter Core +# * Documentation +# * Other / Misc (Tools, Programs, Integration, etc) +# * Platform Support +# * Standard Library + +# ---------------------------------------------------------------------------- +# Buildbots, Continuous Integration, and Testing +# ---------------------------------------------------------------------------- # Azure Pipelines .azure-pipelines/ @AA-Turner # GitHub & related scripts -.github/** @ezio-melotti @hugovk @AA-Turner +.github/ @ezio-melotti @hugovk @AA-Turner Tools/build/compute-changes.py @AA-Turner -Tools/build/verify_ensurepip_wheels.py @AA-Turner +Tools/build/verify_ensurepip_wheels.py @AA-Turner @pfmoore @pradyunsg # pre-commit .pre-commit-config.yaml @hugovk .ruff.toml @hugovk @AlexWaygood @AA-Turner -# Build system (autotools) +# Patchcheck +Tools/patchcheck/ @AA-Turner + +# ---------------------------------------------------------------------------- +# Build System +# ---------------------------------------------------------------------------- + +# autotools configure* @erlend-aasland @corona10 @AA-Turner Makefile.pre.in @erlend-aasland @AA-Turner Modules/Setup* @erlend-aasland @AA-Turner Tools/build/regen-configure.sh @AA-Turner -# argparse -**/*argparse* @savannahostrowski - -# asyncio -**/*asyncio* @1st1 @asvetlov @kumaraditya303 @willingc +# ---------------------------------------------------------------------------- +# Interpreter Core +# ---------------------------------------------------------------------------- -# Core -**/*context* @1st1 +# Built-in types +Objects/call.c @markshannon +Objects/codeobject.c @markshannon +Objects/dict* @methane @markshannon +Objects/frameobject.c @markshannon **/*genobject* @markshannon -**/*hamt* @1st1 -**/*jit* @brandtbucher @savannahostrowski @diegorusso -Python/perf_jit_trampoline.c # Exclude the owners of "**/*jit*", above. +Objects/object.c @ZeroIntensity Objects/set* @rhettinger -Objects/dict* @methane @markshannon +Objects/type* @markshannon Objects/typevarobject.c @JelleZijlstra Objects/unionobject.c @JelleZijlstra -Objects/type* @markshannon -Objects/codeobject.c @markshannon -Objects/frameobject.c @markshannon -Objects/call.c @markshannon -Objects/object.c @ZeroIntensity -Python/ceval*.c @markshannon -Python/ceval*.h @markshannon + +# Byte code interpreter ('the eval loop') +Python/bytecodes.c @markshannon +Python/ceval* @markshannon +Tools/cases_generator/ @markshannon + +# Compiler (AST to byte code) +Python/assemble.c @markshannon @iritkatriel Python/codegen.c @markshannon @iritkatriel Python/compile.c @markshannon @iritkatriel -Python/assemble.c @markshannon @iritkatriel Python/flowgraph.c @markshannon @iritkatriel Python/instruction_sequence.c @iritkatriel -Python/bytecodes.c @markshannon -Python/optimizer*.c @markshannon -Python/optimizer_analysis.c @Fidget-Spinner @tomasr8 -Python/optimizer_bytecodes.c @Fidget-Spinner @tomasr8 -Python/optimizer_symbols.c @tomasr8 Python/symtable.c @JelleZijlstra @carljm -Lib/_pyrepl/* @pablogsal @lysnikolaou @ambv -Lib/test/test_patma.py @brandtbucher -Lib/test/test_type_*.py @JelleZijlstra -Lib/test/test_capi/test_misc.py @markshannon -Lib/test/test_pyrepl/* @pablogsal @lysnikolaou @ambv -Tools/c-analyzer/ @ericsnowcurrently -# dbm -**/*dbm* @corona10 @erlend-aasland @serhiy-storchaka +# Core Modules +**/*bltinmodule* @ericsnowcurrently +**/*sysmodule* @ericsnowcurrently -# Doc/ tools -Doc/conf.py @AA-Turner @hugovk -Doc/Makefile @AA-Turner @hugovk -Doc/make.bat @AA-Turner @hugovk -Doc/requirements.txt @AA-Turner @hugovk -Doc/_static/** @AA-Turner @hugovk -Doc/tools/** @AA-Turner @hugovk -.readthedocs.yml @AA-Turner +# AST +Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Lib/ast.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Lib/test/test_ast/ @eclips4 @tomasr8 +Parser/asdl.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8 +Python/ast_preprocess.c @isidentical @eclips4 @tomasr8 -# runtime state/lifecycle -**/*pylifecycle* @ericsnowcurrently @ZeroIntensity -**/*pystate* @ericsnowcurrently @ZeroIntensity -**/*preconfig* @ericsnowcurrently +# Context variables & HAMT +**/contextvars* @1st1 +**/*hamt* @1st1 +Include/cpython/context.h @1st1 +Include/internal/pycore_context.h @1st1 +Lib/test/test_context.py @1st1 +Python/context.c @1st1 + +# Exceptions +Lib/test/test_except*.py @iritkatriel +Objects/exceptions.c @iritkatriel + +# getpath +Lib/test/test_getpath.py @FFY00 +Modules/getpath* @FFY00 + +# The import system (including importlib) +**/*import* @brettcannon @ericsnowcurrently @ncoghlan @warsaw +Python/import.c @brettcannon @ericsnowcurrently @ncoghlan @warsaw @kumaraditya303 +**/*freeze* @ericsnowcurrently +**/*frozen* @ericsnowcurrently +**/*modsupport* @ericsnowcurrently +**/*modulefinder* @ericsnowcurrently +**/*moduleobject* @ericsnowcurrently +**/*multiphase* @ericsnowcurrently +**/*pkgutil* @ericsnowcurrently +**/*pythonrun* @ericsnowcurrently +**/*runpy* @ericsnowcurrently +**/*singlephase* @ericsnowcurrently +Doc/c-api/module.rst @ericsnowcurrently +Lib/test/test_module/ @ericsnowcurrently +Python/dynload_*.c @ericsnowcurrently + +# Initialisation **/*initconfig* @ericsnowcurrently **/*pathconfig* @ericsnowcurrently -**/*sysmodule* @ericsnowcurrently -**/*bltinmodule* @ericsnowcurrently +**/*preconfig* @ericsnowcurrently +Doc/library/sys_path_init.rst @FFY00 +Doc/c-api/init_config.rst @FFY00 + +# Interpreter main program +Modules/main.c @ericsnowcurrently +Programs/_bootstrap_python.c @ericsnowcurrently +Programs/python.c @ericsnowcurrently + +# JIT +Include/internal/pycore_jit.h @brandtbucher @savannahostrowski @diegorusso +Python/jit.c @brandtbucher @savannahostrowski @diegorusso +Tools/jit/ @brandtbucher @savannahostrowski @diegorusso + +# Micro-op / μop / Tier 2 Optimiser +Python/optimizer.c @markshannon +Python/optimizer_analysis.c @markshannon @Fidget-Spinner @tomasr8 +Python/optimizer_bytecodes.c @markshannon @Fidget-Spinner @tomasr8 +Python/optimizer_symbols.c @markshannon @tomasr8 + +# Parser, Lexer, and Grammar +Grammar/python.gram @pablogsal @lysnikolaou +Lib/test/test_peg_generator/ @pablogsal @lysnikolaou +Lib/test/test_tokenize.py @pablogsal @lysnikolaou +Lib/tokenize.py @pablogsal @lysnikolaou +Parser/ @pablogsal @lysnikolaou +Tools/peg_generator/ @pablogsal @lysnikolaou + +# Runtime state/lifecycle **/*gil* @ericsnowcurrently -Include/internal/pycore_runtime.h @ericsnowcurrently -Include/internal/pycore_interp.h @ericsnowcurrently -Include/internal/pycore_tstate.h @ericsnowcurrently -Include/internal/pycore_*_state.h @ericsnowcurrently +**/*pylifecycle* @ericsnowcurrently @ZeroIntensity +**/*pystate* @ericsnowcurrently @ZeroIntensity Include/internal/pycore_*_init.h @ericsnowcurrently +Include/internal/pycore_*_state.h @ericsnowcurrently Include/internal/pycore_atexit.h @ericsnowcurrently Include/internal/pycore_freelist.h @ericsnowcurrently Include/internal/pycore_global_objects.h @ericsnowcurrently +Include/internal/pycore_interp.h @ericsnowcurrently Include/internal/pycore_obmalloc.h @ericsnowcurrently Include/internal/pycore_pymem.h @ericsnowcurrently +Include/internal/pycore_runtime.h @ericsnowcurrently Include/internal/pycore_stackref.h @Fidget-Spinner -Modules/main.c @ericsnowcurrently -Programs/_bootstrap_python.c @ericsnowcurrently -Programs/python.c @ericsnowcurrently +Include/internal/pycore_tstate.h @ericsnowcurrently Tools/build/generate_global_objects.py @ericsnowcurrently -# Initialization -Doc/library/sys_path_init.rst @FFY00 -Doc/c-api/init_config.rst @FFY00 +# Remote Debugging +Python/remote_debug.h @pablogsal +Python/remote_debugging.c @pablogsal +Modules/_remote_debugging_module.c @pablogsal @ambv @1st1 -# getpath -**/*getpath* @FFY00 +# Sub-Interpreters +**/*crossinterp* @ericsnowcurrently +**/*interpreteridobject.* @ericsnowcurrently +Doc/library/concurrent.interpreters.rst @ericsnowcurrently +Lib/concurrent/futures/interpreter.py @ericsnowcurrently +Lib/concurrent/interpreters/ @ericsnowcurrently +Lib/test/support/channels.py @ericsnowcurrently +Lib/test/test__interp*.py @ericsnowcurrently +Lib/test/test_interpreters/ @ericsnowcurrently +Modules/_interp*module.c @ericsnowcurrently -# site -**/*site.py @FFY00 -Doc/library/site.rst @FFY00 +# Template string literals (t-strings) +Lib/test/test_tstring.py @lysnikolaou +Objects/interpolationobject.c @lysnikolaou +Objects/templateobject.c @lysnikolaou -# Exceptions -Lib/test/test_except*.py @iritkatriel -Objects/exceptions.c @iritkatriel +# Tests +Lib/test/test_patma.py @brandtbucher +Lib/test/test_type_*.py @JelleZijlstra +Lib/test/test_capi/test_misc.py @markshannon + + +# ---------------------------------------------------------------------------- +# Documentation +# ---------------------------------------------------------------------------- + +# Internal Docs +InternalDocs/ @AA-Turner +InternalDocs/asyncio.md @1st1 @asvetlov @kumaraditya303 @willingc @AA-Turner +InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner + +# Tools, Configuration, etc +Doc/Makefile @AA-Turner @hugovk +Doc/_static/ @AA-Turner @hugovk +Doc/conf.py @AA-Turner @hugovk +Doc/make.bat @AA-Turner @hugovk +Doc/requirements.txt @AA-Turner @hugovk +Doc/tools/ @AA-Turner @hugovk + +# PR Previews +.readthedocs.yml @AA-Turner + +# Sections +Doc/reference/ @willingc @AA-Turner +Doc/whatsnew/ @AA-Turner + + +# ---------------------------------------------------------------------------- +# Other / Misc (Tools, Programs, Integration, etc) +# ---------------------------------------------------------------------------- + +# Argument Clinic +Tools/clinic/ @erlend-aasland @AA-Turner +Lib/test/test_clinic.py @erlend-aasland @AA-Turner +Doc/howto/clinic.rst @erlend-aasland @AA-Turner + +# C Analyser +Tools/c-analyzer/ @ericsnowcurrently + +# Fuzzing +Modules/_xxtestfuzz/ @ammaraskar -# Hashing & cryptographic primitives +# Hashing & Cryptographic Primitives **/*hashlib* @gpshead @tiran @picnixz **/*hashopenssl* @gpshead @tiran @picnixz +**/*hmac* @gpshead @picnixz **/*pyhash* @gpshead @tiran @picnixz +Modules/_hacl/ @gpshead @picnixz Modules/*blake* @gpshead @tiran @picnixz Modules/*md5* @gpshead @tiran @picnixz Modules/*sha* @gpshead @tiran @picnixz -Modules/_hacl/** @gpshead @picnixz -**/*hmac* @gpshead @picnixz -# libssl +# IDLE +Doc/library/idle.rst @terryjreedy +Lib/idlelib/ @terryjreedy +Lib/turtledemo/ @terryjreedy + +# Limited C API & stable ABI +Doc/c-api/stable.rst @encukou +Doc/data/*.abi @encukou +Misc/stable_abi.toml @encukou +Tools/build/stable_abi.py @encukou + +# SBOM +Misc/externals.spdx.json @sethmlarson +Misc/sbom.spdx.json @sethmlarson +Tools/build/generate_sbom.py @sethmlarson + +# Libssl / TLS **/*ssl* @gpshead @picnixz -# logging -**/*logging* @vsajip -# venv -**/*venv* @vsajip @FFY00 +# ---------------------------------------------------------------------------- +# Platform Support +# ---------------------------------------------------------------------------- -# Launcher -/PC/launcher.c @vsajip +# Android +Android/ @mhsmith @freakboy3742 +Doc/using/android.rst @mhsmith @freakboy3742 +Lib/_android_support.py @mhsmith @freakboy3742 +Lib/test/test_android.py @mhsmith @freakboy3742 -# HTML -/Lib/html/ @ezio-melotti -/Lib/_markupbase.py @ezio-melotti -/Lib/test/test_html*.py @ezio-melotti -/Tools/build/parse_html5_entities.py @ezio-melotti +# iOS +Doc/using/ios.rst @freakboy3742 +Lib/_ios_support.py @freakboy3742 +iOS/ @freakboy3742 -# Import (including importlib). -**/*import* @brettcannon @ericsnowcurrently @ncoghlan @warsaw -/Python/import.c @kumaraditya303 -Python/dynload_*.c @ericsnowcurrently -**/*freeze* @ericsnowcurrently -**/*frozen* @ericsnowcurrently -**/*modsupport* @ericsnowcurrently -**/*modulefinder* @ericsnowcurrently -**/*moduleobject* @ericsnowcurrently -**/*multiphase* @ericsnowcurrently -**/*pkgutil* @ericsnowcurrently -**/*pythonrun* @ericsnowcurrently -**/*runpy* @ericsnowcurrently -**/*singlephase* @ericsnowcurrently -Lib/test/test_module/ @ericsnowcurrently -Doc/c-api/module.rst @ericsnowcurrently -**/*importlib/resources/* @jaraco @warsaw @FFY00 -**/*importlib/metadata/* @jaraco @warsaw +# macOS +Mac/ @python/macos-team +Lib/_osx_support.py @python/macos-team +Lib/test/test__osx_support.py @python/macos-team -# Calendar -Lib/calendar.py @AA-Turner -Lib/test/test_calendar.py @AA-Turner +# Windows +PC/ @python/windows-team +PCbuild/ @python/windows-team -# Dates and times -**/*datetime* @pganssle @abalkin -**/*str*time* @pganssle @abalkin -Doc/library/time.rst @pganssle @abalkin -Lib/test/test_time.py @pganssle @abalkin -Modules/timemodule.c @pganssle @abalkin -Python/pytime.c @pganssle @abalkin -Include/internal/pycore_time.h @pganssle @abalkin +# Windows Launcher +PC/launcher.c @python/windows-team @vsajip -# Email and related -**/*mail* @python/email-team -**/*smtp* @python/email-team -**/*mime* @python/email-team -**/*imap* @python/email-team -**/*poplib* @python/email-team +# Windows installer packages +Tools/msi/ @python/windows-team +Tools/nuget/ @python/windows-team -# Exclude .mailmap from being owned by @python/email-team -/.mailmap +# WebAssembly +Tools/wasm/README.md @brettcannon @freakboy3742 -# Garbage collector -/Modules/gcmodule.c @pablogsal -/Doc/library/gc.rst @pablogsal +# WebAssembly (Emscripten) +Tools/wasm/config.site-wasm32-emscripten @freakboy3742 +Tools/wasm/emscripten @freakboy3742 -# Parser -/Parser/ @pablogsal @lysnikolaou -/Tools/peg_generator/ @pablogsal @lysnikolaou -/Lib/test/test_peg_generator/ @pablogsal @lysnikolaou -/Grammar/python.gram @pablogsal @lysnikolaou -/Lib/tokenize.py @pablogsal @lysnikolaou -/Lib/test/test_tokenize.py @pablogsal @lysnikolaou +# WebAssembly (WASI) +Tools/wasm/wasi-env @brettcannon +Tools/wasm/wasi.py @brettcannon +Tools/wasm/wasi @brettcannon -# Code generator -/Tools/cases_generator/ @markshannon -# AST -Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8 -Python/ast_preprocess.c @isidentical @eclips4 @tomasr8 -Parser/asdl.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Lib/ast.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Lib/test/test_ast/ @eclips4 @tomasr8 +# ---------------------------------------------------------------------------- +# Standard Library +# ---------------------------------------------------------------------------- -# Mock -/Lib/unittest/mock.py @cjw296 -/Lib/test/test_unittest/testmock/* @cjw296 +# Annotationlib +Doc/library/annotationlib.rst @JelleZijlstra +Lib/annotationlib.py @JelleZijlstra +Lib/test/test_annotationlib.py @JelleZijlstra -# multiprocessing -**/*multiprocessing* @gpshead +# Argparse +Doc/**/argparse*.rst @savannahostrowski +Lib/argparse.py @savannahostrowski +Lib/test/test_argparse.py @savannahostrowski -# pydoc -Lib/pydoc.py @AA-Turner -Lib/pydoc_data/ @AA-Turner -Lib/test/test_pydoc/ @AA-Turner +# Asyncio +Doc/library/asyncio*.rst @1st1 @asvetlov @kumaraditya303 @willingc +Lib/asyncio/ @1st1 @asvetlov @kumaraditya303 @willingc +Lib/test/test_asyncio/ @1st1 @asvetlov @kumaraditya303 @willingc +Modules/_asynciomodule.c @1st1 @asvetlov @kumaraditya303 @willingc -# SQLite 3 -**/*sqlite* @berkerpeksag @erlend-aasland +# Bisect +Doc/library/bisect.rst @rhettinger +Lib/bisect.py @rhettinger +Lib/test/test_bisect.py @rhettinger +Modules/_bisectmodule.c @rhettinger -# subprocess -/Lib/subprocess.py @gpshead -/Lib/test/test_subprocess.py @gpshead -/Modules/*subprocess* @gpshead +# Calendar +Lib/calendar.py @AA-Turner +Lib/test/test_calendar.py @AA-Turner -# debugger -**/*pdb* @gaogaotiantian -**/*bdb* @gaogaotiantian +# Codecs +Modules/cjkcodecs/ @corona10 +Tools/unicode/gencjkcodecs.py @corona10 -# types -Lib/test/test_types.py @AA-Turner -Lib/types.py @AA-Turner -Modules/_typesmodule.c @AA-Turner +# Collections +Doc/library/collections.abc.rst @rhettinger +Doc/library/collections.rst @rhettinger +Lib/_collections_abc.py @rhettinger +Lib/collections/ @rhettinger +Lib/test/test_collections.py @rhettinger +Modules/_collectionsmodule.c @rhettinger -# Limited C API & stable ABI -Tools/build/stable_abi.py @encukou -Misc/stable_abi.toml @encukou -Doc/data/*.abi @encukou -Doc/c-api/stable.rst @encukou +# Colorize +Lib/_colorize.py @hugovk +Lib/test/test__colorize.py @hugovk -# Windows -/PC/ @python/windows-team -/PCbuild/ @python/windows-team +# Config Parser +Lib/configparser.py @jaraco +Lib/test/test_configparser.py @jaraco -# Urllib -**/*robotparser* @berkerpeksag +# Dataclasses +Doc/library/dataclasses.rst @ericvsmith +Lib/dataclasses.py @ericvsmith +Lib/test/test_dataclasses/ @ericvsmith -# Windows installer packages -/Tools/msi/ @python/windows-team -/Tools/nuget/ @python/windows-team +# Dates and times +Doc/**/*time.rst @pganssle @abalkin +Include/datetime.h @pganssle @abalkin +Include/internal/pycore_time.h @pganssle @abalkin +Lib/*time.py @pganssle @abalkin +Lib/test/datetimetester.py @pganssle @abalkin +Lib/test/test_*time.py @pganssle @abalkin +Modules/*time* @pganssle @abalkin +Python/pytime.c @pganssle @abalkin -# Zstandard -Lib/compression/zstd/ @AA-Turner -Lib/test/test_zstd.py @AA-Turner -Modules/_zstd/ @AA-Turner +# Dbm +Doc/library/dbm.rst @corona10 @erlend-aasland @serhiy-storchaka +Lib/dbm/ @corona10 @erlend-aasland @serhiy-storchaka +Lib/test/test_dbm*.py @corona10 @erlend-aasland @serhiy-storchaka +Modules/*dbm* @corona10 @erlend-aasland @serhiy-storchaka -# Misc -**/*itertools* @rhettinger -**/*collections* @rhettinger -**/*random* @rhettinger -**/*bisect* @rhettinger -**/*heapq* @rhettinger -**/*functools* @rhettinger +# Email and related +**/*mail* @python/email-team +**/*smtp* @python/email-team +**/*mime* @python/email-team +**/*imap* @python/email-team +**/*poplib* @python/email-team -**/*dataclasses* @ericvsmith +# Ensurepip +Doc/library/ensurepip.rst @pfmoore @pradyunsg +Lib/ensurepip/ @pfmoore @pradyunsg +Lib/test/test_ensurepip.py @pfmoore @pradyunsg + +# Enum +Doc/howto/enum.rst @ethanfurman +Doc/library/enum.rst @ethanfurman +Lib/enum.py @ethanfurman +Lib/test/test_enum.py @ethanfurman +Lib/test/test_json/test_enum.py @ethanfurman + +# FTP +Doc/library/ftplib.rst @giampaolo +Lib/ftplib.py @giampaolo +Lib/test/test_ftplib.py @giampaolo + +# Functools +Doc/library/functools.rst @rhettinger +Lib/functools.py @rhettinger +Lib/test/test_functools.py @rhettinger +Modules/_functoolsmodule.c @rhettinger -**/*ensurepip* @pfmoore @pradyunsg +# Garbage collector +Modules/gcmodule.c @pablogsal +Doc/library/gc.rst @pablogsal -/Doc/library/idle.rst @terryjreedy -**/*idlelib* @terryjreedy -**/*turtledemo* @terryjreedy +# Gettext +Doc/library/gettext.rst @tomasr8 +Lib/gettext.py @tomasr8 +Lib/test/test_gettext.py @tomasr8 +Tools/i18n/pygettext.py @tomasr8 -**/*annotationlib* @JelleZijlstra -**/*typing* @JelleZijlstra @AlexWaygood +# Heapq +Doc/library/heapq* @rhettinger +Lib/heapq.py @rhettinger +Lib/test/test_heapq.py @rhettinger +Modules/_heapqmodule.c @rhettinger -**/*ftplib @giampaolo -**/*shutil @giampaolo +# HTML +Lib/html/ @ezio-melotti +Lib/_markupbase.py @ezio-melotti +Lib/test/test_html*.py @ezio-melotti +Tools/build/parse_html5_entities.py @ezio-melotti + +# importlib.metadata +Doc/library/importlib.metadata.rst @jaraco @warsaw +Lib/importlib/metadata/ @jaraco @warsaw +Lib/test/test_importlib/metadata/ @jaraco @warsaw + +# importlib.resources +Doc/library/importlib.resources.abc.rst @jaraco @warsaw +Doc/library/importlib.resources.rst @jaraco @warsaw +Lib/importlib/resources/ @jaraco @warsaw @FFY00 +Lib/test/test_importlib/resources/ @jaraco @warsaw @FFY00 + +# itertools +Doc/library/itertools.rst @rhettinger +Lib/test/test_itertools.py @rhettinger +Modules/itertoolsmodule.c @rhettinger -**/*enum* @ethanfurman -**/*cgi* @ethanfurman -**/*tarfile* @ethanfurman +# logging +Doc/**/logging* @vsajip +Lib/logging/ @vsajip +Lib/test/test_logging.py @vsajip -**/*tomllib* @encukou @hauntsaninja +# multiprocessing +Doc/library/multiprocessing*.rst @gpshead +Lib/multiprocessing/ @gpshead +Lib/test/*multiprocessing.py @gpshead +Lib/test/test_multiprocessing*/ @gpshead +Modules/_multiprocessing/ @gpshead -**/*sysconfig* @FFY00 +# pathlib +Doc/library/pathlib.rst @barneygale +Lib/pathlib/ @barneygale +Lib/test/test_pathlib/ @barneygale -**/*cjkcodecs* @corona10 +# pdb & bdb +Doc/library/[bp]db.rst @gaogaotiantian +Lib/[bp]db.py @gaogaotiantian +Lib/test/test_[bp]db.py @gaogaotiantian +Lib/test/test_remote_pdb.py @gaogaotiantian -# Patchcheck -Tools/patchcheck/ @AA-Turner +# Pydoc +Lib/pydoc.py @AA-Turner +Lib/pydoc_data/ @AA-Turner +Lib/test/test_pydoc/ @AA-Turner -# macOS -/Mac/ @python/macos-team -**/*osx_support* @python/macos-team +# PyREPL +Lib/_pyrepl/ @pablogsal @lysnikolaou @ambv +Lib/test/test_pyrepl/ @pablogsal @lysnikolaou @ambv -# pathlib -**/*pathlib* @barneygale +# Random +Doc/library/random.rst @rhettinger +Lib/random.py @rhettinger +Lib/test/test_random.py @rhettinger +Modules/_randommodule.c @rhettinger -# zipfile.Path -**/*zipfile/_path/* @jaraco +# Shutil +Doc/library/shutil.rst @giampaolo +Lib/shutil.py @giampaolo +Lib/test/test_shutil.py @giampaolo -# Argument Clinic -/Tools/clinic/** @erlend-aasland @AA-Turner -/Lib/test/test_clinic.py @erlend-aasland @AA-Turner -Doc/howto/clinic.rst @erlend-aasland @AA-Turner +# Site +Lib/site.py @FFY00 +Lib/test/test_site.py @FFY00 +Doc/library/site.rst @FFY00 -# Subinterpreters -**/*interpreteridobject.* @ericsnowcurrently -**/*crossinterp* @ericsnowcurrently -Modules/_interp*module.c @ericsnowcurrently -Lib/test/test__interp*.py @ericsnowcurrently -Lib/concurrent/interpreters/ @ericsnowcurrently -Lib/test/support/channels.py @ericsnowcurrently -Doc/library/concurrent.interpreters.rst @ericsnowcurrently -Lib/test/test_interpreters/ @ericsnowcurrently -Lib/concurrent/futures/interpreter.py @ericsnowcurrently +# string.templatelib +Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner +Lib/string/templatelib.py @lysnikolaou @AA-Turner +Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner -# Android -**/*Android* @mhsmith @freakboy3742 -**/*android* @mhsmith @freakboy3742 +# Sysconfig +**/*sysconfig* @FFY00 -# iOS (but not termios) -**/iOS* @freakboy3742 -**/ios* @freakboy3742 -**/*_iOS* @freakboy3742 -**/*_ios* @freakboy3742 -**/*-iOS* @freakboy3742 -**/*-ios* @freakboy3742 +# SQLite 3 +Doc/library/sqlite3.rst @berkerpeksag @erlend-aasland +Lib/sqlite3/ @berkerpeksag @erlend-aasland +Lib/test/test_sqlite3/ @berkerpeksag @erlend-aasland +Modules/_sqlite/ @berkerpeksag @erlend-aasland -# WebAssembly -Tools/wasm/config.site-wasm32-emscripten @freakboy3742 -/Tools/wasm/README.md @brettcannon @freakboy3742 -/Tools/wasm/wasi-env @brettcannon -/Tools/wasm/wasi.py @brettcannon -/Tools/wasm/emscripten @freakboy3742 -/Tools/wasm/wasi @brettcannon +# subprocess +Lib/subprocess.py @gpshead +Lib/test/test_subprocess.py @gpshead +Modules/*subprocess* @gpshead + +# Tarfile +Doc/library/tarfile.rst @ethanfurman +Lib/tarfile.py @ethanfurman +Lib/test/test_tarfile.py @ethanfurman + +# Tomllib +Doc/library/tomllib.rst @encukou @hauntsaninja +Lib/test/test_tomllib/ @encukou @hauntsaninja +Lib/tomllib/ @encukou @hauntsaninja + +# Typing +Doc/library/typing.rst @JelleZijlstra @AlexWaygood +Lib/test/test_typing.py @JelleZijlstra @AlexWaygood +Lib/test/typinganndata/ @JelleZijlstra @AlexWaygood +Lib/typing.py @JelleZijlstra @AlexWaygood +Modules/_typingmodule.c @JelleZijlstra @AlexWaygood + +# Types +Lib/test/test_types.py @AA-Turner +Lib/types.py @AA-Turner +Modules/_typesmodule.c @AA-Turner -# SBOM -/Misc/externals.spdx.json @sethmlarson -/Misc/sbom.spdx.json @sethmlarson -/Tools/build/generate_sbom.py @sethmlarson +# Unittest +Lib/unittest/mock.py @cjw296 +Lib/test/test_unittest/testmock/ @cjw296 -# Config Parser -Lib/configparser.py @jaraco -Lib/test/test_configparser.py @jaraco +# Urllib +**/*robotparser* @berkerpeksag -# Doc sections -Doc/reference/ @willingc @AA-Turner -Doc/whatsnew/ @AA-Turner +# Venv +**/*venv* @vsajip @FFY00 +# Weakref **/*weakref* @kumaraditya303 -# Colorize -Lib/_colorize.py @hugovk -Lib/test/test__colorize.py @hugovk +# Zipfile.Path +Lib/test/test_zipfile/_path/ @jaraco +Lib/zipfile/_path/ @jaraco -# Fuzzing -Modules/_xxtestfuzz/ @ammaraskar - -# t-strings -**/*interpolationobject* @lysnikolaou -**/*templateobject* @lysnikolaou -**/*templatelib* @lysnikolaou @AA-Turner -**/*tstring* @lysnikolaou +# Zstandard +Lib/compression/zstd/ @AA-Turner +Lib/test/test_zstd.py @AA-Turner +Modules/_zstd/ @AA-Turner -# Remote debugging -Python/remote_debug.h @pablogsal -Python/remote_debugging.c @pablogsal -Modules/_remote_debugging_module.c @pablogsal @ambv @1st1 +# ---------------------------------------------------------------------------- -# gettext -**/*gettext* @tomasr8 +# Exclusions from .github/CODEOWNERS should go at the very end +# because the final matching pattern will take precedence. -# Internal Docs -InternalDocs/ @AA-Turner +# Exclude .mailmap from being owned by @python/email-team +.mailmap + +# Exclude Argument Clinic directories +Modules/_ctypes/clinic/ +Modules/_io/clinic/ +Modules/_multiprocessing/clinic/ +Modules/_sqlite/clinic/ +Modules/_sre/clinic/ +Modules/_ssl/clinic/ +Modules/_testcapi/clinic/ +Modules/_testinternalcapi/clinic/ +Modules/_testlimitedcapi/clinic/ +Modules/_zstd/clinic/ +Modules/cjkcodecs/clinic/ +Modules/clinic/ +Objects/clinic/ +Objects/stringlib/clinic/ +PC/clinic/ +Python/clinic/ From eff50a07df1c067aa0b60eb9b15986b60a26165d Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 02:22:42 +0100 Subject: [PATCH 02/15] fixup! Introduce a structure for .github/CODEOWNERS --- .github/CODEOWNERS | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a22c7757767709..8cff13d6d343c4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -475,9 +475,12 @@ Lib/pathlib/ @barneygale Lib/test/test_pathlib/ @barneygale # pdb & bdb -Doc/library/[bp]db.rst @gaogaotiantian -Lib/[bp]db.py @gaogaotiantian -Lib/test/test_[bp]db.py @gaogaotiantian +Doc/library/bdb.rst @gaogaotiantian +Doc/library/pdb.rst @gaogaotiantian +Lib/bdb.py @gaogaotiantian +Lib/pdb.py @gaogaotiantian +Lib/test/test_bdb.py @gaogaotiantian +Lib/test/test_pdb.py @gaogaotiantian Lib/test/test_remote_pdb.py @gaogaotiantian # Pydoc From 7752d7c4f3e1c3cd703362edfeb12a7370945ec7 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 04:42:20 +0100 Subject: [PATCH 03/15] Update .github/CODEOWNERS Co-authored-by: Ezio Melotti --- .github/CODEOWNERS | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8cff13d6d343c4..1fb93ff2827b0a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -580,17 +580,7 @@ Modules/_zstd/ @AA-Turner .mailmap # Exclude Argument Clinic directories -Modules/_ctypes/clinic/ -Modules/_io/clinic/ -Modules/_multiprocessing/clinic/ -Modules/_sqlite/clinic/ -Modules/_sre/clinic/ -Modules/_ssl/clinic/ -Modules/_testcapi/clinic/ -Modules/_testinternalcapi/clinic/ -Modules/_testlimitedcapi/clinic/ -Modules/_zstd/clinic/ -Modules/cjkcodecs/clinic/ +Modules/**/clinic/ Modules/clinic/ Objects/clinic/ Objects/stringlib/clinic/ From 002fed42ebb65cfe11f76baf3057ad8830baa7d1 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 04:43:05 +0100 Subject: [PATCH 04/15] Update .github/CODEOWNERS Co-authored-by: Ezio Melotti --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1fb93ff2827b0a..3d6659fbc7cb73 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -436,6 +436,7 @@ Lib/test/test_heapq.py @rhettinger Modules/_heapqmodule.c @rhettinger # HTML +Doc/library/html* @ezio-melotti Lib/html/ @ezio-melotti Lib/_markupbase.py @ezio-melotti Lib/test/test_html*.py @ezio-melotti From 0d5ca3768b1b818d02040838948420eedcd67a8a Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 21:31:08 +0100 Subject: [PATCH 05/15] Alphabetical Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3d6659fbc7cb73..e17c959735ea02 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -148,8 +148,8 @@ Tools/jit/ @brandtbucher @savannahostrowski @diegorusso # Micro-op / μop / Tier 2 Optimiser Python/optimizer.c @markshannon -Python/optimizer_analysis.c @markshannon @Fidget-Spinner @tomasr8 -Python/optimizer_bytecodes.c @markshannon @Fidget-Spinner @tomasr8 +Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner +Python/optimizer_bytecodes.c @markshannon @tomasr8 @Fidget-Spinner Python/optimizer_symbols.c @markshannon @tomasr8 # Parser, Lexer, and Grammar From 9edad9c0c44e8cf67f930e8de201be69b2bb5f93 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 21:43:34 +0100 Subject: [PATCH 06/15] Review feedback --- .github/CODEOWNERS | 289 ++++++++++++++++++++++++--------------------- 1 file changed, 157 insertions(+), 132 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e17c959735ea02..c3c484e582dcd6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,5 @@ # See https://help.github.com/articles/about-codeowners/ -# for more info about CODEOWNERS file +# for further details about the .github/CODEOWNERS file. # It uses the same pattern rule for gitignore file # https://git-scm.com/docs/gitignore#_pattern_format @@ -9,21 +9,43 @@ # To exclude a file from ownership, add a line with only the file. # See the exclusions section at the end of the file for examples. +# ======= +# Purpose +# ======= +# +# An entry in this file does not imply 'ownership', despite the name of the +# file, but instead that those listed take an interest in that part of the +# project, and would like to be notified of any proposed changes to it. +# See also the Experts Index in the Python Developer's Guide: +# https://devguide.python.org/core-developers/experts/ +# # ========= # Structure # ========= # # The CODEOWNERS file is organised by topic area. # Please add new entries in alphabetical order within the relevant section. +# Where possible, keep related files together. For example, documentation, +# code, and tests for a given item should all be listed in the same place. +# # Top-level sections are: # # * Buildbots, Continuous Integration, and Testing +# e.g. project-wide configuration files, internal tools for use in CI, +# linting. # * Build System -# * Interpreter Core +# e.g. the Makefile, autoconf. # * Documentation +# broader sections of documentation, documentation tools # * Other / Misc (Tools, Programs, Integration, etc) +# internal tools, integration with external systems, +# entries that don't fit elsewhere # * Platform Support +# relating to support for specific platforms +# * Interpreter Core +# the grammar, parser, compiler, interpreter, etc # * Standard Library +# standard library modules & related files # ---------------------------------------------------------------------------- # Buildbots, Continuous Integration, and Testing @@ -44,6 +66,7 @@ Tools/build/verify_ensurepip_wheels.py @AA-Turner @pfmoore @pradyunsg # Patchcheck Tools/patchcheck/ @AA-Turner + # ---------------------------------------------------------------------------- # Build System # ---------------------------------------------------------------------------- @@ -54,6 +77,106 @@ Makefile.pre.in @erlend-aasland @AA-Turner Modules/Setup* @erlend-aasland @AA-Turner Tools/build/regen-configure.sh @AA-Turner + +# ---------------------------------------------------------------------------- +# Documentation +# ---------------------------------------------------------------------------- + +# Internal Docs +InternalDocs/ @AA-Turner + +# Tools, Configuration, etc +Doc/Makefile @AA-Turner @hugovk +Doc/_static/ @AA-Turner @hugovk +Doc/conf.py @AA-Turner @hugovk +Doc/make.bat @AA-Turner @hugovk +Doc/requirements.txt @AA-Turner @hugovk +Doc/tools/ @AA-Turner @hugovk + +# PR Previews +.readthedocs.yml @AA-Turner + +# Sections +Doc/reference/ @willingc @AA-Turner +Doc/whatsnew/ @AA-Turner + + +# ---------------------------------------------------------------------------- +# Other / Misc (Tools, Programs, Integration, etc) +# ---------------------------------------------------------------------------- + +# Argument Clinic +Tools/clinic/ @erlend-aasland @AA-Turner +Lib/test/test_clinic.py @erlend-aasland @AA-Turner +Doc/howto/clinic.rst @erlend-aasland @AA-Turner + +# C Analyser +Tools/c-analyzer/ @ericsnowcurrently + +# Fuzzing +Modules/_xxtestfuzz/ @ammaraskar + +# IDLE +Doc/library/idle.rst @terryjreedy +Lib/idlelib/ @terryjreedy +Lib/turtledemo/ @terryjreedy + +# Limited C API & stable ABI +Doc/c-api/stable.rst @encukou +Doc/data/*.abi @encukou +Misc/stable_abi.toml @encukou +Tools/build/stable_abi.py @encukou + +# SBOM +Misc/externals.spdx.json @sethmlarson +Misc/sbom.spdx.json @sethmlarson +Tools/build/generate_sbom.py @sethmlarson + + +# ---------------------------------------------------------------------------- +# Platform Support +# ---------------------------------------------------------------------------- + +# Android +Android/ @mhsmith @freakboy3742 +Doc/using/android.rst @mhsmith @freakboy3742 +Lib/_android_support.py @mhsmith @freakboy3742 +Lib/test/test_android.py @mhsmith @freakboy3742 + +# iOS +Doc/using/ios.rst @freakboy3742 +Lib/_ios_support.py @freakboy3742 +iOS/ @freakboy3742 + +# macOS +Mac/ @python/macos-team +Lib/_osx_support.py @python/macos-team +Lib/test/test__osx_support.py @python/macos-team + +# Windows +PC/ @python/windows-team +PCbuild/ @python/windows-team + +# Windows Launcher +PC/launcher.c @python/windows-team @vsajip + +# Windows installer packages +Tools/msi/ @python/windows-team +Tools/nuget/ @python/windows-team + +# WebAssembly +Tools/wasm/README.md @brettcannon @freakboy3742 + +# WebAssembly (Emscripten) +Tools/wasm/config.site-wasm32-emscripten @freakboy3742 +Tools/wasm/emscripten @freakboy3742 + +# WebAssembly (WASI) +Tools/wasm/wasi-env @brettcannon +Tools/wasm/wasi.py @brettcannon +Tools/wasm/wasi @brettcannon + + # ---------------------------------------------------------------------------- # Interpreter Core # ---------------------------------------------------------------------------- @@ -112,6 +235,12 @@ Objects/exceptions.c @iritkatriel Lib/test/test_getpath.py @FFY00 Modules/getpath* @FFY00 +# Hashing / ``hash()`` and related +Include/cpython/pyhash.h @gpshead @picnixz @tiran +Include/internal/pycore_pyhash.h @gpshead @picnixz @tiran +Include/pyhash.h @gpshead @picnixz @tiran +Python/pyhash.c @gpshead @picnixz @tiran + # The import system (including importlib) **/*import* @brettcannon @ericsnowcurrently @ncoghlan @warsaw Python/import.c @brettcannon @ericsnowcurrently @ncoghlan @warsaw @kumaraditya303 @@ -145,6 +274,7 @@ Programs/python.c @ericsnowcurrently Include/internal/pycore_jit.h @brandtbucher @savannahostrowski @diegorusso Python/jit.c @brandtbucher @savannahostrowski @diegorusso Tools/jit/ @brandtbucher @savannahostrowski @diegorusso +InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner # Micro-op / μop / Tier 2 Optimiser Python/optimizer.c @markshannon @@ -185,8 +315,8 @@ Modules/_remote_debugging_module.c @pablogsal @ambv @1st1 # Sub-Interpreters **/*crossinterp* @ericsnowcurrently **/*interpreteridobject.* @ericsnowcurrently -Doc/library/concurrent.interpreters.rst @ericsnowcurrently -Lib/concurrent/futures/interpreter.py @ericsnowcurrently +Doc/library/concurrent.interpreters.rst @ericsnowcurrently +Lib/concurrent/futures/interpreter.py @ericsnowcurrently Lib/concurrent/interpreters/ @ericsnowcurrently Lib/test/support/channels.py @ericsnowcurrently Lib/test/test__interp*.py @ericsnowcurrently @@ -201,121 +331,7 @@ Objects/templateobject.c @lysnikolaou # Tests Lib/test/test_patma.py @brandtbucher Lib/test/test_type_*.py @JelleZijlstra -Lib/test/test_capi/test_misc.py @markshannon - - -# ---------------------------------------------------------------------------- -# Documentation -# ---------------------------------------------------------------------------- - -# Internal Docs -InternalDocs/ @AA-Turner -InternalDocs/asyncio.md @1st1 @asvetlov @kumaraditya303 @willingc @AA-Turner -InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner - -# Tools, Configuration, etc -Doc/Makefile @AA-Turner @hugovk -Doc/_static/ @AA-Turner @hugovk -Doc/conf.py @AA-Turner @hugovk -Doc/make.bat @AA-Turner @hugovk -Doc/requirements.txt @AA-Turner @hugovk -Doc/tools/ @AA-Turner @hugovk - -# PR Previews -.readthedocs.yml @AA-Turner - -# Sections -Doc/reference/ @willingc @AA-Turner -Doc/whatsnew/ @AA-Turner - - -# ---------------------------------------------------------------------------- -# Other / Misc (Tools, Programs, Integration, etc) -# ---------------------------------------------------------------------------- - -# Argument Clinic -Tools/clinic/ @erlend-aasland @AA-Turner -Lib/test/test_clinic.py @erlend-aasland @AA-Turner -Doc/howto/clinic.rst @erlend-aasland @AA-Turner - -# C Analyser -Tools/c-analyzer/ @ericsnowcurrently - -# Fuzzing -Modules/_xxtestfuzz/ @ammaraskar - -# Hashing & Cryptographic Primitives -**/*hashlib* @gpshead @tiran @picnixz -**/*hashopenssl* @gpshead @tiran @picnixz -**/*hmac* @gpshead @picnixz -**/*pyhash* @gpshead @tiran @picnixz -Modules/_hacl/ @gpshead @picnixz -Modules/*blake* @gpshead @tiran @picnixz -Modules/*md5* @gpshead @tiran @picnixz -Modules/*sha* @gpshead @tiran @picnixz - -# IDLE -Doc/library/idle.rst @terryjreedy -Lib/idlelib/ @terryjreedy -Lib/turtledemo/ @terryjreedy - -# Limited C API & stable ABI -Doc/c-api/stable.rst @encukou -Doc/data/*.abi @encukou -Misc/stable_abi.toml @encukou -Tools/build/stable_abi.py @encukou - -# SBOM -Misc/externals.spdx.json @sethmlarson -Misc/sbom.spdx.json @sethmlarson -Tools/build/generate_sbom.py @sethmlarson - -# Libssl / TLS -**/*ssl* @gpshead @picnixz - - -# ---------------------------------------------------------------------------- -# Platform Support -# ---------------------------------------------------------------------------- - -# Android -Android/ @mhsmith @freakboy3742 -Doc/using/android.rst @mhsmith @freakboy3742 -Lib/_android_support.py @mhsmith @freakboy3742 -Lib/test/test_android.py @mhsmith @freakboy3742 - -# iOS -Doc/using/ios.rst @freakboy3742 -Lib/_ios_support.py @freakboy3742 -iOS/ @freakboy3742 - -# macOS -Mac/ @python/macos-team -Lib/_osx_support.py @python/macos-team -Lib/test/test__osx_support.py @python/macos-team - -# Windows -PC/ @python/windows-team -PCbuild/ @python/windows-team - -# Windows Launcher -PC/launcher.c @python/windows-team @vsajip - -# Windows installer packages -Tools/msi/ @python/windows-team -Tools/nuget/ @python/windows-team - -# WebAssembly -Tools/wasm/README.md @brettcannon @freakboy3742 - -# WebAssembly (Emscripten) -Tools/wasm/config.site-wasm32-emscripten @freakboy3742 -Tools/wasm/emscripten @freakboy3742 - -# WebAssembly (WASI) -Tools/wasm/wasi-env @brettcannon -Tools/wasm/wasi.py @brettcannon -Tools/wasm/wasi @brettcannon +Lib/test/test_capi/test_misc.py @markshannon # ---------------------------------------------------------------------------- @@ -334,6 +350,7 @@ Lib/test/test_argparse.py @savannahostrowski # Asyncio Doc/library/asyncio*.rst @1st1 @asvetlov @kumaraditya303 @willingc +InternalDocs/asyncio.md @1st1 @asvetlov @kumaraditya303 @willingc @AA-Turner Lib/asyncio/ @1st1 @asvetlov @kumaraditya303 @willingc Lib/test/test_asyncio/ @1st1 @asvetlov @kumaraditya303 @willingc Modules/_asynciomodule.c @1st1 @asvetlov @kumaraditya303 @willingc @@ -348,6 +365,16 @@ Modules/_bisectmodule.c @rhettinger Lib/calendar.py @AA-Turner Lib/test/test_calendar.py @AA-Turner +# Cryptographic Primitives and Applications +**/*hashlib* @gpshead @picnixz @tiran +**/*hashopenssl* @gpshead @picnixz @tiran +**/*hmac* @gpshead @picnixz +**/*ssl* @gpshead @picnixz +Modules/_hacl/ @gpshead @picnixz +Modules/*blake* @gpshead @picnixz @tiran +Modules/*md5* @gpshead @picnixz @tiran +Modules/*sha* @gpshead @picnixz @tiran + # Codecs Modules/cjkcodecs/ @corona10 Tools/unicode/gencjkcodecs.py @corona10 @@ -440,7 +467,7 @@ Doc/library/html* @ezio-melotti Lib/html/ @ezio-melotti Lib/_markupbase.py @ezio-melotti Lib/test/test_html*.py @ezio-melotti -Tools/build/parse_html5_entities.py @ezio-melotti +Tools/build/parse_html5_entities.py @ezio-melotti # importlib.metadata Doc/library/importlib.metadata.rst @jaraco @warsaw @@ -476,12 +503,12 @@ Lib/pathlib/ @barneygale Lib/test/test_pathlib/ @barneygale # pdb & bdb -Doc/library/bdb.rst @gaogaotiantian -Doc/library/pdb.rst @gaogaotiantian -Lib/bdb.py @gaogaotiantian -Lib/pdb.py @gaogaotiantian -Lib/test/test_bdb.py @gaogaotiantian -Lib/test/test_pdb.py @gaogaotiantian +Doc/library/bdb.rst @gaogaotiantian +Doc/library/pdb.rst @gaogaotiantian +Lib/bdb.py @gaogaotiantian +Lib/pdb.py @gaogaotiantian +Lib/test/test_bdb.py @gaogaotiantian +Lib/test/test_pdb.py @gaogaotiantian Lib/test/test_remote_pdb.py @gaogaotiantian # Pydoc @@ -552,7 +579,7 @@ Modules/_typesmodule.c @AA-Turner # Unittest Lib/unittest/mock.py @cjw296 -Lib/test/test_unittest/testmock/ @cjw296 +Lib/test/test_unittest/testmock/ @cjw296 # Urllib **/*robotparser* @berkerpeksag @@ -582,8 +609,6 @@ Modules/_zstd/ @AA-Turner # Exclude Argument Clinic directories Modules/**/clinic/ -Modules/clinic/ -Objects/clinic/ -Objects/stringlib/clinic/ -PC/clinic/ -Python/clinic/ +Objects/**/clinic/ +PC/**/clinic/ +Python/**/clinic/ From dae0424db50e328fa5866d0e0264b9b6f286bd93 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:24:11 +0100 Subject: [PATCH 07/15] left-align --- .github/CODEOWNERS | 170 ++++++++++++++++++++++----------------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c3c484e582dcd6..ba7d8e416f3255 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -55,8 +55,8 @@ .azure-pipelines/ @AA-Turner # GitHub & related scripts -.github/ @ezio-melotti @hugovk @AA-Turner -Tools/build/compute-changes.py @AA-Turner +.github/ @ezio-melotti @hugovk @AA-Turner +Tools/build/compute-changes.py @AA-Turner Tools/build/verify_ensurepip_wheels.py @AA-Turner @pfmoore @pradyunsg # pre-commit @@ -72,11 +72,11 @@ Tools/patchcheck/ @AA-Turner # ---------------------------------------------------------------------------- # autotools -configure* @erlend-aasland @corona10 @AA-Turner -Makefile.pre.in @erlend-aasland @AA-Turner -Modules/Setup* @erlend-aasland @AA-Turner -Tools/build/regen-configure.sh @AA-Turner - +configure* @erlend-aasland @corona10 @AA-Turner +Makefile.pre.in @erlend-aasland @AA-Turner +Modules/Setup* @erlend-aasland @AA-Turner +Tools/build/regen-configure.sh @AA-Turner + @AA-Turner # ---------------------------------------------------------------------------- # Documentation @@ -168,8 +168,8 @@ Tools/nuget/ @python/windows-team Tools/wasm/README.md @brettcannon @freakboy3742 # WebAssembly (Emscripten) -Tools/wasm/config.site-wasm32-emscripten @freakboy3742 -Tools/wasm/emscripten @freakboy3742 +Tools/wasm/config.site-wasm32-emscripten @freakboy3742 +Tools/wasm/emscripten @freakboy3742 # WebAssembly (WASI) Tools/wasm/wasi-env @brettcannon @@ -220,12 +220,12 @@ Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8 Python/ast_preprocess.c @isidentical @eclips4 @tomasr8 # Context variables & HAMT -**/contextvars* @1st1 -**/*hamt* @1st1 -Include/cpython/context.h @1st1 -Include/internal/pycore_context.h @1st1 -Lib/test/test_context.py @1st1 -Python/context.c @1st1 +**/contextvars* @1st1 +**/*hamt* @1st1 +Include/cpython/context.h @1st1 +Include/internal/pycore_context.h @1st1 +Lib/test/test_context.py @1st1 +Python/context.c @1st1 # Exceptions Lib/test/test_except*.py @iritkatriel @@ -236,10 +236,10 @@ Lib/test/test_getpath.py @FFY00 Modules/getpath* @FFY00 # Hashing / ``hash()`` and related -Include/cpython/pyhash.h @gpshead @picnixz @tiran +Include/cpython/pyhash.h @gpshead @picnixz @tiran Include/internal/pycore_pyhash.h @gpshead @picnixz @tiran -Include/pyhash.h @gpshead @picnixz @tiran -Python/pyhash.c @gpshead @picnixz @tiran +Include/pyhash.h @gpshead @picnixz @tiran +Python/pyhash.c @gpshead @picnixz @tiran # The import system (including importlib) **/*import* @brettcannon @ericsnowcurrently @ncoghlan @warsaw @@ -294,34 +294,34 @@ Tools/peg_generator/ @pablogsal @lysnikolaou **/*gil* @ericsnowcurrently **/*pylifecycle* @ericsnowcurrently @ZeroIntensity **/*pystate* @ericsnowcurrently @ZeroIntensity -Include/internal/pycore_*_init.h @ericsnowcurrently -Include/internal/pycore_*_state.h @ericsnowcurrently -Include/internal/pycore_atexit.h @ericsnowcurrently -Include/internal/pycore_freelist.h @ericsnowcurrently +Include/internal/pycore_*_init.h @ericsnowcurrently +Include/internal/pycore_*_state.h @ericsnowcurrently +Include/internal/pycore_atexit.h @ericsnowcurrently +Include/internal/pycore_freelist.h @ericsnowcurrently Include/internal/pycore_global_objects.h @ericsnowcurrently -Include/internal/pycore_interp.h @ericsnowcurrently -Include/internal/pycore_obmalloc.h @ericsnowcurrently -Include/internal/pycore_pymem.h @ericsnowcurrently -Include/internal/pycore_runtime.h @ericsnowcurrently -Include/internal/pycore_stackref.h @Fidget-Spinner -Include/internal/pycore_tstate.h @ericsnowcurrently -Tools/build/generate_global_objects.py @ericsnowcurrently +Include/internal/pycore_interp.h @ericsnowcurrently +Include/internal/pycore_obmalloc.h @ericsnowcurrently +Include/internal/pycore_pymem.h @ericsnowcurrently +Include/internal/pycore_runtime.h @ericsnowcurrently +Include/internal/pycore_stackref.h @Fidget-Spinner +Include/internal/pycore_tstate.h @ericsnowcurrently +Tools/build/generate_global_objects.py @ericsnowcurrently # Remote Debugging -Python/remote_debug.h @pablogsal -Python/remote_debugging.c @pablogsal -Modules/_remote_debugging_module.c @pablogsal @ambv @1st1 +Python/remote_debug.h @pablogsal +Python/remote_debugging.c @pablogsal +Modules/_remote_debugging_module.c @pablogsal @ambv @1st1 # Sub-Interpreters -**/*crossinterp* @ericsnowcurrently -**/*interpreteridobject.* @ericsnowcurrently -Doc/library/concurrent.interpreters.rst @ericsnowcurrently -Lib/concurrent/futures/interpreter.py @ericsnowcurrently -Lib/concurrent/interpreters/ @ericsnowcurrently -Lib/test/support/channels.py @ericsnowcurrently -Lib/test/test__interp*.py @ericsnowcurrently -Lib/test/test_interpreters/ @ericsnowcurrently -Modules/_interp*module.c @ericsnowcurrently +**/*crossinterp* @ericsnowcurrently +**/*interpreteridobject.* @ericsnowcurrently +Doc/library/concurrent.interpreters.rst @ericsnowcurrently +Lib/concurrent/futures/interpreter.py @ericsnowcurrently +Lib/concurrent/interpreters/ @ericsnowcurrently +Lib/test/support/channels.py @ericsnowcurrently +Lib/test/test__interp*.py @ericsnowcurrently +Lib/test/test_interpreters/ @ericsnowcurrently +Modules/_interp*module.c @ericsnowcurrently # Template string literals (t-strings) Lib/test/test_tstring.py @lysnikolaou @@ -329,9 +329,9 @@ Objects/interpolationobject.c @lysnikolaou Objects/templateobject.c @lysnikolaou # Tests -Lib/test/test_patma.py @brandtbucher -Lib/test/test_type_*.py @JelleZijlstra -Lib/test/test_capi/test_misc.py @markshannon +Lib/test/test_patma.py @brandtbucher +Lib/test/test_type_*.py @JelleZijlstra +Lib/test/test_capi/test_misc.py @markshannon # ---------------------------------------------------------------------------- @@ -339,9 +339,9 @@ Lib/test/test_capi/test_misc.py @markshannon # ---------------------------------------------------------------------------- # Annotationlib -Doc/library/annotationlib.rst @JelleZijlstra -Lib/annotationlib.py @JelleZijlstra -Lib/test/test_annotationlib.py @JelleZijlstra +Doc/library/annotationlib.rst @JelleZijlstra +Lib/annotationlib.py @JelleZijlstra +Lib/test/test_annotationlib.py @JelleZijlstra # Argparse Doc/**/argparse*.rst @savannahostrowski @@ -380,12 +380,12 @@ Modules/cjkcodecs/ @corona10 Tools/unicode/gencjkcodecs.py @corona10 # Collections -Doc/library/collections.abc.rst @rhettinger -Doc/library/collections.rst @rhettinger -Lib/_collections_abc.py @rhettinger -Lib/collections/ @rhettinger -Lib/test/test_collections.py @rhettinger -Modules/_collectionsmodule.c @rhettinger +Doc/library/collections.abc.rst @rhettinger +Doc/library/collections.rst @rhettinger +Lib/_collections_abc.py @rhettinger +Lib/collections/ @rhettinger +Lib/test/test_collections.py @rhettinger +Modules/_collectionsmodule.c @rhettinger # Colorize Lib/_colorize.py @hugovk @@ -401,14 +401,14 @@ Lib/dataclasses.py @ericvsmith Lib/test/test_dataclasses/ @ericvsmith # Dates and times -Doc/**/*time.rst @pganssle @abalkin -Include/datetime.h @pganssle @abalkin -Include/internal/pycore_time.h @pganssle @abalkin -Lib/*time.py @pganssle @abalkin -Lib/test/datetimetester.py @pganssle @abalkin -Lib/test/test_*time.py @pganssle @abalkin -Modules/*time* @pganssle @abalkin -Python/pytime.c @pganssle @abalkin +Doc/**/*time.rst @pganssle @abalkin +Include/datetime.h @pganssle @abalkin +Include/internal/pycore_time.h @pganssle @abalkin +Lib/*time.py @pganssle @abalkin +Lib/test/datetimetester.py @pganssle @abalkin +Lib/test/test_*time.py @pganssle @abalkin +Modules/*time* @pganssle @abalkin +Python/pytime.c @pganssle @abalkin # Dbm Doc/library/dbm.rst @corona10 @erlend-aasland @serhiy-storchaka @@ -429,11 +429,11 @@ Lib/ensurepip/ @pfmoore @pradyunsg Lib/test/test_ensurepip.py @pfmoore @pradyunsg # Enum -Doc/howto/enum.rst @ethanfurman -Doc/library/enum.rst @ethanfurman -Lib/enum.py @ethanfurman -Lib/test/test_enum.py @ethanfurman -Lib/test/test_json/test_enum.py @ethanfurman +Doc/howto/enum.rst @ethanfurman +Doc/library/enum.rst @ethanfurman +Lib/enum.py @ethanfurman +Lib/test/test_enum.py @ethanfurman +Lib/test/test_json/test_enum.py @ethanfurman # FTP Doc/library/ftplib.rst @giampaolo @@ -463,22 +463,22 @@ Lib/test/test_heapq.py @rhettinger Modules/_heapqmodule.c @rhettinger # HTML -Doc/library/html* @ezio-melotti -Lib/html/ @ezio-melotti -Lib/_markupbase.py @ezio-melotti -Lib/test/test_html*.py @ezio-melotti +Doc/library/html* @ezio-melotti +Lib/html/ @ezio-melotti +Lib/_markupbase.py @ezio-melotti +Lib/test/test_html*.py @ezio-melotti Tools/build/parse_html5_entities.py @ezio-melotti # importlib.metadata -Doc/library/importlib.metadata.rst @jaraco @warsaw -Lib/importlib/metadata/ @jaraco @warsaw -Lib/test/test_importlib/metadata/ @jaraco @warsaw +Doc/library/importlib.metadata.rst @jaraco @warsaw +Lib/importlib/metadata/ @jaraco @warsaw +Lib/test/test_importlib/metadata/ @jaraco @warsaw # importlib.resources -Doc/library/importlib.resources.abc.rst @jaraco @warsaw -Doc/library/importlib.resources.rst @jaraco @warsaw -Lib/importlib/resources/ @jaraco @warsaw @FFY00 -Lib/test/test_importlib/resources/ @jaraco @warsaw @FFY00 +Doc/library/importlib.resources.abc.rst @jaraco @warsaw +Doc/library/importlib.resources.rst @jaraco @warsaw +Lib/importlib/resources/ @jaraco @warsaw @FFY00 +Lib/test/test_importlib/resources/ @jaraco @warsaw @FFY00 # itertools Doc/library/itertools.rst @rhettinger @@ -492,10 +492,10 @@ Lib/test/test_logging.py @vsajip # multiprocessing Doc/library/multiprocessing*.rst @gpshead -Lib/multiprocessing/ @gpshead -Lib/test/*multiprocessing.py @gpshead -Lib/test/test_multiprocessing*/ @gpshead -Modules/_multiprocessing/ @gpshead +Lib/multiprocessing/ @gpshead +Lib/test/*multiprocessing.py @gpshead +Lib/test/test_multiprocessing*/ @gpshead +Modules/_multiprocessing/ @gpshead # pathlib Doc/library/pathlib.rst @barneygale @@ -537,9 +537,9 @@ Lib/test/test_site.py @FFY00 Doc/library/site.rst @FFY00 # string.templatelib -Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner -Lib/string/templatelib.py @lysnikolaou @AA-Turner -Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner +Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner +Lib/string/templatelib.py @lysnikolaou @AA-Turner +Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner # Sysconfig **/*sysconfig* @FFY00 @@ -578,7 +578,7 @@ Lib/types.py @AA-Turner Modules/_typesmodule.c @AA-Turner # Unittest -Lib/unittest/mock.py @cjw296 +Lib/unittest/mock.py @cjw296 Lib/test/test_unittest/testmock/ @cjw296 # Urllib From ecbc05dbac8415a49f1b43e734876f6efb261d1b Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:32:03 +0100 Subject: [PATCH 08/15] fixup! left-align --- .github/CODEOWNERS | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ba7d8e416f3255..b94c9a542905e4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -76,7 +76,6 @@ configure* @erlend-aasland @corona10 @AA-Turner Makefile.pre.in @erlend-aasland @AA-Turner Modules/Setup* @erlend-aasland @AA-Turner Tools/build/regen-configure.sh @AA-Turner - @AA-Turner # ---------------------------------------------------------------------------- # Documentation From 3a92f4799e069cbc252dbe88f977551fdeb80819 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:32:26 +0100 Subject: [PATCH 09/15] fixup! left-align --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b94c9a542905e4..c43d254e802220 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -77,6 +77,7 @@ Makefile.pre.in @erlend-aasland @AA-Turner Modules/Setup* @erlend-aasland @AA-Turner Tools/build/regen-configure.sh @AA-Turner + # ---------------------------------------------------------------------------- # Documentation # ---------------------------------------------------------------------------- From 0b8098308cebec08dfb1e0302a26e92d1651530e Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:33:40 +0100 Subject: [PATCH 10/15] Alphabetical --- .github/CODEOWNERS | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c43d254e802220..03ce89e90a0de7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -181,6 +181,15 @@ Tools/wasm/wasi @brettcannon # Interpreter Core # ---------------------------------------------------------------------------- +# AST +Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Lib/ast.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Lib/test/test_ast/ @eclips4 @tomasr8 +Parser/asdl.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4 @tomasr8 +Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8 +Python/ast_preprocess.c @isidentical @eclips4 @tomasr8 + # Built-in types Objects/call.c @markshannon Objects/codeobject.c @markshannon @@ -206,19 +215,6 @@ Python/flowgraph.c @markshannon @iritkatriel Python/instruction_sequence.c @iritkatriel Python/symtable.c @JelleZijlstra @carljm -# Core Modules -**/*bltinmodule* @ericsnowcurrently -**/*sysmodule* @ericsnowcurrently - -# AST -Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Lib/ast.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Lib/test/test_ast/ @eclips4 @tomasr8 -Parser/asdl.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4 @tomasr8 -Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8 -Python/ast_preprocess.c @isidentical @eclips4 @tomasr8 - # Context variables & HAMT **/contextvars* @1st1 **/*hamt* @1st1 @@ -227,6 +223,10 @@ Include/internal/pycore_context.h @1st1 Lib/test/test_context.py @1st1 Python/context.c @1st1 +# Core Modules +**/*bltinmodule* @ericsnowcurrently +**/*sysmodule* @ericsnowcurrently + # Exceptions Lib/test/test_except*.py @iritkatriel Objects/exceptions.c @iritkatriel From 6c15b234c6af1e27698e9df06fd043f24864a02f Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:36:17 +0100 Subject: [PATCH 11/15] fixup! Alphabetical --- .github/CODEOWNERS | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 03ce89e90a0de7..d0c6bc94117ee6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -485,24 +485,24 @@ Doc/library/itertools.rst @rhettinger Lib/test/test_itertools.py @rhettinger Modules/itertoolsmodule.c @rhettinger -# logging +# Logging Doc/**/logging* @vsajip Lib/logging/ @vsajip Lib/test/test_logging.py @vsajip -# multiprocessing +# Multiprocessing Doc/library/multiprocessing*.rst @gpshead Lib/multiprocessing/ @gpshead Lib/test/*multiprocessing.py @gpshead Lib/test/test_multiprocessing*/ @gpshead Modules/_multiprocessing/ @gpshead -# pathlib +# Pathlib Doc/library/pathlib.rst @barneygale Lib/pathlib/ @barneygale Lib/test/test_pathlib/ @barneygale -# pdb & bdb +# Pdb & Bdb Doc/library/bdb.rst @gaogaotiantian Doc/library/pdb.rst @gaogaotiantian Lib/bdb.py @gaogaotiantian @@ -550,7 +550,7 @@ Lib/sqlite3/ @berkerpeksag @erlend-aasland Lib/test/test_sqlite3/ @berkerpeksag @erlend-aasland Modules/_sqlite/ @berkerpeksag @erlend-aasland -# subprocess +# Subprocess Lib/subprocess.py @gpshead Lib/test/test_subprocess.py @gpshead Modules/*subprocess* @gpshead @@ -560,7 +560,7 @@ Doc/library/tarfile.rst @ethanfurman Lib/tarfile.py @ethanfurman Lib/test/test_tarfile.py @ethanfurman -# Tomllib +# TOML Doc/library/tomllib.rst @encukou @hauntsaninja Lib/test/test_tomllib/ @encukou @hauntsaninja Lib/tomllib/ @encukou @hauntsaninja From 1f74aee0d066baa2a06723d6726cd6d4f76bbe8a Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Mon, 11 Aug 2025 18:24:01 +0100 Subject: [PATCH 12/15] Apply suggestions from code review Co-authored-by: Ezio Melotti --- .github/CODEOWNERS | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d0c6bc94117ee6..edbf6e907de519 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -15,7 +15,8 @@ # # An entry in this file does not imply 'ownership', despite the name of the # file, but instead that those listed take an interest in that part of the -# project, and would like to be notified of any proposed changes to it. +# project and will automatically be added as reviewers to PRs that affect +# the matching files. # See also the Experts Index in the Python Developer's Guide: # https://devguide.python.org/core-developers/experts/ # @@ -31,10 +32,10 @@ # Top-level sections are: # # * Buildbots, Continuous Integration, and Testing -# e.g. project-wide configuration files, internal tools for use in CI, +# project-wide configuration files, internal tools for use in CI, # linting. # * Build System -# e.g. the Makefile, autoconf. +# the Makefile, autoconf, and other autotools files. # * Documentation # broader sections of documentation, documentation tools # * Other / Misc (Tools, Programs, Integration, etc) @@ -43,9 +44,10 @@ # * Platform Support # relating to support for specific platforms # * Interpreter Core -# the grammar, parser, compiler, interpreter, etc +# the grammar, parser, compiler, interpreter, etc. # * Standard Library -# standard library modules & related files +# standard library modules (from both Lib and Modules) +# and related files (such as their tests and docs) # ---------------------------------------------------------------------------- # Buildbots, Continuous Integration, and Testing From b4096e4b01ed8a8bbc805012ab7ec06c577f6ab9 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Mon, 18 Aug 2025 17:51:05 +0100 Subject: [PATCH 13/15] Add exclusions section to the summary --- .github/CODEOWNERS | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index edbf6e907de519..d14764625f6feb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -38,7 +38,7 @@ # the Makefile, autoconf, and other autotools files. # * Documentation # broader sections of documentation, documentation tools -# * Other / Misc (Tools, Programs, Integration, etc) +# * Other / Misc (Tools, Programs, Integration, etc.) # internal tools, integration with external systems, # entries that don't fit elsewhere # * Platform Support @@ -48,6 +48,9 @@ # * Standard Library # standard library modules (from both Lib and Modules) # and related files (such as their tests and docs) +# * Exclusions +# exclusions from .github/CODEOWNERS should go at the very end +# because the final matching pattern will take precedence. # ---------------------------------------------------------------------------- # Buildbots, Continuous Integration, and Testing @@ -104,7 +107,7 @@ Doc/whatsnew/ @AA-Turner # ---------------------------------------------------------------------------- -# Other / Misc (Tools, Programs, Integration, etc) +# Other / Misc (Tools, Programs, Integration, etc.) # ---------------------------------------------------------------------------- # Argument Clinic From 405e717045aab7b1dc906145c9097a98dbdb0df6 Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Mon, 18 Aug 2025 17:51:11 +0100 Subject: [PATCH 14/15] Move IDLE --- .github/CODEOWNERS | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d14764625f6feb..6c09e924880b4f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -121,11 +121,6 @@ Tools/c-analyzer/ @ericsnowcurrently # Fuzzing Modules/_xxtestfuzz/ @ammaraskar -# IDLE -Doc/library/idle.rst @terryjreedy -Lib/idlelib/ @terryjreedy -Lib/turtledemo/ @terryjreedy - # Limited C API & stable ABI Doc/c-api/stable.rst @encukou Doc/data/*.abi @encukou @@ -474,6 +469,11 @@ Lib/_markupbase.py @ezio-melotti Lib/test/test_html*.py @ezio-melotti Tools/build/parse_html5_entities.py @ezio-melotti +# IDLE +Doc/library/idle.rst @terryjreedy +Lib/idlelib/ @terryjreedy +Lib/turtledemo/ @terryjreedy + # importlib.metadata Doc/library/importlib.metadata.rst @jaraco @warsaw Lib/importlib/metadata/ @jaraco @warsaw From bc5facc6c707c66a708dff6991c3943a80cc925e Mon Sep 17 00:00:00 2001 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Mon, 18 Aug 2025 17:55:31 +0100 Subject: [PATCH 15/15] Rename "Misc" to "Internal Tools & Data" --- .github/CODEOWNERS | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c09e924880b4f..21a9a8b7739538 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -29,6 +29,9 @@ # Where possible, keep related files together. For example, documentation, # code, and tests for a given item should all be listed in the same place. # +# GitHub usernames should be aligned to column 31, or the next multiple +# of three if the relevant paths are too long to fit. +# # Top-level sections are: # # * Buildbots, Continuous Integration, and Testing @@ -38,7 +41,7 @@ # the Makefile, autoconf, and other autotools files. # * Documentation # broader sections of documentation, documentation tools -# * Other / Misc (Tools, Programs, Integration, etc.) +# * Internal Tools & Data # internal tools, integration with external systems, # entries that don't fit elsewhere # * Platform Support @@ -107,7 +110,7 @@ Doc/whatsnew/ @AA-Turner # ---------------------------------------------------------------------------- -# Other / Misc (Tools, Programs, Integration, etc.) +# Internal Tools and Data # ---------------------------------------------------------------------------- # Argument Clinic @@ -121,7 +124,7 @@ Tools/c-analyzer/ @ericsnowcurrently # Fuzzing Modules/_xxtestfuzz/ @ammaraskar -# Limited C API & stable ABI +# Limited C API & Stable ABI Doc/c-api/stable.rst @encukou Doc/data/*.abi @encukou Misc/stable_abi.toml @encukou