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
9,245
in the current tree
Bus Factor
2
2 authors are primary owner of 5,836 of 9,245 files
Single-Owner Files
6,869
74.3% of tracked files
Contributors
392
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
packages/svelte/src/compiler/phases/3-transform/client/visitors/FunctionDeclaration.jsRich Harris6
packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/function.jsRich Harris6
packages/svelte/messages/compile-warnings/options.mdRich Harris6
playgrounds/sandbox/svelte.config.jsRich Harris5
playgrounds/sandbox/index.htmlRich Harris5
packages/svelte/tests/compiler-errors/samples/attribute-sequence-expression/_config.jsRich Harris4
packages/svelte/src/compiler/phases/3-transform/server/visitors/Identifier.jsRich Harris4
benchmarking/benchmarks/reactivity/util.jsRich Harris4
packages/svelte/src/internal/server/hydration.jsRich Harris4
packages/svelte/tests/migrate/samples/slots-with-$$props/output.sveltePaolo Ricciuti4
Table: the 100 most-changed of 6,869 single-owner files
FileSole ownerCommits
packages/svelte/src/compiler/phases/3-transform/client/visitors/FunctionDeclaration.jsRich Harris6
packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/function.jsRich Harris6
packages/svelte/messages/compile-warnings/options.mdRich Harris6
playgrounds/sandbox/svelte.config.jsRich Harris5
playgrounds/sandbox/index.htmlRich Harris5
packages/svelte/tests/compiler-errors/samples/attribute-sequence-expression/_config.jsRich Harris4
packages/svelte/src/compiler/phases/3-transform/server/visitors/Identifier.jsRich Harris4
benchmarking/benchmarks/reactivity/util.jsRich Harris4
packages/svelte/src/internal/server/hydration.jsRich Harris4
packages/svelte/tests/migrate/samples/slots-with-$$props/output.sveltePaolo Ricciuti4
AGENTS.mdRich Harris3
packages/svelte/tests/runtime-runes/samples/effect-loop-infinite/_config.jsRich Harris3
packages/svelte/tests/parser-modern/samples/attachments/output.jsonRich Harris3
packages/svelte/tests/runtime-runes/samples/async-snippet-coordinated-mount/Child.svelteRich Harris3
packages/svelte/tests/runtime-runes/samples/async-snippet-coordinated-mount/_config.jsRich Harris3
packages/svelte/tests/runtime-runes/samples/async-snippet-coordinated-mount/main.svelteRich Harris3
packages/svelte/tests/runtime-runes/samples/async-binding-update-while-focused-2/main.svelteRich Harris3
playgrounds/sandbox/vite.config.jsRich Harris3
packages/svelte/src/compiler/phases/3-transform/client/visitors/BinaryExpression.jsRich Harris3
packages/svelte/tests/snapshot/samples/destructured-assignments/_expected/server/index.svelte.jsRich Harris3
documentation/docs/06-runtime/04-imperative-component-api.mdRich Harris3
packages/svelte/src/internal/client/dom/elements/bindings/props.jsRich Harris3
packages/svelte/tests/compiler-errors/samples/runes-before-after-update/_config.jsRich Harris3
packages/svelte/tests/validator/samples/runes-referenced-nonstate/warnings.jsonRich Harris3
packages/svelte/tests/runtime-runes/samples/form-default-value/main.svelteSimon H3
packages/svelte/tests/validator/samples/invalid-node-placement-6/errors.jsonSimon H3
packages/svelte/tests/css/samples/not-selector-global/expected.cssSimon H3
packages/svelte/tests/css/samples/not-selector-global/input.svelteSimon H3
packages/svelte/tests/css/samples/not-selector/_config.jsSimon H3
packages/svelte/tests/migrate/samples/svelte-self-skip-filename/_config.jsPaolo Ricciuti3
documentation/docs/98-reference/.generated/server-warnings.mdElliott Johnson3
packages/svelte/messages/server-warnings/warnings.mdElliott Johnson3
packages/svelte/src/internal/server/warnings.jsElliott Johnson3
packages/svelte/tests/runtime-runes/samples/async-if-after-await-in-script/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/await-html-hydration/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-attribute-without-state/_config.jsRich Harris2
documentation/docs/03-template-syntax/02-if.mdRich Harris2
documentation/docs/03-template-syntax/04-key.mdRich Harris2
documentation/docs/03-template-syntax/15-in-and-out.mdRich Harris2
documentation/docs/04-styling/02-global-styles.mdRich Harris2
documentation/docs/04-styling/03-custom-properties.mdRich Harris2
documentation/docs/98-reference/21-svelte-attachments.mdRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_avoidable.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_broad.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_deep.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_diamond.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_mux.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_repeated.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_triangle.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/kairo_unstable.bench.jsRich Harris2
benchmarking/benchmarks/reactivity/tests/mol.bench.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/fork-derived-class-instance/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/fork-derived-class-instance/main.svelteRich Harris2
packages/svelte/src/internal/client/reactivity/status.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-abort-signal/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-binding-update-while-focused-3/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/async-block-reject-each-during-init/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-effect-after-await/Child.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/async-effect-after-await/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-binding-update-while-focused-2/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-derived-module/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-if/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-if/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/async-linear-order-same-derived/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-linear-order-same-derived/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/async-redirect/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/async-redirect/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-6/A.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-6/B.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-6/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-6/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-7/A.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-7/B.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-7/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-order-7/_config.jsRich Harris2
packages/svelte/knip.jsonRich Harris2
packages/svelte/src/compiler/phases/3-transform/client/visitors/BreakStatement.jsRich Harris2
packages/svelte/src/compiler/phases/3-transform/client/visitors/ExportNamedDeclaration.jsRich Harris2
packages/svelte/src/store/shared/index.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/event-global-hydration-error-cleanup/_config.jsRich Harris2
packages/svelte/tests/snapshot/samples/destructured-assignments/index.svelte.jsRich Harris2
packages/svelte/tests/css/samples/nested-css/expected.cssRich Harris2
packages/svelte/tests/css/samples/nested-css/input.svelteRich Harris2
packages/svelte/tests/runtime-legacy/samples/lifecycle-render-afterUpdate2/Child.svelteRich Harris2
packages/svelte/tests/runtime-legacy/samples/lifecycle-render-afterUpdate2/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/action-context/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/action-context/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/before-update-in-legacy-child/Child.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/before-update-in-legacy-child/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-root-2/_config.jsRich Harris2
packages/svelte/tests/runtime-runes/samples/effect-root-2/main.svelteRich Harris2
packages/svelte/tests/runtime-runes/samples/props-equality/main.svelteRich Harris2
packages/svelte/tests/snapshot/samples/async-in-derived/index.svelteSimon H2
packages/svelte/tests/runtime-runes/samples/async-reactivity-loss-for-await-break-return/_config.jsSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-1/_config.jsSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-2/_config.jsSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-3/_config.jsSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-3/main.svelteSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-fork-2/_config.jsSimon H2
packages/svelte/tests/runtime-runes/samples/async-state-new-branch-fork-5/_config.jsSimon H2

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
Simon Holthausen3,8353,0654,368
Rich Harris2,0019772,695
Simon H1,2448811,917
Dominic Gannaway6566161,381
Paolo Ricciuti580533895
Elliott Johnson174157392
7nik9088167
Nic Polumeyv5552142
adiGuba503498
ComputerGuy4747211
Yuichiro Yamashita211339
David171730
Ahmad S.161548
Fedor Nezhivoi151528
Tan Li Hau141242
wackbyte141026
Ben McCann134105
Tee Ming12820
Mathias Picker11772
Khaled Waleed111120
Nguyen Tran11716
Yuki Ishii11615
Serghei111113
Daniel Imfeld101015
gtmnayan8034

Showing top 25 of 392 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
packages/svelte/types/index.d.ts47Rich Harris35.5%
package.json46Rich Harris59.9%
README.md42Rich Harris29.5%
packages/svelte/elements.d.ts37Frédéric Crozatier15.4%
.github/workflows/ci.yml32Ben McCann13.6%
packages/svelte/src/internal/client/dom/elements/attributes.js25Rich Harris26.5%
packages/svelte/src/compiler/phases/2-analyze/index.js24Rich Harris36.7%
packages/svelte/src/internal/client/runtime.js23Dominic Gannaway40.3%
packages/svelte/package.json23Rich Harris35.8%
.gitignore23Rich Harris54.9%
pnpm-lock.yaml22Rich Harris25.4%
packages/svelte/src/compiler/phases/3-transform/server/transform-server.js21Rich Harris42.2%
documentation/docs/07-misc/07-v5-migration-guide.md21Rich Harris14.3%
packages/svelte/src/internal/client/render.js20Rich Harris44.0%
packages/svelte/src/compiler/errors.js20Simon H31.4%
packages/svelte/src/internal/client/index.js19Rich Harris45.9%
CONTRIBUTING.md19Ben McCann20.6%
packages/svelte/src/compiler/phases/3-transform/client/transform-client.js18Rich Harris46.5%
packages/svelte/src/compiler/phases/scope.js18Rich Harris41.2%
packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js17Rich Harris39.5%