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
236
in the current tree
Bus Factor
1
David Lord is primary owner of 176 of 236 files
Single-Owner Files
74
31.4% of tracked files
Contributors
574
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
uv.lockDavid Lord22
.github/workflows/pre-commit.yamlDavid Lord19
.github/workflows/lock.yamlDavid Lord16
.readthedocs.yamlDavid Lord11
examples/celery/pyproject.tomlDavid Lord7
examples/tutorial/pyproject.tomlDavid Lord6
.github/workflows/zizmor.yamlDavid Lord5
examples/javascript/js_example/__init__.pyDavid Lord5
docs/_static/flask-icon.svgDavid Lord4
.github/ISSUE_TEMPLATE/config.ymlDavid Lord4
Table: all 74 single-owner files
FileSole ownerCommits
uv.lockDavid Lord22
.github/workflows/pre-commit.yamlDavid Lord19
.github/workflows/lock.yamlDavid Lord16
.readthedocs.yamlDavid Lord11
examples/celery/pyproject.tomlDavid Lord7
examples/tutorial/pyproject.tomlDavid Lord6
.github/workflows/zizmor.yamlDavid Lord5
examples/javascript/js_example/__init__.pyDavid Lord5
docs/_static/flask-icon.svgDavid Lord4
.github/ISSUE_TEMPLATE/config.ymlDavid Lord4
src/flask/__main__.pyDavid Lord4
docs/deploying/gevent.rstDavid Lord3
docs/deploying/gunicorn.rstDavid Lord3
examples/celery/requirements.txtDavid Lord3
examples/javascript/js_example/templates/fetch.htmlDavid Lord3
examples/celery/src/task_app/__init__.pyDavid Lord2
docs/lifecycle.rstDavid Lord2
tests/test_request.pyDavid Lord2
.editorconfigDavid Lord2
.github/ISSUE_TEMPLATE/bug-report.mdDavid Lord2
.github/pull_request_template.mdDavid Lord2
examples/celery/README.mdDavid Lord2
examples/javascript/.gitignoreDavid Lord2
examples/tutorial/.gitignoreDavid Lord2
docs/tutorial/next.rstDavid Lord2
examples/javascript/js_example/templates/jquery.htmlDavid Lord2
docs/patterns/subclassing.rstAnton Sarukhanov2
docs/gevent.rstDavid Lord1
docs/_static/flask-logo.svgDavid Lord1
docs/_static/flask-name.svgDavid Lord1
tests/type_check/typing_app_decorators.pyDavid Lord1
tests/type_check/typing_error_handler.pyDavid Lord1
tests/type_check/typing_route.pyDavid Lord1
examples/javascript/LICENSE.txtDavid Lord1
examples/tutorial/LICENSE.txtDavid Lord1
LICENSE.txtDavid Lord1
examples/celery/make_celery.pyDavid Lord1
examples/celery/src/task_app/tasks.pyDavid Lord1
examples/celery/src/task_app/templates/index.htmlDavid Lord1
examples/celery/src/task_app/views.pyDavid Lord1
docs/deploying/apache-httpd.rstDavid Lord1
docs/deploying/nginx.rstDavid Lord1
docs/deploying/proxy_fix.rstDavid Lord1
examples/javascript/js_example/templates/xhr.htmlDavid Lord1
docs/changes.rstDavid Lord1
docs/tutorial/flaskr_edit.pngDavid Lord1
docs/tutorial/flaskr_index.pngDavid Lord1
docs/tutorial/flaskr_login.pngDavid Lord1
examples/tutorial/flaskr/schema.sqlDavid Lord1
examples/tutorial/flaskr/static/style.cssDavid Lord1
examples/tutorial/flaskr/templates/auth/login.htmlDavid Lord1
examples/tutorial/flaskr/templates/auth/register.htmlDavid Lord1
examples/tutorial/flaskr/templates/base.htmlDavid Lord1
examples/tutorial/flaskr/templates/blog/create.htmlDavid Lord1
examples/tutorial/flaskr/templates/blog/index.htmlDavid Lord1
examples/tutorial/flaskr/templates/blog/update.htmlDavid Lord1
examples/tutorial/tests/data.sqlDavid Lord1
tests/test_apps/.flaskenvDavid Lord1
tests/test_apps/cliapp/inner1/__init__.pyDavid Lord1
tests/test_apps/cliapp/inner1/inner2/__init__.pyDavid Lord1
tests/test_apps/cliapp/inner1/inner2/flask.pyDavid Lord1
tests/test_apps/cliapp/message.txtDavid Lord1
src/flask/py.typedpgjones1
.devcontainer/devcontainer.jsonemisargent1
tests/static/config.tomlAntoineMath1
tests/templates/template_test.htmlMarkus Unterwaditzer1
tests/test_apps/blueprintapp/apps/__init__.pyMarkus Unterwaditzer1
tests/test_apps/blueprintapp/apps/admin/static/css/test.cssMarkus Unterwaditzer1
tests/test_apps/blueprintapp/apps/admin/static/test.txtMarkus Unterwaditzer1
tests/test_apps/blueprintapp/apps/admin/templates/admin/index.htmlMarkus Unterwaditzer1
tests/test_apps/blueprintapp/apps/frontend/templates/frontend/index.htmlMarkus Unterwaditzer1
tests/test_apps/subdomaintestmodule/static/hello.txtMarkus Unterwaditzer1
tests/test_apps/cliapp/__init__.pyJannis Leidel1
tests/templates/non_escaping_template.txtAlan Hamlett1

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
David Lord17661211
Armin Ronacher19067
Markus Unterwaditzer17748
pgjones5146
Grey Li3052
defuz2034
Miguel Grinberg209
Jannis Leidel115
AntoineMath114
Anton Sarukhanov114
Alan Hamlett113
Mieszko103
ThomasWaldmann102
emisargent112
tautv101
ImgBotApp101
Aaron Hall, MBA101
yingshaoxo101
Sebastien Estienne101
David Baumgold0049
Ron DuPlain0024
Jon S. Stumpf0018
Jeff Widman0018
Parkayun0015
Daniel Neuhäuser0015

Showing top 25 of 574 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
CHANGES.rst77David Lord67.4%
docs/quickstart.rst76Armin Ronacher23.8%
docs/api.rst48Armin Ronacher45.5%
tests/test_basic.py48David Lord47.8%
docs/config.rst42David Lord28.4%
tests/test_helpers.py41David Lord37.0%
docs/testing.rst38Armin Ronacher22.9%
docs/installation.rst34David Lord29.1%
tests/test_cli.py33David Lord47.6%
docs/errorhandling.rst33David Lord23.3%
src/flask/app.py29David Lord63.8%
docs/patterns/fileuploads.rst25Armin Ronacher19.0%
docs/extensiondev.rst23David Lord23.5%
docs/cli.rst23David Lord43.1%
src/flask/helpers.py20David Lord65.9%
docs/patterns/packages.rst20Armin Ronacher21.1%
docs/deploying/mod_wsgi.rst20David Lord20.6%
docs/blueprints.rst19Armin Ronacher26.5%
docs/patterns/sqlalchemy.rst19Armin Ronacher23.5%
src/flask/cli.py18David Lord70.6%