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
7,084
in the current tree
Bus Factor
3
3 authors are primary owner of 3,734 of 7,084 files
Single-Owner Files
1,820
25.7% of tracked files
Contributors
3,127
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
django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz9
django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz9
django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz8
django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz8
django/contrib/postgres/locale/eo/LC_MESSAGES/django.moClaude Paroz8
django/contrib/postgres/locale/eo/LC_MESSAGES/django.poClaude Paroz8
django/contrib/admin/locale/br/LC_MESSAGES/django.poClaude Paroz8
django/contrib/postgres/locale/et/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/et/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/gd/LC_MESSAGES/django.moClaude Paroz7
Table: the 100 most-changed of 1,820 single-owner files
FileSole ownerCommits
django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz9
django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz9
django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz8
django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz8
django/contrib/postgres/locale/eo/LC_MESSAGES/django.moClaude Paroz8
django/contrib/postgres/locale/eo/LC_MESSAGES/django.poClaude Paroz8
django/contrib/admin/locale/br/LC_MESSAGES/django.poClaude Paroz8
django/contrib/postgres/locale/et/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/et/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/gd/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/gd/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/lt/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/lt/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/mk/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/mk/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/mn/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/mn/LC_MESSAGES/django.poClaude Paroz7
django/contrib/postgres/locale/nb/LC_MESSAGES/django.moClaude Paroz7
django/contrib/postgres/locale/nb/LC_MESSAGES/django.poClaude Paroz7
django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz7
django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/br/LC_MESSAGES/django.moClaude Paroz7
django/contrib/admin/locale/br/LC_MESSAGES/djangojs.moClaude Paroz7
django/contrib/admin/locale/br/LC_MESSAGES/djangojs.poClaude Paroz7
django/contrib/admindocs/locale/br/LC_MESSAGES/django.moClaude Paroz7
django/contrib/admindocs/locale/br/LC_MESSAGES/django.poClaude Paroz7
django/contrib/auth/locale/br/LC_MESSAGES/django.moClaude Paroz7
django/contrib/auth/locale/br/LC_MESSAGES/django.poClaude Paroz7
django/contrib/humanize/locale/br/LC_MESSAGES/django.moClaude Paroz7
django/contrib/humanize/locale/br/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/es_VE/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/ia/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/lb/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/my/LC_MESSAGES/django.poClaude Paroz7
django/contrib/admin/locale/os/LC_MESSAGES/django.poClaude Paroz7
scripts/do_django_release.pyNatalia6
django/contrib/postgres/locale/pt/LC_MESSAGES/django.moClaude Paroz6
django/contrib/postgres/locale/pt/LC_MESSAGES/django.poClaude Paroz6
django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.moClaude Paroz6
django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.poClaude Paroz6
django/contrib/postgres/locale/fa/LC_MESSAGES/django.moClaude Paroz6
django/contrib/postgres/locale/fa/LC_MESSAGES/django.poClaude Paroz6
django/contrib/flatpages/locale/br/LC_MESSAGES/django.moClaude Paroz6
django/contrib/flatpages/locale/br/LC_MESSAGES/django.poClaude Paroz6
django/contrib/redirects/locale/br/LC_MESSAGES/django.moClaude Paroz6
django/contrib/redirects/locale/br/LC_MESSAGES/django.poClaude Paroz6
django/contrib/sessions/locale/br/LC_MESSAGES/django.moClaude Paroz6
django/contrib/sessions/locale/br/LC_MESSAGES/django.poClaude Paroz6
django/contrib/sites/locale/br/LC_MESSAGES/django.moClaude Paroz6
django/contrib/sites/locale/br/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admin/locale/ast/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admin/locale/es_VE/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.moClaude Paroz6
django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.poClaude Paroz6
django/contrib/admin/locale/ia/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.moClaude Paroz6
django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.poClaude Paroz6
django/contrib/admin/locale/io/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admin/locale/lb/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admin/locale/my/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admin/locale/my/LC_MESSAGES/djangojs.moClaude Paroz6
django/contrib/admin/locale/my/LC_MESSAGES/djangojs.poClaude Paroz6
django/contrib/admin/locale/os/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admin/locale/os/LC_MESSAGES/djangojs.moClaude Paroz6
django/contrib/admin/locale/os/LC_MESSAGES/djangojs.poClaude Paroz6
django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admindocs/locale/ia/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admindocs/locale/ia/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admindocs/locale/my/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admindocs/locale/my/LC_MESSAGES/django.poClaude Paroz6
django/contrib/admindocs/locale/os/LC_MESSAGES/django.moClaude Paroz6
django/contrib/admindocs/locale/os/LC_MESSAGES/django.poClaude Paroz6
django/contrib/auth/locale/es_VE/LC_MESSAGES/django.moClaude Paroz6
django/contrib/auth/locale/es_VE/LC_MESSAGES/django.poClaude Paroz6
django/contrib/auth/locale/my/LC_MESSAGES/django.moClaude Paroz6
django/contrib/auth/locale/my/LC_MESSAGES/django.poClaude Paroz6
django/contrib/auth/locale/os/LC_MESSAGES/django.moClaude Paroz6
django/contrib/auth/locale/os/LC_MESSAGES/django.poClaude Paroz6
django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.moClaude Paroz6
django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.poClaude Paroz6
django/contrib/humanize/locale/ia/LC_MESSAGES/django.moClaude Paroz6
django/contrib/humanize/locale/ia/LC_MESSAGES/django.poClaude Paroz6
django/contrib/sessions/locale/be/LC_MESSAGES/django.poClaude Paroz6
docs/releases/1.4.22.txtTim Graham5
django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.poClaude Paroz5
django/contrib/postgres/locale/eu/LC_MESSAGES/django.moClaude Paroz5
django/contrib/postgres/locale/eu/LC_MESSAGES/django.poClaude Paroz5
django/contrib/redirects/locale/dsb/LC_MESSAGES/django.poClaude Paroz5
django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.poClaude Paroz5
django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.poClaude Paroz5
django/contrib/postgres/locale/ro/LC_MESSAGES/django.moClaude Paroz5
django/contrib/postgres/locale/ro/LC_MESSAGES/django.poClaude Paroz5
django/contrib/admin/locale/ast/LC_MESSAGES/django.moClaude Paroz5
django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.moClaude Paroz5
django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.poClaude Paroz5
django/contrib/admin/locale/io/LC_MESSAGES/django.moClaude Paroz5
django/contrib/admindocs/locale/ast/LC_MESSAGES/django.moClaude Paroz5
django/contrib/admindocs/locale/ast/LC_MESSAGES/django.poClaude Paroz5
django/contrib/auth/locale/ast/LC_MESSAGES/django.moClaude Paroz5

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
Claude Paroz2,1924824,180
Tim Graham9911322,009
Jannis Leidel551582,118
django-bot45502,160
Mariusz Felisiak394812,367
Florian Apolloner3272901,089
Preston Timmons14279356
Aymeric Augustin13642923
Natalia106361,019
Simon Charette10311895
Russell Keith-Magee6513555
David Smith6437801
Adrian Holovaty6317412
Johannes Maron582172
Jacob Walls5615788
Nick Pope5622689
Jon Dufresne532935
Carlton Gibson52211,086
Andrew Godwin4425244
Trey Hunner41087
Sarah Boyce4013714
Tom Carrick360207
Markus Holtermann3419257
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి)301393
Georg Bauer30077

Showing top 25 of 3127 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
AUTHORS590Malcolm Tredinnick19.3%
tests/admin_views/tests.py202Tim Graham15.7%
docs/ref/contrib/admin/index.txt189Tim Graham17.6%
docs/ref/models/querysets.txt188Tim Graham13.6%
django/db/models/query.py177Malcolm Tredinnick7.1%
django/contrib/admin/options.py167Tim Graham8.4%
docs/ref/settings.txt164Tim Graham18.2%
docs/ref/django-admin.txt150Tim Graham17.1%
docs/ref/models/fields.txt144Tim Graham14.6%
django/db/models/fields/__init__.py141Malcolm Tredinnick8.5%
docs/internals/deprecation.txt135Tim Graham15.6%
django/db/models/sql/query.py130Anssi Kääriäinen14.9%
django/db/models/base.py130Malcolm Tredinnick10.3%
docs/ref/checks.txt124Tim Graham14.1%
docs/ref/templates/builtins.txt120Tim Graham16.9%
django/db/models/fields/related.py115Russell Keith-Magee11.0%
docs/releases/1.8.txt110Tim Graham24.2%
django/forms/models.py109Claude Paroz9.1%
docs/releases/1.7.txt107Tim Graham22.7%
docs/ref/request-response.txt107Tim Graham13.5%