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
61,125
in the current tree
Bus Factor
15
15 authors are primary owner of 31,450 of 61,125 files
Single-Owner Files
22,921
37.5% of tracked files
Contributors
4,523
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
src/doc/rustc-dev-guide/ci/sembr/src/main.rsTshepang Mbambo53
library/compiler-builtins/libm/src/math/generic/mod.rsTrevor Gross23
tests/mir-opt/coverage/instrument_coverage.main.InstrumentCoverage.diffZalathar22
src/tools/miri/priroda/README.mdMohamed Ali21
library/compiler-builtins/builtins-test/Cargo.tomlTrevor Gross20
library/compiler-builtins/libm-test/Cargo.tomlTrevor Gross20
tests/mir-opt/coverage/instrument_coverage_cleanup.main.CleanupPostBorrowck.diffZalathar18
tests/mir-opt/coverage/instrument_coverage_cleanup.main.InstrumentCoverage.diffZalathar18
src/tools/wasm-component-ld/Cargo.tomlAlex Crichton18
library/compiler-builtins/ci/bench-icount.shTrevor Gross16
Table: the 100 most-changed of 22,921 single-owner files
FileSole ownerCommits
src/doc/rustc-dev-guide/ci/sembr/src/main.rsTshepang Mbambo53
library/compiler-builtins/libm/src/math/generic/mod.rsTrevor Gross23
tests/mir-opt/coverage/instrument_coverage.main.InstrumentCoverage.diffZalathar22
src/tools/miri/priroda/README.mdMohamed Ali21
library/compiler-builtins/builtins-test/Cargo.tomlTrevor Gross20
library/compiler-builtins/libm-test/Cargo.tomlTrevor Gross20
tests/mir-opt/coverage/instrument_coverage_cleanup.main.CleanupPostBorrowck.diffZalathar18
tests/mir-opt/coverage/instrument_coverage_cleanup.main.InstrumentCoverage.diffZalathar18
src/tools/wasm-component-ld/Cargo.tomlAlex Crichton18
library/compiler-builtins/ci/bench-icount.shTrevor Gross16
tests/mir-opt/coverage/instrument_coverage.bar.InstrumentCoverage.diffZalathar16
tests/ui/lint/non-local-defs/exhaustive.stderrUrgau16
src/ci/citool/src/metrics.rsJakub Beránek14
library/compiler-builtins/libm-test/src/test_traits.rsTrevor Gross14
library/compiler-builtins/libm/src/math/generic/sqrt.rsTrevor Gross14
tests/ui/lint/non-local-defs/generics.stderrUrgau14
tests/ui/lint/non-local-defs/exhaustive-trait.stderrUrgau13
library/compiler-builtins/libm-test/src/generate/spaced.rsTrevor Gross12
library/compiler-builtins/libm/src/math/generic/rint.rsTrevor Gross12
compiler/rustc_mir_dataflow/src/framework/results.rsNicholas Nethercote12
src/tools/miri/priroda/tests/ui/locals_corpus_async.stdoutMohamed Ali12
library/compiler-builtins/libm/src/math/generic/ceil.rsTrevor Gross11
library/compiler-builtins/libm/src/math/generic/trunc.rsTrevor Gross11
compiler/rustc_codegen_llvm/src/coverageinfo/llvm_cov.rsZalathar11
tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.stderrMichael Goulet11
library/compiler-builtins/libm-test/src/lib.rsTrevor Gross10
library/compiler-builtins/libm-test/src/builtins_wrapper.rsTrevor Gross10
library/compiler-builtins/builtins-test-intrinsics/Cargo.tomlTrevor Gross10
library/compiler-builtins/libm/src/math/generic/floor.rsTrevor Gross10
tests/coverage/branch/if-let.cov-mapZalathar10
tests/coverage/while.cov-mapZalathar10
compiler/rustc_codegen_llvm/src/coverageinfo/mapgen/spans.rsZalathar10
tests/ui/impl-trait/precise-capturing/forgot-to-capture-type.rsMichael Goulet10
library/compiler-builtins/builtins-test/tests/div_rem.rsTrevor Gross9
library/compiler-builtins/builtins-test/tests/mul.rsTrevor Gross9
library/compiler-builtins/libm-test/src/generate/random.rsTrevor Gross9
library/compiler-builtins/libm-test/src/run_cfg.rsTrevor Gross9
library/compiler-builtins/libm-test/src/generate/edge_cases.rsTrevor Gross9
library/compiler-builtins/builtins-shim/Cargo.tomlTrevor Gross9
library/compiler-builtins/libm-test/src/op.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fmax.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fmaximum.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fmaximum_num.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fmin.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fminimum.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fminimum_num.rsTrevor Gross9
library/compiler-builtins/libm/src/math/generic/fma.rsTrevor Gross9
src/tools/miri/tests/pass/0weak_memory/weak.rsRalf Jung9
tests/coverage/holes.cov-mapZalathar9
tests/coverage/loop-break.cov-mapZalathar9
compiler/rustc_parse/src/parser/expr/diagnostics.rsLeón Orell Valerian Liehr9
tests/ui/trait-bounds/unstable-trait-suggestion.stderrEsteban Küber9
compiler/rustc_attr_ir/src/pretty_printing.rsmejrs9
src/tools/rust-analyzer/crates/ide-diagnostics/src/handlers/type_must_be_known.rsChayim Refael Friedman9
compiler/rustc_type_ir/src/sty/mod.rsJames Barford-Evans9
library/core/src/io/cursor.rsZac Harrold9
library/stdarch/examples/gaussian.rsBrian Cain9
library/compiler-builtins/builtins-test/benches/mem_icount.rsTrevor Gross8
library/compiler-builtins/libm/src/math/fmin_fmax.rsTrevor Gross8
tests/ui/fn/named-fn-trait-parameters.rsJonathan Brouwer8
tests/ui/fn/named-fn-trait-parameters.stderrJonathan Brouwer8
src/tools/miri/tests/fail/async-shared-mutable.stack.stderrRalf Jung8
tests/coverage/closure_bug.cov-mapZalathar8
tests/coverage/unused.cov-mapZalathar8
tests/coverage/assert_not.cov-mapZalathar8
compiler/rustc_attr_ir/src/lint.rsmejrs8
tests/ui/check-cfg/exhaustive-values.empty_cfg.stderrUrgau8
tests/ui/check-cfg/no-expected-values.empty.stderrUrgau8
tests/ui/check-cfg/no-expected-values.mixed.stderrUrgau8
tests/ui/check-cfg/no-expected-values.simple.stderrUrgau8
src/tools/miri/src/shims/unix/udp_socket.rsWhySoBad8
src/tools/miri/priroda/tests/ui/locals_access_field.stdoutMohamed Ali8
src/doc/rustc/src/platform-support/aarch64-unknown-linux-pauthtest.mdJakub Chlanda8
library/core/src/offload/mod.rsMarcelo Dominguez8
tests/mir-opt/coroutine/async_drop_live_dead.a-{closure#0}.coroutine_drop_async.0.panic-unwind.mirCamille Gillot8
tests/ui/impl-trait/precise-capturing/bad-params.stderrMichael Goulet8
library/stdarch/crates/intrinsic-test/src/x86/intrinsic.rsMadhav Madhusoodanan8
library/compiler-builtins/ci/docker/riscv64gc-unknown-linux-gnu/DockerfileTrevor Gross7
library/compiler-builtins/crates/libm-macros/Cargo.tomlTrevor Gross7
library/compiler-builtins/libm/src/math/fminimum_fmaximum.rsTrevor Gross7
library/compiler-builtins/libm/src/math/fminimum_fmaximum_num.rsTrevor Gross7
src/tools/miri/test-cargo-miri/test.filter.stdout.refRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_read_read_write.match_first_load.stderrRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_read_read_write.match_second_load.stderrRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_read_write.read_write.stderrRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_read_write.write_read.stderrRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_write_write.fst.stderrRalf Jung7
src/tools/miri/tests/fail/data_race/mixed_size_write_write.snd.stderrRalf Jung7
tests/coverage/assert-ne.cov-mapZalathar7
tests/coverage/dead_code.cov-mapZalathar7
src/ci/docker/scripts/crosstool-ng-git.shWANG Rui7
src/doc/rustc-dev-guide/src/solve/canonicalization.mdlcnr7
tests/ui/unsized/relaxed-bounds-invalid-places.stderrLeón Orell Valerian Liehr7
tests/ui/moves/needs-clone-through-deref.stderrEsteban Küber7
tests/ui/check-cfg/exhaustive-values.without_names.stderrUrgau7
src/tools/rust-analyzer/crates/hir-ty/src/infer/autoderef.rsChayim Refael Friedman7
tests/mir-opt/coroutine/async_drop.double-{closure#0}.StateTransform.diffCamille Gillot7
tests/mir-opt/coroutine/async_drop.simple-{closure#0}.StateTransform.diffCamille Gillot7
tests/mir-opt/coroutine/async_drop_live_dead.a-{closure#0}.coroutine_drop_async.0.panic-abort.mirCamille Gillot7
tests/ui/impl-trait/precise-capturing/self-capture.rsMichael Goulet7

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
Jieyou Xu4,8231769,967
Albert Larsan3,5363,51918,727
Ralf Jung2,7716115,215
Esteban Küber2,6424376,920
Michael Goulet2,5347146,508
Noratrieb2,191757,184
Guillaume Gomez2,0861,6164,727
rami3l2,0568952,138
Oli Scherer1,9532485,146
lcnr1,2264362,431
Nicholas Nethercote1,1971024,052
Lukas Wirth1,1854672,364
Zalathar1,1384302,003
Vadim Petrochenkov1,083952,461
Urgau1,0295001,938
Waffle Lapkin8891762,190
mejrs8192322,197
León Orell Valerian Liehr7824682,368
Oneirical663464791
Yukang6363051,177
Camille Gillot6221382,474
Trevor Gross6032201,191
cyrgani5922591,168
zedddie579504640
Scott McMurray576721,526

Showing top 25 of 4523 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
Cargo.lock520bjorn39.8%
README.md412Ralf Jung13.4%
compiler/rustc_span/src/symbol.rs294Nicholas Nethercote5.1%
src/librustdoc/clean/mod.rs237Guillaume Gomez12.2%
compiler/rustc_target/src/spec/mod.rs221Ralf Jung7.7%
src/librustdoc/lib.rs214Alex Crichton10.2%
library/std/src/lib.rs211Ralf Jung5.2%
Cargo.toml208bjorn314.0%
compiler/rustc_session/src/options.rs202Nicholas Nethercote4.6%
src/tools/compiletest/src/runtest.rs194Zalathar7.7%
src/doc/rustc/src/platform-support.md186Eric Huss3.0%
library/core/src/lib.rs182Ralf Jung9.0%
compiler/rustc_session/src/config.rs177Nicholas Nethercote9.3%
library/core/src/slice/mod.rs173Scott McMurray6.0%
library/alloc/src/vec/mod.rs168The84725.0%
compiler/rustc_passes/src/check_attr.rs156Jonathan Brouwer7.8%
configure155Brian Anderson18.8%
CONTRIBUTING.md151Philipp Krones14.2%
src/bootstrap/bootstrap.py151Jynn Nelson13.2%
compiler/rustc_hir/src/hir.rs150Camille Gillot15.2%