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
1,505
in the current tree
Bus Factor
3
3 authors are primary owner of 772 of 1,505 files
Single-Owner Files
359
23.9% of tracked files
Contributors
627
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
tests/robustness/coverage/coverage_test.goAleksander Mistewicz18
tests/robustness/coverage/README.mdAleksander Mistewicz6
.github/workflows/bump-devcontainer-version.ymlIván Valdés Castillo5
Documentation/postmortems/v3.5-data-inconsistency.mdMarek Siarkowicz5
.github/workflows/cherrypick-bot-ok-to-test.yamlIván Valdés Castillo4
tests/robustness/coverage/patches/kubernetes/0002-Add-kubernetesEtcdContractTracker.patchAleksander Mistewicz4
tests/robustness/coverage/patches/kubernetes/0004-Configure-cmd-tests.patchAleksander Mistewicz4
tests/robustness/coverage/collect_kind_traces.shAleksander Mistewicz4
server/storage/schema/auth_test.goMarek Siarkowicz4
contrib/mixin/jsonnetfile.lock.jsonv-zhuravlev3
Table: the 100 most-changed of 359 single-owner files
FileSole ownerCommits
tests/robustness/coverage/coverage_test.goAleksander Mistewicz18
tests/robustness/coverage/README.mdAleksander Mistewicz6
.github/workflows/bump-devcontainer-version.ymlIván Valdés Castillo5
Documentation/postmortems/v3.5-data-inconsistency.mdMarek Siarkowicz5
.github/workflows/cherrypick-bot-ok-to-test.yamlIván Valdés Castillo4
tests/robustness/coverage/patches/kubernetes/0002-Add-kubernetesEtcdContractTracker.patchAleksander Mistewicz4
tests/robustness/coverage/patches/kubernetes/0004-Configure-cmd-tests.patchAleksander Mistewicz4
tests/robustness/coverage/collect_kind_traces.shAleksander Mistewicz4
server/storage/schema/auth_test.goMarek Siarkowicz4
contrib/mixin/jsonnetfile.lock.jsonv-zhuravlev3
etcdctl/ctlv3/command/txn_command_test.goA.D3
tests/robustness/coverage/matchers_test.goAleksander Mistewicz3
tools/proto-annotations/main.goMarek Siarkowicz3
.github/workflows/stale.yamlhwdef3
pkg/report/perfdash.goKishen Viswanathan3
cache/predicate.goPeter Chang3
tests/integration/util_test.goPiotr Tabor3
tools/local-tester/ProcfileAnthony Romano3
tools/rw-heatmaps/cmd/root.goIván Valdés Castillo2
server/proxy/grpcproxy/adapter/chan_stream_test.goJefftree2
pkg/flags/uint32.goBenjamin Wang2
client/pkg/fileutil/filereader_test.goBenjamin Wang2
client/v3/internal/resolver/resolver_test.goSunnatillo2
contrib/mixin/dashboards/etcd.libsonnetv-zhuravlev2
contrib/mixin/dashboards/panels.libsonnetv-zhuravlev2
contrib/mixin/dashboards/targets.libsonnetv-zhuravlev2
contrib/mixin/jsonnetfile.jsonv-zhuravlev2
contrib/mixin/dashboards/etcd-grafana7x.libsonnetv-zhuravlev2
contrib/mixin/config.libsonnetv-zhuravlev2
etcdctl/ctlv3/command/util_test.goA.D2
tests/robustness/coverage/patches/kubernetes/0001-Add-Open-Telemetry-trace-event-when-passing-through-.patchAleksander Mistewicz2
tests/robustness/coverage/patches/kubernetes/0003-Add-1m-timeout-to-Watch-to-ensure-Spans-are-exported.patchAleksander Mistewicz2
server/etcdserver/read/read.goMarek Siarkowicz2
server/etcdserver/read/read_test.goMarek Siarkowicz2
server/etcdserver/interface.goMarek Siarkowicz2
tests/integration/clientv3/watch/watch_fragment_test.goMarek Siarkowicz2
client/v3/kubernetes/client.goMarek Siarkowicz2
server/storage/backend/hooks.goMarek Siarkowicz2
api/etcdserverpb/util.goFu Wei2
scripts/benchmark_test.shKishen Viswanathan2
tests/framework/integration/config.goKota2
tools/rw-heatmaps/OWNERSJames Blair2
cache/ready.goPeter Chang2
tools/testgrid-analysis/cmd/flaky.goSiyuan Zhang2
client/v3/ctx.goPiotr Tabor2
client/pkg/testutil/leak_test.goPiotr Tabor2
client/pkg/types/urls_test.goPiotr Tabor2
server/etcdserver/api/rafthttp/urlpick.goPiotr Tabor2
server/etcdserver/api/rafthttp/urlpick_test.goPiotr Tabor2
client/v3/experimental/recipes/grpc_gateway/user_add.shPiotr Tabor2
server/embed/doc.goPiotr Tabor2
server/etcdserver/server_access_control_test.gowafuwafu132
DCOJonathan Boulle2
scripts/fix/dep.shIván Valdés Castillo1
scripts/test/devcontainer.shIván Valdés Castillo1
tools/container-images/README.mdIván Valdés Castillo1
tools/container-images/devcontainer/DockerfileIván Valdés Castillo1
scripts/fix/yamllint.shIván Valdés Castillo1
etcdctl/.gomodguard.yamlIván Valdés Castillo1
etcdutl/.gomodguard.yamlIván Valdés Castillo1
server/.gomodguard.yamlIván Valdés Castillo1
.github/workflows/verify-released-assets.yamlIván Valdés Castillo1
tools/rw-heatmaps/pkg/chart/line_chart.goIván Valdés Castillo1
tools/rw-heatmaps/.gitignoreIván Valdés Castillo1
pkg/grpctesting/recorder.goIván Valdés Castillo1
tools/rw-heatmaps/main.goIván Valdés Castillo1
tools/rw-heatmaps/pkg/chart/heatmap_grid.goIván Valdés Castillo1
tools/rw-heatmaps/pkg/chart/heatmaps.goIván Valdés Castillo1
tools/rw-heatmaps/pkg/dataset/dataset.goIván Valdés Castillo1
server/embed/config_logging_journal_writer_unix.goDavanum Srinivas1
server/embed/config_logging_journal_writer_unix_test.goDavanum Srinivas1
tests/antithesis/pkg/LICENSENont1
tests/antithesis/pkg/rand/rand.goNont1
tests/antithesis/pkg/rand/v2/randv2.goNont1
tests/antithesis/server/inject/mustverifyifenabled.patchNont1
tests/antithesis/config/manifests/default-etcd-3-replicas.yamlNont1
server/etcdmain/grpc_proxy_logger_test.goNont1
tests/antithesis/server/inject/verify.patchNont1
server/storage/quota_test.goBenjamin Wang1
client/pkg/.gomodguard.yamlBenjamin Wang1
tests/e2e/member_no_proxy_test.goBenjamin Wang1
tools/etcd-dump-db/meta.goBenjamin Wang1
tests/fixtures/CommonName-root.crtBenjamin Wang1
tests/fixtures/CommonName-root.keyBenjamin Wang1
client/pkg/fileutil/filereader.goBenjamin Wang1
tests/e2e/utl_bbolt_test.goAlok Kumar Singh1
cache/clock.goAlok Kumar Singh1
cache/fake_clock_test.goAlok Kumar Singh1
cache/progress_requestor.goAlok Kumar Singh1
cache/progress_requestor_test.goAlok Kumar Singh1
tools/benchmark/cmd/watch_test.goPujitha Paladugu1
tests/common/leader_id_test.goGyuho Lee1
server/etcdserver/api/snap/db_test.goGyuho Lee1
tests/e2e/snap_db_dirsync_test.goGyuho Lee1
pkg/adt/img/red-black-tree-03-delete-11.pngGyuho Lee1
pkg/adt/img/red-black-tree-04-delete-11.pngGyuho Lee1
pkg/adt/img/red-black-tree-05-delete-11.pngGyuho Lee1
pkg/adt/img/red-black-tree-06-delete-11.pngGyuho Lee1
pkg/adt/img/red-black-tree-07-delete-11.pngGyuho Lee1
pkg/adt/img/red-black-tree-08-delete-11.pngGyuho Lee1

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
Piotr Tabor420107811
Marek Siarkowicz23637617
Gyuho Lee11625230
Matthieu MOREL730457
Benjamin Wang569508
redwrasse41093
Iván Valdés Castillo3819309
Chun-Hung Tseng341134
Fu Wei265517
James Blair262094
Jordan Liggitt23196
Nont21775
Siyuan Zhang18373
Aleksander Mistewicz171457
Xiang Li16169
Peter Chang15321
Anthony Romano148102
Rob Szumski141415
v-zhuravlev141015
Wenjia13126
chenyahui11060
Sahdev Zala11235
joshjms80100
Shyam Jeedigunta8812
demoManito7064

Showing top 25 of 627 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
README.md87Brandon Philips26.1%
go.mod69Chun-Hung Tseng20.9%
CHANGELOG/CHANGELOG-3.5.md66Benjamin Wang27.6%
tests/go.mod56Chun-Hung Tseng21.5%
go.sum56Chun-Hung Tseng21.4%
server/go.mod53Chun-Hung Tseng22.6%
etcdctl/go.mod48Chun-Hung Tseng23.6%
CHANGELOG/CHANGELOG-3.6.md48Benjamin Wang35.2%
etcdutl/go.mod47Chun-Hung Tseng24.0%
CHANGELOG/CHANGELOG-3.4.md45Benjamin Wang28.8%
server/embed/config.go45Benjamin Wang16.4%
client/v3/go.mod44Chun-Hung Tseng24.5%
tools/mod/go.mod43Chun-Hung Tseng25.0%
pkg/go.mod43Chun-Hung Tseng23.0%
tests/go.sum41Chun-Hung Tseng22.9%
api/go.mod40Chun-Hung Tseng24.7%
server/etcdserver/server.go39Marek Siarkowicz41.8%
server/embed/etcd.go38Benjamin Wang19.4%
server/go.sum37Chun-Hung Tseng24.0%
Makefile37Gyuho Lee27.1%