Skip to content

Introduce a structure for .github/CODEOWNERS #137498

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

AA-Turner
Copy link
Member

cc @ezio-melotti @hugovk

The CODEOWNERS file is getting a little disorganised. This PR is an attempt to add more of a structure & grouping, so future entries are less slapdash. For example, I was unsure the best place to add new lines in #137483.

I've organised the file by 'topic area': CI, build systems, core interpreter, docs, misc, platforms, and stdlib. Entries are kept alphabetically within each top-level section, and are grouped/subtitled with a comment.

I have tried to ensure that thre are no behavioural changes to CODEOWNERS from this PR, but there is one exception -- I've removed the **/*cgi* entry as cgi.py etc was removed in 3.13.

Unresolved thoughts:

  • It would be nice to put the Windows build system in the build-systems section, but I don't know if we prefer keeping it with the platform support group, as it presently is.
  • I didn't have a good group for the interpreter-core tests (now labelled "tests"). For the rest of the old "Core" group, I've split it up into constituent parts (built in types, eval loop, compiler, core modules, tier 2 optimiser, etc).
  • I wasn't sure where best to put hashing / SSL -- it could go into either the "core" section or the "stdlib" section. (cc @picnixz for thoughts if any)
  • IDLE feels out of place in the "Misc" section, but it is bigger than just a stdlib module, so didn't feel right putting it there.

A

@AA-Turner
Copy link
Member Author

Ah, ranges with [...] don't work.

Copy link
Member

@ezio-melotti ezio-melotti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ISTM that there are different possible approaches, each with pros and cons. Most of the entries seem to be about stdlib modules, built-in objects/functions1, and the interpreter core. The other sections (with the exception of Platform Support) have fewer entries, and could possibly be grouped together in a single "Others".

I've seen tools that can inspect CODEOWNERS files, but I'm not sure if there is something that can detect unintentional changes between the old and the new version (I think I spot at least one -- contextlib). If you can find something it would be good to check that the owners are still the same.

This still looks like an improvement compared to the previous version, even in its current form.

Footnotes

  1. FWIW in the docs both the built-in objects/functions and stdlibg modules are grouped under the "library" section, whereas here some objects are under Interpreter Core and others under Standard Library.

**/*pystate* @ericsnowcurrently @ZeroIntensity
**/*preconfig* @ericsnowcurrently
# Context variables & HAMT
**/contextvars* @1st1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This used to be **/*context* (line 32 of the old file), which matched Lib/contextlib.py, but now contextlib doesn't seem to be matched by anything

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forgot to put this in the PR description. I think this was a mistaken glob that was over-expansive -- the PR (#5276) seemed to only reference context variables, rather than context managers.

@1st1 -- Yury, do you want to be listed as a codeowner for contextlib/context managers, or only for context variables?

/Lib/test/test_html*.py @ezio-melotti
/Tools/build/parse_html5_entities.py @ezio-melotti
# Libssl / TLS
**/*ssl* @gpshead @picnixz
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This, IDLE, and hashing could go into Standard Library as well.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the 'unresolved questions' bit of the PR description. Hashing & TLS/SSL seem broader than just the stdlib modules, and IDLE seems different than being 'just' a regular stdlib package.

AA-Turner and others added 2 commits August 7, 2025 04:42
Co-authored-by: Ezio Melotti <[email protected]>
Co-authored-by: Ezio Melotti <[email protected]>
@StanFromIreland StanFromIreland added infra CI, GitHub Actions, buildbots, Dependabot, etc. type-refactor Code refactoring (with no changes in behavior) labels Aug 7, 2025
@picnixz
Copy link
Member

picnixz commented Aug 7, 2025

I am currently on a very bad network for today so I can only quickly reply: SSL and hashing can go under stdlib because none of them are built-ins. However hashing for Python objects (not cryptographic hashes) should go under core. Everything related to cryptography can go under a subsection of library named cryptographic primitives and applications (SSL is too much for being a primitive imo and it allows us to put more stuff related to cryptography in the future).



# ----------------------------------------------------------------------------
# Other / Misc (Tools, Programs, Integration, etc)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Other / Misc (Tools, Programs, Integration, etc)
# Other / Misc (Tools, Programs, Integration, etc.)

Comment on lines +604 to +605
# Exclusions from .github/CODEOWNERS should go at the very end
# because the final matching pattern will take precedence.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be a top-level section, listed in the file structure at the top?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting core review infra CI, GitHub Actions, buildbots, Dependabot, etc. skip issue skip news type-refactor Code refactoring (with no changes in behavior)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants