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,858
in the current tree
Bus Factor
7
7 authors are primary owner of 935 of 1,858 files
Single-Owner Files
492
26.5% of tracked files
Contributors
2,952
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
sklearn/cluster/meson.buildLoic Esteve5
sklearn/utils/_repr_html/features.pyDea María Léon4
sklearn/externals/array_api_extra/_lib/_backends.pyLucas Colley4
sklearn/utils/tests/test_sorting.pyArthur Lacote3
sklearn/feature_extraction/meson.buildLoic Esteve3
sklearn/utils/_repr_html/features.cssDea María Léon3
sklearn/utils/_repr_html/fitted_attributes.pyDea María Léon3
sklearn/utils/_repr_html/tests/test_attributes.pyDea María Léon3
sklearn/callback/tests/test_scoring_monitor.pyJérémie du Boisberranger3
sklearn/callback/tests/test_pickle.pyJérémie du Boisberranger3
Table: the 100 most-changed of 492 single-owner files
FileSole ownerCommits
sklearn/cluster/meson.buildLoic Esteve5
sklearn/utils/_repr_html/features.pyDea María Léon4
sklearn/externals/array_api_extra/_lib/_backends.pyLucas Colley4
sklearn/utils/tests/test_sorting.pyArthur Lacote3
sklearn/feature_extraction/meson.buildLoic Esteve3
sklearn/utils/_repr_html/features.cssDea María Léon3
sklearn/utils/_repr_html/fitted_attributes.pyDea María Léon3
sklearn/utils/_repr_html/tests/test_attributes.pyDea María Léon3
sklearn/callback/tests/test_scoring_monitor.pyJérémie du Boisberranger3
sklearn/callback/tests/test_pickle.pyJérémie du Boisberranger3
sklearn/callback/tests/test_callback_support.pyJérémie du Boisberranger3
sklearn/externals/array_api_compat/cupy/linalg.pyLucas Colley3
sklearn/__check_build/meson.buildLoic Esteve2
sklearn/datasets/meson.buildLoic Esteve2
sklearn/ensemble/meson.buildLoic Esteve2
doc/whats_new/upcoming_changes/array-api/34412.enhancement.rstChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/32042.api.rstChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/34412.fix.rstChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/34572.enhancement.rstChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/34613.enhancement.rstChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/34681.major-feature.rstChristian Lorentzen2
sklearn/linear_model/_glm/tests/test_newton_solver.pyChristian Lorentzen2
doc/whats_new/upcoming_changes/sklearn.linear_model/33759.enhancement.rstChristian Lorentzen2
doc/data_interoperability.rstChristian Lorentzen2
doc/modules/df_output_transform.rstChristian Lorentzen2
.github/workflows/autoclose-comment.ymlStefanie Senger2
doc/templates/funding_links.htmlOlivier Grisel2
sklearn/utils/_repr_html/common.pyDea María Léon2
doc/whats_new/upcoming_changes/sklearn.neighbors/34187.efficiency.rstItamar Turner-Trauring2
sklearn/callback/tests/_common/callbacks.pyJérémie du Boisberranger2
sklearn/callback/tests/test_progressbar.pyJérémie du Boisberranger2
sklearn/callback/_callback_support.pyJérémie du Boisberranger2
sklearn/externals/array_api_compat/cupy/fft.pyLucas Colley2
sklearn/externals/array_api_extra/_lib/__init__.pyLucas Colley2
sklearn/utils/tests/test_bunch.pyThomas J. Fan2
build_tools/MakefileTom Dupré la Tour2
doc/images/intel-small.pngChiara Marmo2
doc/images/intel.pngChiara Marmo2
sklearn/cluster/tests/__init__.pyFabian Pedregosa2
sklearn/covariance/tests/__init__.pyFabian Pedregosa2
sklearn/datasets/data/diabetes_target.csv.gzFabian Pedregosa2
sklearn/datasets/data/digits.csv.gzFabian Pedregosa2
sklearn/datasets/data/linnerud_exercise.csvFabian Pedregosa2
sklearn/datasets/data/linnerud_physiological.csvFabian Pedregosa2
sklearn/datasets/images/china.jpgFabian Pedregosa2
sklearn/datasets/images/flower.jpgFabian Pedregosa2
sklearn/datasets/tests/__init__.pyFabian Pedregosa2
sklearn/datasets/tests/data/svmlight_invalid.txtFabian Pedregosa2
sklearn/decomposition/tests/__init__.pyFabian Pedregosa2
sklearn/feature_extraction/tests/__init__.pyFabian Pedregosa2
sklearn/feature_selection/tests/__init__.pyFabian Pedregosa2
sklearn/gaussian_process/tests/__init__.pyFabian Pedregosa2
sklearn/linear_model/tests/__init__.pyFabian Pedregosa2
sklearn/metrics/tests/__init__.pyFabian Pedregosa2
sklearn/mixture/tests/__init__.pyFabian Pedregosa2
sklearn/svm/src/libsvm/libsvm_template.cppFabian Pedregosa2
sklearn/svm/tests/__init__.pyFabian Pedregosa2
sklearn/tests/__init__.pyFabian Pedregosa2
sklearn/utils/tests/__init__.pyFabian Pedregosa2
doc/whats_new/upcoming_changes/changed-models/34786.other.rstArthur Lacote1
doc/whats_new/upcoming_changes/many-modules/34876.efficiency.rstArthur Lacote1
doc/whats_new/upcoming_changes/changed-models/34928.other.rstArthur Lacote1
sklearn/tests/test_min_dependencies_consistency.pyArthur Lacote1
doc/whats_new/upcoming_changes/sklearn.preprocessing/34392.efficiency.rstArthur Lacote1
doc/whats_new/upcoming_changes/sklearn.ensemble/34248.efficiency.rstArthur Lacote1
sklearn/tree/tests/test_swap.pyArthur Lacote1
sklearn/tree/tests/test_fenwick.pyArthur Lacote1
build_tools/wheels/configure_macos_env.shVirgil Chan1
cibuildwheel.tomlVirgil Chan1
.github/scripts/close-pr-if-issue-not-ready.pyLoic Esteve1
.github/workflows/pull-request-opened-or-edited.ymlLoic Esteve1
build_tools/github/combine_coverage_reports.shLoic Esteve1
build_tools/github/pylatest_pip_scipy_dev_environment.ymlLoic Esteve1
build_tools/github/test_docs.shLoic Esteve1
build_tools/github/test_pytest_soft_dependency.shLoic Esteve1
build_tools/github/test_script.shLoic Esteve1
sklearn/externals/array_api_compat/py.typedLoic Esteve1
sklearn/externals/array_api_compat/torch/_typing.pyLoic Esteve1
doc/whats_new/upcoming_changes/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/array-api/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/changed-models/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/custom-top-level/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/many-modules/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/metadata-routing/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/security/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.base/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.calibration/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.cluster/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.compose/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.covariance/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.cross_decomposition/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.datasets/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.decomposition/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.discriminant_analysis/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.dummy/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.ensemble/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.exceptions/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.feature_extraction/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.feature_selection/.gitkeepLoic Esteve1
doc/whats_new/upcoming_changes/sklearn.gaussian_process/.gitkeepLoic Esteve1

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
Thomas J. Fan29425935
Adrin Jalali194171,007
Loic Esteve12462708
Jérémie du Boisberranger9320678
Jack Liu8885115
Guillaume Lemaitre7121612
Andreas Mueller719446
Fabian Pedregosa6325213
Christian Lorentzen5720504
Olivier Grisel4512513
Lucas Colley441173
Omar Salman3531181
Yao Xiao303245
Gael Varoquaux304244
Lars Buitinck290294
Dea María Léon2713119
scikit-learn-bot24037
Dimitri Papadopoulos Orfanos230656
Nicolas Hug203440
Chiara Marmo2017143
Lucy Liu195196
Jan Hendrik Metzen19145
Joel Nothman185251
Gilles Louppe18198
Tim Head173184

Showing top 25 of 2952 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
doc/whats_new.rst216Andreas Mueller14.7%
sklearn/tests/test_common.py140Andreas Mueller21.0%
doc/modules/model_evaluation.rst137Arnaud Joly15.8%
sklearn/utils/estimator_checks.py135Andreas Mueller11.2%
sklearn/metrics/pairwise.py129Andreas Mueller9.6%
sklearn/feature_extraction/text.py128Lars Buitinck12.4%
doc/modules/linear_model.rst121Fabian Pedregosa7.3%
doc/modules/clustering.rst121Gael Varoquaux15.8%
doc/developers/contributing.rst114Loic Esteve8.7%
sklearn/utils/validation.py111Thomas J. Fan12.6%
doc/whats_new/v0.20.rst111Joel Nothman16.3%
sklearn/metrics/_classification.py105Lucy Liu11.1%
sklearn/pipeline.py103Andreas Mueller12.2%
sklearn/tests/test_docstrings.py103Tom Mathews6.5%
sklearn/model_selection/_split.py103Lucy Liu6.2%
sklearn/model_selection/_search.py102Adrin Jalali9.4%
sklearn/model_selection/_validation.py101Thomas J. Fan7.5%
doc/whats_new/v0.24.rst96Guillaume Lemaitre12.5%
sklearn/utils/extmath.py91Lars Buitinck7.4%
sklearn/preprocessing/tests/test_data.py90Andreas Mueller7.0%