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
4,606
in the current tree
Bus Factor
3
3 authors are primary owner of 2,327 of 4,606 files
Single-Owner Files
1,020
22.1% of tracked files
Contributors
1,531
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/release/next_whats_new/new_barcontainer_properties.rstRoberto Moura7
lib/matplotlib/tests/baseline_images/test_axes/symlog2.pdfMichael Droettboom7
subprojects/freetype2.wrapElliott Sales de Andrade5
lib/matplotlib/texmanager.pyiKyle Sunden5
lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.pngMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_04.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_13.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_04.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_10.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_13.pdfMichael Droettboom5
Table: the 100 most-changed of 1,020 single-owner files
FileSole ownerCommits
doc/release/next_whats_new/new_barcontainer_properties.rstRoberto Moura7
lib/matplotlib/tests/baseline_images/test_axes/symlog2.pdfMichael Droettboom7
subprojects/freetype2.wrapElliott Sales de Andrade5
lib/matplotlib/texmanager.pyiKyle Sunden5
lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.pngMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_04.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_13.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_04.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_10.pdfMichael Droettboom5
lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_13.pdfMichael Droettboom5
doc/api/prev_api_changes/api_changes_3.6.0.rstElliott Sales de Andrade4
doc/api/prev_api_changes/api_changes_3.4.0/development.rstElliott Sales de Andrade4
doc/api/prev_api_changes/api_changes_3.4.0.rstElliott Sales de Andrade4
lib/matplotlib/backends/web_backend/css/mpl.cssElliott Sales de Andrade4
doc/api/next_api_changes.rstTim Hoffmann4
lib/matplotlib/tests/test_backends_rendering.pyAlbert Y. Shih4
.github/workflows/autoclose_comment.ymlMelissa Weber Mendonça4
lib/matplotlib/projections/geo.pyiKyle Sunden4
lib/matplotlib/tests/baseline_images/test_axes/polycollection_joinstyle.pdfMichael Droettboom4
lib/matplotlib/tests/baseline_images/test_axes/arc_ellipse.pdfMichael Droettboom4
lib/matplotlib/testing/decorators.pyiElliott Sales de Andrade3
lib/matplotlib/backends/web_backend/.eslintrc.jsElliott Sales de Andrade3
galleries/examples/ticks/date.pyTim Hoffmann3
galleries/tutorials/coding_shortcuts.pyTim Hoffmann3
.github/workflows/windows-tests.ymlGreg Lucas3
galleries/examples/lines_bars_and_markers/pareto_chart.pySebastian Torres3
lib/matplotlib/_style_helpers.pyRuth Comer3
tools/check_typehints.pyKyle Sunden3
lib/matplotlib/_color_data.pyiKyle Sunden3
galleries/examples/ticks/multilevel_ticks.pyJody Klymak3
galleries/users_explain/figure/index.rstJody Klymak3
galleries/users_explain/artists/index.rstJody Klymak3
galleries/examples/showcase/pan_zoom_overlap.pyRaphael Quast3
subprojects/sheenbidi.wrapElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_backend_pdf/ttc_type3.pdfElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_backend_ps/ttc_type3.epsElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_backend_ps/ttc_type42.epsElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.pdfElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.pngElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_ft2font/last_resort.svgElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_legend/hatching.pngElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_offsetbox/anchoredtext_align.pngElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_patheffects/stroked_text.pngElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_usetex/rotation.pngElliott Sales de Andrade2
lib/matplotlib/tests/baseline_images/test_usetex/rotation.svgElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/anchored_direction_arrows.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/anchored_direction_arrows_many_args.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/image_grid_single_bottom_label_mode_1.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/inverted_zoomed_axes.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/twin_axes_empty_and_removed.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/baseline_images/test_axes_grid1/zoomed_axes.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist_labelbase.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_axis_artist/axis_artist_ticklabels.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_axislines/Subplot.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_axislines/SubplotZero.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_floating_axes/curvelinear3.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_floating_axes/curvelinear4.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_grid_helper_curvelinear/axis_direction.pngElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/baseline_images/test_grid_helper_curvelinear/custom_transform.pngElliott Sales de Andrade2
lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube.pngElliott Sales de Andrade2
lib/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube_ortho.pngElliott Sales de Andrade2
lib/mpl_toolkits/axes_grid1/tests/conftest.pyElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/tests/conftest.pyElliott Sales de Andrade2
lib/mpl_toolkits/mplot3d/tests/conftest.pyElliott Sales de Andrade2
meson.optionsElliott Sales de Andrade2
ci/schemas/conda-environment.jsonElliott Sales de Andrade2
lib/mpl_toolkits/axisartist/meson.buildElliott Sales de Andrade2
doc/_static/zenodo_cache/5706396.svgElliott Sales de Andrade2
doc/_static/zenodo_cache/5773480.svgElliott Sales de Andrade2
doc/_static/zenodo_cache/5194481.svgElliott Sales de Andrade2
galleries/examples/text_labels_and_annotations/gallery_order.txtTim Hoffmann2
galleries/plot_types/arrays/gallery_order.txtTim Hoffmann2
galleries/examples/subplots_axes_and_figures/multiple_yaxis_with_spines.pyTim Hoffmann2
galleries/examples/ticks/engineering_formatter.pyTim Hoffmann2
galleries/examples/statistics/cohere.pyTim Hoffmann2
galleries/examples/statistics/csd_demo.pyTim Hoffmann2
galleries/examples/statistics/xcorr_acorr_demo.pyTim Hoffmann2
lib/matplotlib/tests/baseline_images/test_patches/all_quadrants_arcs.svgThomas A Caswell2
lib/matplotlib/tests/baseline_images/test_patches/multi_color_hatch.svgThomas A Caswell2
lib/matplotlib/tests/baseline_images/test_path/nan_path.svgThomas A Caswell2
lib/matplotlib/tests/baseline_images/test_scale/logscale_nonpos_values.pngThomas A Caswell2
lib/matplotlib/tests/baseline_images/test_arrow_patches/fancyarrow_dash.pngThomas A Caswell2
doc/devel/MEP/MEP21.rstThomas A Caswell2
lib/matplotlib/tests/baseline_images/test_backends_rendering/blend_groups_agg.pngAlbert Y. Shih2
lib/matplotlib/tests/baseline_images/test_backends_rendering/blend_groups_cairo.pngAlbert Y. Shih2
lib/matplotlib/tests/baseline_images/test_backends_rendering/fill_rules_pgf.pdfAlbert Y. Shih2
lib/matplotlib/tests/baseline_images/test_image/image_bounds_handling.pngAlbert Y. Shih2
doc/release/next_whats_new/contourset_set_data.rstEric Larson2
galleries/examples/mplot3d/axlim_clip.pyScott Shambaugh2
galleries/examples/mplot3d/fillbetween3d.pyScott Shambaugh2
galleries/examples/mplot3d/fillunder3d.pyScott Shambaugh2
tools/run_examples.pyAntony Lee2
doc/_static/zenodo_cache/16999430.svgKyle Sunden2
doc/_static/zenodo_cache/14940554.svgKyle Sunden2
doc/_static/zenodo_cache/15375714.svgKyle Sunden2
doc/api/prev_api_changes/api_changes_3.10.0.rstKyle Sunden2
doc/api/prev_api_changes/api_changes_3.10.0/behavior.rstKyle Sunden2
doc/api/prev_api_changes/api_changes_3.10.0/development.rstKyle Sunden2
doc/api/prev_api_changes/api_changes_3.10.0/removals.rstKyle Sunden2

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
Michael Droettboom1,4212092,334
Víctor Zabalza46001,003
Elliott Sales de Andrade4461902,925
Tim Hoffmann38757919
Thomas A Caswell357441,918
Jody Klymak231112938
Antony Lee17614651
Kyle Sunden12536385
David Stansby8973402
Scott Shambaugh699180
John Hunter6655174
hannah551194
Oscar Gustafsson509394
Albert Y. Shih4934213
Ruth Comer4812279
ImportanceOfBeingErnest4140100
farquh39042
Jouni K. Seppänen2821129
Ratnabali Dutta28038
katrielester23025
Trygve Magnus Ræder161052
odile15019
watkinrt15017
Ronald Hartley-Davies15017
Ian Thomas13683

Showing top 25 of 1531 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
lib/matplotlib/axes/_axes.py283Antony Lee14.2%
lib/matplotlib/tests/test_axes.py219Antony Lee12.3%
lib/matplotlib/pyplot.py181Antony Lee16.7%
lib/matplotlib/axes/_base.py128Antony Lee24.3%
lib/matplotlib/__init__.py125Antony Lee15.3%
lib/matplotlib/rcsetup.py121Antony Lee15.0%
lib/matplotlib/backend_bases.py116Antony Lee21.1%
lib/matplotlib/figure.py114Antony Lee18.3%
lib/matplotlib/patches.py103Antony Lee16.6%
lib/mpl_toolkits/mplot3d/axes3d.py97Antony Lee20.7%
lib/matplotlib/widgets.py91Antony Lee12.9%
lib/matplotlib/ticker.py91Antony Lee15.4%
lib/matplotlib/axis.py91Antony Lee16.6%
lib/matplotlib/colors.py88Antony Lee16.5%
lib/matplotlib/text.py86Antony Lee15.6%
lib/matplotlib/legend.py83Antony Lee13.7%
lib/matplotlib/lines.py82Michael Droettboom17.0%
lib/matplotlib/image.py78Antony Lee16.7%
lib/matplotlib/animation.py73Antony Lee19.7%
lib/matplotlib/collections.py72Michael Droettboom15.0%