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
2,027
in the current tree
Bus Factor
4
4 authors are primary owner of 1,094 of 2,027 files
Single-Owner Files
440
21.7% of tracked files
Contributors
986
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/numerics/numerics_test_util.pyPeter Hawkins15
docs/internals/constants.mdGeorge Necula11
jax/_src/internal_test_util/export_back_compat_test_data/export_with_specified_sharding.pyGeorge Necula11
jax/_src/internal_test_util/export_back_compat_test_data/export_with_unspecified_sharding.pyGeorge Necula11
tests/numerics/numerics_test_util_test.pyPeter Hawkins10
docs/jax.experimental.sparse.rstJake VanderPlas8
jax/experimental/key_reuse/__init__.pyJake VanderPlas8
tests/filecheck/jax_mlir_ext.filecheck.pyPeter Hawkins8
docs/301/custom-derivatives.mdMatthew Johnson8
jaxlib/config_test.pyPeter Hawkins7
Table: the 100 most-changed of 440 single-owner files
FileSole ownerCommits
tests/numerics/numerics_test_util.pyPeter Hawkins15
docs/internals/constants.mdGeorge Necula11
jax/_src/internal_test_util/export_back_compat_test_data/export_with_specified_sharding.pyGeorge Necula11
jax/_src/internal_test_util/export_back_compat_test_data/export_with_unspecified_sharding.pyGeorge Necula11
tests/numerics/numerics_test_util_test.pyPeter Hawkins10
docs/jax.experimental.sparse.rstJake VanderPlas8
jax/experimental/key_reuse/__init__.pyJake VanderPlas8
tests/filecheck/jax_mlir_ext.filecheck.pyPeter Hawkins8
docs/301/custom-derivatives.mdMatthew Johnson8
jaxlib/config_test.pyPeter Hawkins7
docs/301/remat.mdMatthew Johnson7
jax/_src/lax/lgamma.pyPeter Hawkins6
jaxlib/weak_value_interner.ccPeter Hawkins6
jaxlib/py_compile_only_client.hPeter Hawkins6
tests/custom_partitioning_sharding_rule_test.pyBixia Zheng6
jax/experimental/compute_on.pyYash Katariya5
jax/_src/pallas/mosaic/prefetch.pyRobert Dyro5
jax/_src/lax/erf.pyPeter Hawkins5
jaxlib/weakref_lru_cache_module.ccPeter Hawkins5
jaxlib/weak_value_interner.hPeter Hawkins5
tests/pretty_printer_test.pyPeter Hawkins5
jaxlib/reentrant_hash_set.hPeter Hawkins5
docs/301/vjp-objects.mdMatthew Johnson5
docs/201/precision.mdMatthew Johnson5
docs/301/cookbook.mdMatthew Johnson5
docs/whats-new.mdMatthew Johnson5
jax/experimental/jax2tf/g3doc/jax_primitives_coverage.md.templateGeorge Necula5
docs/jax.experimental.key_reuse.rstJake VanderPlas4
build_wheel.pyjax authors4
jaxlib/strong_lru_cache.ccPeter Hawkins4
tests/numerics/bessel_test.pyPeter Hawkins4
jaxlib/reentrant_hash_map.hPeter Hawkins4
jaxlib/nb_class_ptr.hPeter Hawkins4
docs/301/index.rstMatthew Johnson4
docs/501/export.mdMatthew Johnson4
docs/501/multiprocess.mdMatthew Johnson4
docs/201/index.rstMatthew Johnson4
docs/101/index.rstMatthew Johnson4
examples/ffi/tests/rms_norm_test.pyDan Foreman-Mackey4
jax/_src/tpu/linalg/qdwh.pyJake VanderPlas3
jax/_src/tpu/linalg/stack.pyJake VanderPlas3
docs/jep/25516-effver.mdJake VanderPlas3
docs/jax.typing.rstJake VanderPlas3
jaxlib/mlir/_mlir_libs/traceback_to_location.ccPeter Hawkins3
jaxlib/weak_value_interner_test.pyPeter Hawkins3
jaxlib/reentrant_hash_benchmark.ccPeter Hawkins3
jax/_src/test_warning_util.pyPeter Hawkins3
jaxlib/symlink_files.bzlPeter Hawkins3
tests/filecheck/names.filecheck.pyPeter Hawkins3
docs/501/compilation-cache.mdMatthew Johnson3
docs/501/data-loading.mdMatthew Johnson3
docs/601/jax-primitives.mdMatthew Johnson3
docs/601/jaxpr.mdMatthew Johnson3
docs/101/errors.rstMatthew Johnson3
docs/101/arrays.mdMatthew Johnson3
docs/101/convolutions.mdMatthew Johnson3
docs/101/default_dtypes.mdMatthew Johnson3
docs/101/random.mdMatthew Johnson3
docs/101/state.mdMatthew Johnson3
docs/101/transformations.mdMatthew Johnson3
docs/101/type_promotion.rstMatthew Johnson3
docs/201/aot.mdMatthew Johnson3
docs/201/callbacks.mdMatthew Johnson3
docs/201/control-flow.mdMatthew Johnson3
docs/201/debugging.mdMatthew Johnson3
docs/201/jit.mdMatthew Johnson3
docs/201/memory-spaces.mdMatthew Johnson3
docs/201/placement.mdMatthew Johnson3
docs/201/shard-map.mdMatthew Johnson3
docs/201/sharding.mdMatthew Johnson3
docs/201/slow-compilation.mdMatthew Johnson3
docs/301/hijax-types.mdMatthew Johnson3
docs/301/refs.mdMatthew Johnson3
docs/301/sharding-ad.mdMatthew Johnson3
docs/401/ffi.mdMatthew Johnson3
docs/401/pallas.mdMatthew Johnson3
docs/501/fault-tolerance.rstMatthew Johnson3
docs/501/index.rstMatthew Johnson3
docs/501/shape-polymorphism.mdMatthew Johnson3
jax/_src/internal_test_util/export_back_compat_test_data/export_with_multiple_meshes.pyGeorge Necula3
third_party/external_deps/BUILD.bazelAlexandros Theodoridis3
third_party/external_deps/external_deps.bzl.tplAlexandros Theodoridis3
docs/jax.experimental.multihost_utils.rstFrederic Bastien3
jax/experimental/overlap.pyYash Katariya2
jax/tools/evaluate_sampler_bias_test.pyJake VanderPlas2
docs/jax.flatten_util.rstJake VanderPlas2
docs/_static/type_lattice.svgJake VanderPlas2
jaxlib/tools/wheel_size_test.pyjax authors2
jax/_src/lax/double_word.pyPeter Hawkins2
tests/numerics/arithmetic_test.pyPeter Hawkins2
third_party/py/rules_python_whl_abi_tags.patchPeter Hawkins2
ci/utilities/setup_portserver.shPeter Hawkins2
jaxlib/weak_key_weak_value_cache.hPeter Hawkins2
benchmarks/linalg_benchmark.pyPeter Hawkins2
jax/_src/hashable_array.pyPeter Hawkins2
jaxlib/mlir/_mlir_libs/traceback_to_location.hPeter Hawkins2
jaxlib/custom_call_sharding.hPeter Hawkins2
jaxlib/gpu/gpu_plugin_extension.hPeter Hawkins2
jaxlib/mlir.hPeter Hawkins2
jaxlib/py_client_cpu.hPeter Hawkins2

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
Peter Hawkins5161121,265
Jake VanderPlas26323872
Sergei Lebedev1756759
Matthew Johnson14065495
jax authors11612728
Yash Katariya773432
George Necula619386
Adam Paszke4913280
Justin Fu4423191
Dan Foreman-Mackey4011279
Sharad Vikram398264
Roy Frostig273284
8bitmp3232348
Skye Wanderman-Milne218148
Nitin Srinivasan20468
Benjamin Chetioui193227
Vladimir Belitskiy163134
Paweł Paruzel16126
Allan Renucci14170
Daniel Suo122241
Ruturaj412266
Michael Whittaker121064
Emily Fertig115127
Melissa Weber Mendonça11035
Robert Dyro101127

Showing top 25 of 986 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
tests/lax_numpy_test.py143Jake VanderPlas31.6%
jax/_src/lax/lax.py110Yash Katariya21.2%
jax/_src/numpy/lax_numpy.py110Jake VanderPlas48.9%
tests/lax_test.py85Peter Hawkins29.0%
CHANGELOG.md81Peter Hawkins25.0%
tests/api_test.py80Matthew Johnson35.1%
tests/BUILD80Peter Hawkins24.0%
tests/linalg_test.py78Peter Hawkins39.9%
jax/experimental/jax2tf/jax2tf.py74George Necula35.4%
jax/_src/api.py68Yash Katariya25.1%
jax/_src/interpreters/mlir.py65Yash Katariya25.1%
README.md64Peter Hawkins24.2%
jax/_src/pallas/mosaic/lowering.py62Sergei Lebedev16.4%
jaxlib/BUILD61Peter Hawkins45.6%
tests/pjit_test.py58Yash Katariya64.7%
jax/_src/config.py55Peter Hawkins17.1%
jax/BUILD55Peter Hawkins22.6%
jax/_src/lax/linalg.py55Peter Hawkins26.3%
tests/pallas/BUILD54Adam Paszke12.1%
jax/_src/lax/parallel.py53Yash Katariya23.8%