Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
5,916
in the current tree
Bus Factor
12
12 authors are primary owner of 2,970 of 5,916 files
Single-Owner Files
1,789
30.2% of tracked files
Contributors
3,607
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
Lib/pathlib/_os.pyBarney Gale20
Modules/_interpreters_common.hEric Snow12
Lib/test/test_importlib/metadata/test_main.pyJason R. Coombs11
Parser/lexer/string.cPablo Galindo Salgado11
Lib/importlib/metadata/_adapters.pyJason R. Coombs10
Lib/importlib/metadata/_meta.pyJason R. Coombs10
Lib/test/test_importlib/metadata/fixtures.pyJason R. Coombs10
Parser/tokenizer/reader.cPablo Galindo Salgado9
Lib/test/libregrtest/__init__.pyVictor Stinner9
Tools/cases_generator/cwriter.pyMark Shannon9
Table: the 100 most-changed of 1,789 single-owner files
FileSole ownerCommits
Lib/pathlib/_os.pyBarney Gale20
Modules/_interpreters_common.hEric Snow12
Lib/test/test_importlib/metadata/test_main.pyJason R. Coombs11
Parser/lexer/string.cPablo Galindo Salgado11
Lib/importlib/metadata/_adapters.pyJason R. Coombs10
Lib/importlib/metadata/_meta.pyJason R. Coombs10
Lib/test/test_importlib/metadata/fixtures.pyJason R. Coombs10
Parser/tokenizer/reader.cPablo Galindo Salgado9
Lib/test/libregrtest/__init__.pyVictor Stinner9
Tools/cases_generator/cwriter.pyMark Shannon9
Lib/test/subprocessdata/sigchild_ignore.pyGregory P. Smith8
Lib/importlib/readers.pyJason R. Coombs8
Parser/tokenizer/decoder.cPablo Galindo Salgado8
Lib/test/test_importlib/resources/test_reader.pyJason R. Coombs7
Lib/test/test_importlib/resources/test_resource.pyJason R. Coombs7
Lib/importlib/resources/readers.pyJason R. Coombs7
Tools/peg_generator/pegen/metagrammar.gramPablo Galindo Salgado7
Parser/tokenizer/source.hPablo Galindo Salgado7
Modules/_testlimitedcapi/unicode.cVictor Stinner7
Include/internal/pycore_getopt.hVictor Stinner7
Lib/test/test_pathlib/support/zip_path.pyBarney Gale7
Modules/_decimal/tests/runall-memorydebugger.shStefan Krah7
Lib/test/test_importlib/metadata/_path.pyJason R. Coombs6
Lib/test/test_zipfile/_path/test_complexity.pyJason R. Coombs6
Lib/importlib/resources/abc.pyJason R. Coombs6
Lib/test/test_importlib/resources/test_open.pyJason R. Coombs6
Lib/test/test_importlib/resources/test_read.pyJason R. Coombs6
Lib/importlib/metadata/_functools.pyJason R. Coombs6
Lib/test/test_tkinter/test_filedialog.pySerhiy Storchaka6
Parser/tokenizer/reader_internal.hPablo Galindo Salgado6
Parser/lexer/lexer_internal.hPablo Galindo Salgado6
Modules/_remote_debugging/frame_cache.cPablo Galindo Salgado6
Lib/test/test_ctypes/test_strings.pyVictor Stinner6
Include/internal/pycore_asdl.hVictor Stinner6
Lib/idlelib/idle_test/test_search.pyTerry Jan Reedy6
Lib/test/test_pathlib/support/local_path.pyBarney Gale6
Lib/test/tracedmodules/testmod.pyAlexander Belopolsky6
Lib/unittest/signals.pyMichael Foord6
Include/internal/pycore_typevarobject.hJelle Zijlstra5
Lib/test/test_importlib/resources/_path.pyJason R. Coombs5
Lib/test/test_capi/test_module.pyPetr Viktorin5
Modules/_testinternalcapi/tokenizer.cPablo Galindo Salgado5
Parser/tokenizer/source.cPablo Galindo Salgado5
PC/layout/support/nuspec.pySteve Dower5
Modules/_testlimitedcapi/object.cVictor Stinner5
Lib/idlelib/idle_test/test_delegator.pyTerry Jan Reedy5
Lib/idlelib/idle_test/test_undo.pyTerry Jan Reedy5
Lib/idlelib/idle_test/test_warning.pyTerry Jan Reedy5
PCbuild/pyproject-clangcl.propsChris Eibl5
Lib/test/test_pathlib/support/lexical_path.pyBarney Gale5
Include/internal/pycore_crossinterp_data_registry.hEric Snow5
Lib/test/test_importlib/resources/test_compatibilty_files.pyJason R. Coombs4
Lib/test/test_importlib/resources/test_contents.pyJason R. Coombs4
Lib/importlib/metadata/_collections.pyJason R. Coombs4
Lib/test/_isolated_sample.pySerhiy Storchaka4
Lib/test/support/isolation.pySerhiy Storchaka4
Platforms/WASI/README.mdBrett Cannon4
Doc/includes/capi-extension/spammodule-01.cPetr Viktorin4
Parser/tokenizer/api.cPablo Galindo Salgado4
Lib/test/test_profiling/test_sampling_profiler/test_live_collector_core.pyPablo Galindo Salgado4
Platforms/Apple/testbed/iOSTestbed.xcodeproj/project.pbxprojRussell Keith-Magee4
.azure-pipelines/windows-layout-steps.ymlSteve Dower4
Modules/_testlimitedcapi/list.cVictor Stinner4
Include/internal/pycore_pyarena.hVictor Stinner4
Lib/test/test_ctypes/test_buffers.pyVictor Stinner4
Lib/test/test_ctypes/test_cast.pyVictor Stinner4
Lib/test/test_ctypes/test_errno.pyVictor Stinner4
Include/cpython/classobject.hVictor Stinner4
Include/pyframe.hVictor Stinner4
Lib/idlelib/idle_test/test_history.pyTerry Jan Reedy4
Lib/idlelib/idle_test/test_redirector.pyTerry Jan Reedy4
Lib/idlelib/idle_test/test_percolator.pyTerry Jan Reedy4
Python/uniqueid.cSam Gross4
Tools/freeze/hello.pyGuido van Rossum4
Modules/_hacl/include/krml/lowstar_endianness.hJonathan Protzenko4
Tools/c-analyzer/c_parser/__init__.pyEric Snow4
Tools/buildbot/remoteDeploy.batPaul Monson4
Lib/importlib/metadata/_text.pyJason R. Coombs3
Lib/test/test_importlib/resources/test_custom.pyJason R. Coombs3
Lib/importlib/metadata/_itertools.pyJason R. Coombs3
Lib/test/test_tkinter/test_dnd.pySerhiy Storchaka3
Lib/tomllib/mypy.inisobolevn3
Platforms/emscripten/browser_test/package-lock.jsonHood Chatham3
Platforms/emscripten/browser_test/package.jsonHood Chatham3
Platforms/emscripten/browser_test/run_test.shHood Chatham3
Platforms/WASI/_package.pyBrett Cannon3
Platforms/WASI/_shared.pyBrett Cannon3
Lib/test/test_ctypes/test_structunion.pyPetr Viktorin3
Include/internal/pycore_lazyimportobject.hPablo Galindo Salgado3
Lib/test/test_capi/test_tokenizer.pyPablo Galindo Salgado3
Platforms/Apple/iOS/Resources/Info.plist.inRussell Keith-Magee3
Platforms/Apple/testbed/Python.xcframework/Info.plistRussell Keith-Magee3
Platforms/Apple/testbed/Python.xcframework/build/utils.shRussell Keith-Magee3
PC/pythonw_exe.rcSteve Dower3
PC/sqlite3.rcSteve Dower3
Lib/test/test_capi/test_build.pyVictor Stinner3
Lib/test/test_cext/runtests.pyVictor Stinner3
Include/internal/pycore_namespace.hVictor Stinner3
Include/cpython/descrobject.hVictor Stinner3
Lib/test/test_ctypes/test_array_in_pointer.pyVictor Stinner3

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
Victor Stinner8001362,269
Serhiy Storchaka467712,177
Georg Brandl30991,189
Pablo Galindo Salgado20256801
Guido van Rossum19671,125
Mark Dickinson1690484
Russell Keith-Magee164150303
sobolevn15679865
Steve Dower15145554
Terry Jan Reedy13113502
Eric Snow12556702
R. David Murray10040527
Taneli Hukkinen888598
Hugo van Kemenade8610829
Jelle Zijlstra8164503
Mark Shannon796411
Stan Ulbrych7628581
Benjamin Peterson7061,228
Antoine Pitrou7013873
Jason R. Coombs6950158
Brett Cannon6710684
Brad Larsen636369
Gregory P. Smith6147623
Petr Viktorin5921670
Sam Gross597469

Showing top 25 of 3607 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
Misc/ACKS488Antoine Pitrou11.1%
configure227Martin v. Löwis11.0%
configure.ac197Christian Heimes13.0%
Modules/posixmodule.c194Victor Stinner14.4%
Makefile.pre.in180Victor Stinner13.3%
Python/ceval.c170Guido van Rossum15.1%
Modules/socketmodule.c168Guido van Rossum17.0%
Objects/typeobject.c151Guido van Rossum15.1%
Doc/library/os.rst142Georg Brandl19.0%
Objects/unicodeobject.c137Victor Stinner31.8%
Lib/test/test_socket.py129Guido van Rossum10.1%
Doc/reference/datamodel.rst128Georg Brandl19.8%
Doc/library/sys.rst125Georg Brandl17.3%
Lib/inspect.py124Yury Selivanov15.7%
Doc/library/typing.rst124Jelle Zijlstra12.0%
pyconfig.h.in123Martin v. Löwis16.0%
Objects/dictobject.c118Victor Stinner13.9%
Python/sysmodule.c118Victor Stinner21.3%
Python/import.c117Victor Stinner17.6%
Python/bltinmodule.c116Guido van Rossum23.7%