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
6,617
in the current tree
Bus Factor
5
5 authors are primary owner of 3,650 of 6,617 files
Single-Owner Files
2,174
32.9% of tracked files
Contributors
710
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
core/src/main/java/org/apache/iceberg/metrics/ScanReportParser.javaEduard Tudenhoefner9
core/src/main/java/org/apache/iceberg/view/BaseViewVersion.javaEduard Tudenhoefner6
core/src/main/java/org/apache/iceberg/Tracking.javaAnoop Johnson5
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ExtendedDataSourceV2Strategy.scalaManu Zhang5
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestViews.javaManu Zhang5
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/Spark3Util.javaManu Zhang5
core/src/test/java/org/apache/iceberg/PartitionStatisticsScanTestBase.javagaborkaszab5
core/src/test/resources/org/apache/iceberg/view/ViewMetadataInvalidCurrentSchema.jsonEduard Tudenhoefner5
api/src/main/java/org/apache/iceberg/metrics/Timer.javaEduard Tudenhoefner5
core/src/test/java/org/apache/iceberg/rest/auth/TestOAuth2Manager.javaAlexandre Dutra5
Table: the 100 most-changed of 2,174 single-owner files
FileSole ownerCommits
core/src/main/java/org/apache/iceberg/metrics/ScanReportParser.javaEduard Tudenhoefner9
core/src/main/java/org/apache/iceberg/view/BaseViewVersion.javaEduard Tudenhoefner6
core/src/main/java/org/apache/iceberg/Tracking.javaAnoop Johnson5
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ExtendedDataSourceV2Strategy.scalaManu Zhang5
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestViews.javaManu Zhang5
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/Spark3Util.javaManu Zhang5
core/src/test/java/org/apache/iceberg/PartitionStatisticsScanTestBase.javagaborkaszab5
core/src/test/resources/org/apache/iceberg/view/ViewMetadataInvalidCurrentSchema.jsonEduard Tudenhoefner5
api/src/main/java/org/apache/iceberg/metrics/Timer.javaEduard Tudenhoefner5
core/src/test/java/org/apache/iceberg/rest/auth/TestOAuth2Manager.javaAlexandre Dutra5
spark/v4.2/build.gradleManu Zhang4
spark/v4.2/spark-extensions/src/jmh/java/org/apache/iceberg/DeleteFileIndexBenchmark.javaManu Zhang4
spark/v4.2/spark-extensions/src/jmh/java/org/apache/iceberg/spark/MergeCardinalityCheckBenchmark.javaManu Zhang4
spark/v4.2/spark-extensions/src/jmh/java/org/apache/iceberg/spark/PlanningBenchmark.javaManu Zhang4
spark/v4.2/spark-extensions/src/jmh/java/org/apache/iceberg/spark/TaskGroupPlanningBenchmark.javaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/CheckViews.scalaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveViews.scalaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/RewriteViewCommands.scalaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/CreateIcebergView.scalaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/views/ResolvedV2View.scalaManu Zhang4
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ShowV2ViewsExec.scalaManu Zhang4
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestMergeOnReadDelete.javaManu Zhang4
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestRewritePositionDeleteFilesProcedure.javaManu Zhang4
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestSystemFunctionPushDownDQL.javaManu Zhang4
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/source/PlanUtils.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/action/DeleteOrphanFilesBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersFlatDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetReadersNestedDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersFlatDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/data/parquet/SparkParquetWritersNestedDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/AvroWritersBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceFlatAvroDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceNestedAvroDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceFlatORCDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedListORCDataWriteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/orc/IcebergSourceNestedORCDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataFilterBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceFlatParquetDataWriteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedListParquetDataWriteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataFilterBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataReadBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceNestedParquetDataWriteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetEqDeleteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetMultiDeleteFileBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetPosDeleteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/IcebergSourceParquetWithUnrelatedDeleteBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/ParquetWritersBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadDictionaryEncodedFlatParquetDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadFlatParquetDataBenchmark.javaManu Zhang4
spark/v4.2/spark/src/jmh/java/org/apache/iceberg/spark/source/parquet/vectorized/VectorizedReadParquetDecimalBenchmark.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/RollbackStagedTable.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/SparkRewriteTableCatalog.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/SparkSQLProperties.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/data/SparkParquetWriters.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/functions/BucketFunction.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/functions/HoursFunction.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/BaseSparkTable.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/HasIcebergCatalog.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/SparkChangelogTable.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/SparkView.javaManu Zhang4
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/StagedSparkTable.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/DummyMetricsServlet.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/data/GenericsHelpers.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/data/RandomData.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/data/TestSparkParquetReader.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/source/TestIcebergSpark.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/sql/TestAlterTable.javaManu Zhang4
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/variant/TestVariantShredding.javaManu Zhang4
core/src/main/java/org/apache/iceberg/BasePartitionStatisticsScan.javagaborkaszab4
core/src/test/java/org/apache/iceberg/PartitionStatisticsTestBase.javagaborkaszab4
flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/EqualityConvertCommitter.javaMaximilian Michels4
flink/v1.20/flink/src/test/java/org/apache/iceberg/flink/sink/dynamic/TestCompareSchemasVisitor.javaMaximilian Michels4
core/src/test/resources/org/apache/iceberg/view/ViewMetadataInvalidCurrentVersion.jsonEduard Tudenhoefner4
core/src/test/resources/org/apache/iceberg/view/ViewMetadataMissingCurrentVersion.jsonEduard Tudenhoefner4
core/src/test/resources/org/apache/iceberg/view/ViewMetadataMissingLocation.jsonEduard Tudenhoefner4
api/src/main/java/org/apache/iceberg/metrics/LoggingMetricsReporter.javaEduard Tudenhoefner4
core/src/main/java/org/apache/iceberg/metrics/CounterResultParser.javaEduard Tudenhoefner4
flink/v2.2/flink/src/main/java/org/apache/iceberg/flink/FlinkCatalog.javaTalat UYARER4
core/src/main/java/org/apache/iceberg/metrics/ScanMetricsUtil.javaAnton Okolnychyi4
api/src/main/java/org/apache/iceberg/variants/VariantData.javaRyan Blue3
core/src/main/java/org/apache/iceberg/EntryStatus.javaAnoop Johnson3
spark/v4.1/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/ExtendedDataSourceV2Strategy.scalaManu Zhang3
spark/v4.1/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/RenameV2ViewExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergAlterV2ViewSetPropertiesExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergAlterV2ViewUnsetPropertiesExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergDescribeV2ViewExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergRenameV2ViewExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergShowCreateV2ViewExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/IcebergShowV2ViewPropertiesExec.scalaManu Zhang3
spark/v4.2/spark-extensions/src/test/java/org/apache/iceberg/spark/extensions/TestViewCatalogCache.javaManu Zhang3
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/SparkViewDependenciesParser.javaManu Zhang3
spark/v4.2/spark/src/main/java/org/apache/iceberg/spark/source/SparkViewQueryColumnNamesParser.javaManu Zhang3
spark/v4.2/spark/src/main/scala/org/apache/spark/sql/catalyst/analysis/ViewUtil.scalaManu Zhang3
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/TestSparkCatalogIdentifierMapping.javaManu Zhang3
spark/v4.2/spark/src/test/java/org/apache/iceberg/spark/source/TestStructInternalRowGeospatial.javaManu Zhang3
spark/v4.1/spark-extensions/src/main/scala/org/apache/spark/sql/catalyst/analysis/ViewUtil.scalaManu Zhang3
spark/v4.1/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/AvroWritersBenchmark.javaManu Zhang3
spark/v4.1/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceFlatAvroDataReadBenchmark.javaManu Zhang3
spark/v4.1/spark/src/jmh/java/org/apache/iceberg/spark/source/avro/IcebergSourceNestedAvroDataReadBenchmark.javaManu Zhang3

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
Manu Zhang1,2969222,119
Huaxin Gao69251,212
Maximilian Michels651351,080
Talat UYARER5695161,203
Eduard Tudenhoefner442951,779
Ryan Blue42132867
Steven Zhen Wu24321524
Anton Okolnychyi211251,004
pvary17924412
mccheah1082291
Tom Tanaka890275
GuoYu6743194
Yuya Ebihara633313
Xianyang Liu533165
Brian "bits" Olsen5234109
Bryan Keller4626160
gaborkaszab4013184
Russell Spitzer394439
Piotr Findeisen386386
Kevin Liu377140
jbewing373194
Karuppayya34278
Amogh Jahagirdar337412
ggershinsky33886
Alexandre Dutra322186

Showing top 25 of 710 contributors.

Most shared files

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

FileContributorsPrimary ownerOwner share
build.gradle110Ryan Blue12.7%
format/spec.md53emkornfield10.0%
gradle/libs.versions.toml51Yuya Ebihara20.7%
open-api/rest-catalog-open-api.yaml45Eduard Tudenhoefner14.4%
site/docs/vendors.md45Robin Moffatt4.2%
core/src/main/java/org/apache/iceberg/TableProperties.java44Anton Okolnychyi25.7%
core/src/main/java/org/apache/iceberg/TableMetadata.java42Ryan Blue29.0%
parquet/src/main/java/org/apache/iceberg/parquet/Parquet.java39Ryan Blue15.9%
site/mkdocs.yml38Ryan Blue19.6%
settings.gradle38Ryan Blue14.7%
hive-metastore/src/main/java/org/apache/iceberg/hive/HiveTableOperations.java37Marton Bod10.4%
hive-metastore/src/main/java/org/apache/iceberg/hive/HiveCatalog.java37Naveen Kumar8.9%
README.md36Ryan Blue26.5%
core/src/main/java/org/apache/iceberg/rest/RESTSessionCatalog.java34Eduard Tudenhoefner34.5%
core/src/test/java/org/apache/iceberg/rest/TestRESTCatalog.java34Eduard Tudenhoefner30.6%
core/src/test/java/org/apache/iceberg/TestTableMetadata.java34Ryan Blue21.9%
open-api/rest-catalog-open-api.py33Fokko Driesprong13.0%
site/nav.yml33Brian "bits" Olsen10.3%
core/src/main/java/org/apache/iceberg/TableMetadataParser.java32Ryan Blue19.0%
core/src/main/java/org/apache/iceberg/BaseMetastoreTableOperations.java32Ryan Blue15.9%