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
924
in the current tree
Bus Factor
1
Mike Bayer is primary owner of 790 of 924 files
Single-Owner Files
135
14.6% of tracked files
Contributors
829
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
doc/build/core/expression_api.rstMike Bayer39
examples/dogpile_caching/advanced.pyMike Bayer9
doc/build/core/future.rstMike Bayer8
examples/performance/bulk_inserts.pyMike Bayer8
doc/build/core/inspection.rstMike Bayer8
test/ext/asyncio/test_session.pyMike Bayer7
.gitreviewMike Bayer7
doc/build/contents.rstMike Bayer7
test/orm/dml/test_orm_upd_del_assorted.pyMike Bayer5
test/orm/dml/test_evaluator.pyMike Bayer5
Table: the 100 most-changed of 135 single-owner files
FileSole ownerCommits
doc/build/core/expression_api.rstMike Bayer39
examples/dogpile_caching/advanced.pyMike Bayer9
doc/build/core/future.rstMike Bayer8
examples/performance/bulk_inserts.pyMike Bayer8
doc/build/core/inspection.rstMike Bayer8
test/ext/asyncio/test_session.pyMike Bayer7
.gitreviewMike Bayer7
doc/build/contents.rstMike Bayer7
test/orm/dml/test_orm_upd_del_assorted.pyMike Bayer5
test/orm/dml/test_evaluator.pyMike Bayer5
doc/build/orm/extensions/declarative/index.rstMike Bayer5
doc/build/orm/exceptions.rstMike Bayer5
lib/sqlalchemy/testing/cancellation.pyMike Bayer4
test/ext/asyncio/test_scoping.pyMike Bayer4
doc/build/orm/extensions/horizontal_shard.rstMike Bayer4
test/orm/inheritance/test_deprecations.pyMike Bayer4
doc/build/core/visitors.rstMike Bayer4
doc/build/core/exceptions.rstMike Bayer4
examples/inheritance/__init__.pyMike Bayer4
test/perf/compiled_extensions/base.pyFederico Caselli4
test/perf/compiled_extensions/command.pyFederico Caselli4
test/sql/test_tstrings_py314.pyMike Bayer3
lib/sqlalchemy/testing/profiles_file.pyMike Bayer3
test/orm/dml/test_orm_upd_del_inheritance.pyMike Bayer3
doc/build/core/compiler.rstMike Bayer3
examples/asyncio/greenlet_orm.pyMike Bayer3
doc/build/orm/classical.rstMike Bayer3
doc/build/orm/relationship_api.rstMike Bayer3
.github/FUNDING.ymlMike Bayer3
test/orm/declarative/test_concurrency.pyMike Bayer3
doc/build/changelog/unreleased_11/README.txtMike Bayer3
doc/build/changelog/unreleased_12/README.txtMike Bayer3
doc/build/changelog/unreleased_13/README.txtMike Bayer3
doc/build/changelog/unreleased_14/README.txtMike Bayer3
examples/versioned_rows/__init__.pyMike Bayer3
test/__init__.pyMike Bayer3
test/orm/test_text.pyMike Bayer2
test/dialect/postgresql/test_async_pg.pyMike Bayer2
tools/profiles.pyMike Bayer2
.github/ISSUE_TEMPLATE/config.ymlMike Bayer2
doc/build/orm/declarative_mapping.rstMike Bayer2
doc/build/changelog/unreleased_13/6392.rstMike Bayer2
doc/build/changelog/unreleased_13/6182.rstMike Bayer2
doc/build/core/engines_connections.rstMike Bayer2
doc/build/core/sqla_engine_arch.pngMike Bayer2
doc/build/orm/extensions/orderinglist.rstMike Bayer2
doc/build/sqla_arch_small.pngMike Bayer2
test/perf/compiled_extensions/cache_key.pyFederico Caselli2
test/typing/plain_files/ext/asyncio/async_stuff.pyFederico Caselli2
test/typing/plain_files/orm/scoped_session.pyFederico Caselli2
test/base/_concurrency_fixtures.pyFederico Caselli2
test/typing/plain_files/orm/mapped_assign_expression.pyFederico Caselli2
test/typing/plain_files/ext/hybrid/hybrid_four.pyFederico Caselli2
CHANGES.rstAnatoli Babenia2
doc/build/changelog/unreleased_21/13715.rstMike Bayer1
doc/build/changelog/unreleased_21/13714.rstMike Bayer1
doc/build/changelog/unreleased_20/13711.rstMike Bayer1
doc/build/changelog/unreleased_20/13689.rstMike Bayer1
doc/build/changelog/unreleased_20/13699.rstMike Bayer1
doc/build/changelog/unreleased_20/13686.rstMike Bayer1
doc/build/changelog/unreleased_20/13695.rstMike Bayer1
doc/build/changelog/unreleased_20/13688.rstMike Bayer1
test/typing/plain_files/orm/unmapped_column.pyMike Bayer1
test/orm/_join_criteria_fixtures.pyMike Bayer1
test/base/test_packaging.pyMike Bayer1
lib/sqlalchemy/dialects/mysql/_mariadb_shim.pyMike Bayer1
test/typing/plain_files/orm/polymorphic.pyMike Bayer1
test/orm/test_tstring_py314.pyMike Bayer1
test/sql/test_table_via_select.pyMike Bayer1
tools/warn_tox.pyMike Bayer1
test/orm/test_dataclasses.pyMike Bayer1
test/dialect/sqlite/__init__.pyMike Bayer1
examples/syntax_extensions/__init__.pyMike Bayer1
examples/syntax_extensions/qualify.pyMike Bayer1
examples/syntax_extensions/test_qualify.pyMike Bayer1
test/orm/test_syntax_extensions.pyMike Bayer1
test/sql/test_syntax_extensions.pyMike Bayer1
doc/build/changelog/unreleased_21/README.txtMike Bayer1
tools/walk_packages.pyMike Bayer1
doc/build/orm/queryguide/index.rstMike Bayer1
doc/build/orm/queryguide/query.rstMike Bayer1
doc/build/orm/queryguide/queryguide_nav_include.rstMike Bayer1
test/orm/dml/__init__.pyMike Bayer1
test/orm/declarative/__init__.pyMike Bayer1
doc/build/changelog/unreleased_20/README.txtMike Bayer1
doc/build/changelog/unreleased_13/7115.rstMike Bayer1
doc/build/tutorial/tutorial_nav_include.rstMike Bayer1
.github/stale.ymlMike Bayer1
examples/asyncio/__init__.pyMike Bayer1
test/ext/asyncio/__init__.pyMike Bayer1
examples/extending_query/__init__.pyMike Bayer1
doc/build/changelog/README.txtMike Bayer1
doc/build/orm/space_invaders.jpgMike Bayer1
test/dialect/oracle/__init__.pyMike Bayer1
doc/build/orm/extensions/automap.rstMike Bayer1
test/dialect/mssql/__init__.pyMike Bayer1
test/dialect/mysql/__init__.pyMike Bayer1
test/dialect/postgresql/__init__.pyMike Bayer1
test/ext/declarative/__init__.pyMike Bayer1
doc/build/texinputs/MakefileMike Bayer1

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
Mike Bayer790101851
Federico Caselli8724751
Rebecca Chen12041
Yurii Karabas7075
Ville Skyttä3087
Gord Thompson10288
Michael Trier1160
Jason Kirtland1149
luz paz1041
Shamil Abdulaev1038
Denis Laxalde1035
Lysandros Nikolaou1023
abdallah elhdad1020
Greg Jarzab1115
Javid Khan1115
Jack Zhou1113
LucasMalor1010
Mike Fiedler1010
suraj109
Francisco Del Roio105
opkna104
TomasCaruso10114
medovi40k104
Naveen103
Micah Denbraver113

Showing top 25 of 829 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
lib/sqlalchemy/dialects/postgresql/base.py111Mike Bayer58.0%
lib/sqlalchemy/dialects/mysql/base.py78Mike Bayer66.0%
lib/sqlalchemy/sql/compiler.py73Mike Bayer78.8%
lib/sqlalchemy/dialects/sqlite/base.py61Mike Bayer63.5%
lib/sqlalchemy/orm/query.py53Mike Bayer83.3%
lib/sqlalchemy/dialects/mssql/base.py53Mike Bayer64.5%
lib/sqlalchemy/sql/schema.py52Mike Bayer64.2%
lib/sqlalchemy/orm/session.py51Mike Bayer80.9%
test/requirements.py49Mike Bayer68.9%
doc/build/changelog/changelog_11.rst47Mike Bayer79.8%
lib/sqlalchemy/sql/selectable.py46Mike Bayer71.6%
lib/sqlalchemy/sql/elements.py45Mike Bayer74.4%
lib/sqlalchemy/sql/sqltypes.py42Mike Bayer66.2%
doc/build/dialects/index.rst41Mike Bayer34.5%
test/dialect/postgresql/test_types.py40Mike Bayer60.3%
lib/sqlalchemy/orm/mapper.py39Mike Bayer87.9%
lib/sqlalchemy/dialects/postgresql/psycopg2.py39Mike Bayer72.4%
test/dialect/postgresql/test_compiler.py39Mike Bayer49.4%
lib/sqlalchemy/engine/base.py37Mike Bayer82.7%
test/sql/test_types.py37Mike Bayer78.2%