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 only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.
| File | Sole owner | Commits |
|---|---|---|
| flink-table/flink-table-common/src/main/java/org/apache/flink/table/annotation/ArgumentTrait.java | Timo Walther | 12 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/physical/stream/StreamPhysicalMultiJoin.java | Gustavo de Morais | 11 |
| tools/ci/verify_bundled_optional.sh | Chesnay Schepler | 11 |
| flink-clients/src/main/java/org/apache/flink/client/deployment/application/PackagedProgramApplication.java | Yi Zhang | 10 |
| flink-table/flink-sql-jdbc-driver/src/main/java/org/apache/flink/table/jdbc/FlinkConnection.java | Fang Yong | 9 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/four-way-complex-updating-join-with-restore/plan/four-way-complex-updating-join-with-restore.json | Gustavo de Morais | 8 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-inner-join-with-restore/plan/three-way-inner-join-with-restore.json | Gustavo de Morais | 7 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-join-with-time-attributes-with-restore/plan/three-way-join-with-time-attributes-with-restore.json | Gustavo de Morais | 7 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-left-outer-join-with-restore/plan/three-way-left-outer-join-with-restore.json | Gustavo de Morais | 7 |
| flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/InternalSourceSplitMetricGroup.java | Efrat Levitan | 7 |
| File | Sole owner | Commits |
|---|---|---|
| flink-table/flink-table-common/src/main/java/org/apache/flink/table/annotation/ArgumentTrait.java | Timo Walther | 12 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/physical/stream/StreamPhysicalMultiJoin.java | Gustavo de Morais | 11 |
| tools/ci/verify_bundled_optional.sh | Chesnay Schepler | 11 |
| flink-clients/src/main/java/org/apache/flink/client/deployment/application/PackagedProgramApplication.java | Yi Zhang | 10 |
| flink-table/flink-sql-jdbc-driver/src/main/java/org/apache/flink/table/jdbc/FlinkConnection.java | Fang Yong | 9 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/four-way-complex-updating-join-with-restore/plan/four-way-complex-updating-join-with-restore.json | Gustavo de Morais | 8 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-inner-join-with-restore/plan/three-way-inner-join-with-restore.json | Gustavo de Morais | 7 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-join-with-time-attributes-with-restore/plan/three-way-join-with-time-attributes-with-restore.json | Gustavo de Morais | 7 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-left-outer-join-with-restore/plan/three-way-left-outer-join-with-restore.json | Gustavo de Morais | 7 |
| flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/InternalSourceSplitMetricGroup.java | Efrat Levitan | 7 |
| flink-core/src/test/java/org/apache/flink/configuration/CheckpointingOptionsTest.java | Rui Fan | 7 |
| flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/failover/ExponentialDelayRestartBackoffTimeStrategy.java | Rui Fan | 7 |
| flink-runtime/src/main/java/org/apache/flink/runtime/security/token/DelegationTokenManager.java | Gabor Somogyi | 7 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/join/LateralSnapshotJoinTest.java | Fabian Hueske | 7 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/SnapshotTableFunctionTest.java | Fabian Hueske | 7 |
| flink-python/pyflink/fn_execution/datastream/process/async_function/operation.py | Dian Fu | 7 |
| flink-state-backends/flink-statebackend-forst/src/test/java/org/apache/flink/state/forst/datatransfer/DataTransferStrategyTest.java | AlexYinHan | 7 |
| flink-models/flink-model-openai/src/main/java/org/apache/flink/model/openai/OpenAIChatModelFunction.java | Yunfeng Zhou | 7 |
| flink-table/flink-sql-jdbc-driver/src/main/java/org/apache/flink/table/jdbc/FlinkResultSet.java | Fang Yong | 7 |
| flink-table/flink-table-planner/src/main/java/org/apache/calcite/rel/type/RelDataTypeFactoryImpl.java | Sergey Nuyanzin | 6 |
| flink-table/flink-table-planner/src/main/java/org/apache/calcite/runtime/SqlFunctions.java | Sergey Nuyanzin | 6 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/SchemaConverter.java | Sergey Nuyanzin | 6 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/AbstractAlterTableConverter.java | Sergey Nuyanzin | 6 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlAlterTableSchemaConverter.java | Sergey Nuyanzin | 6 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/four-way-complex-updating-join-with-restore/savepoint/_metadata | Gustavo de Morais | 6 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-inner-join-with-restore/savepoint/_metadata | Gustavo de Morais | 6 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-join-with-time-attributes-with-restore/savepoint/_metadata | Gustavo de Morais | 6 |
| flink-table/flink-table-planner/src/test/resources/restore-tests/stream-exec-multi-join_1/three-way-left-outer-join-with-restore/savepoint/_metadata | Gustavo de Morais | 6 |
| flink-runtime/src/test/java/org/apache/flink/runtime/executiongraph/failover/ExponentialDelayRestartBackoffTimeStrategyTest.java | Rui Fan | 6 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/logical/LogicalJoinToLateralSnapshotJoinRule.java | Fabian Hueske | 6 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LateralSnapshotJoinSemanticTestPrograms.java | Fabian Hueske | 6 |
| flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/writer/NativeS3RecoverableWriter.java | Samrat | 6 |
| flink-state-backends/flink-statebackend-forst/src/main/java/org/apache/flink/state/forst/datatransfer/CopyDataTransferStrategy.java | AlexYinHan | 6 |
| flink-runtime-web/web-dashboard/src/app/pages/job/rescales/job-rescales.component.html | och5351 | 6 |
| flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JarRunApplicationHandler.java | Yi Zhang | 6 |
| flink-runtime/src/main/java/org/apache/flink/runtime/application/AbstractApplication.java | Yi Zhang | 6 |
| flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/slotmanager/TestingResourceAllocator.java | Weihua Hu | 6 |
| flink-python/pyflink/fn_execution/embedded/operation_utils.py | xingbo | 6 |
| flink-python/pyflink/fn_execution/embedded/operations.py | xingbo | 6 |
| flink-table/flink-sql-jdbc-driver/src/main/java/org/apache/flink/table/jdbc/FlinkStatement.java | Fang Yong | 6 |
| flink-runtime/src/test/java/org/apache/flink/runtime/blocklist/DefaultBlocklistHandlerTest.java | Lijie Wang | 6 |
| flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/CheckpointPlan.java | Yun Gao | 6 |
| flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/timeline/Rescale.java | Yuepeng Pan | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/channel/ChannelStateFilteringHandler.java | Rui Fan | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/security/token/NoOpDelegationTokenManager.java | Gabor Somogyi | 5 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/process/PassThroughCollectorBase.java | Timo Walther | 5 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/process/PassPartitionKeysCollector.java | Timo Walther | 5 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/hints/stream/EarlyFireJoinHintTest.java | Weiqing Yang | 5 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/functions/BitmapFunctionsITCase.java | dylanhz | 5 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/rules/physical/stream/DuplicateChangesInferRule.java | Xuyang | 5 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/aggregate/window/WindowAggOperatorBuilder.java | Xuyang | 5 |
| flink-runtime/src/test/java/org/apache/flink/runtime/leaderelection/TestingLeaderElection.java | Matthias Pohl | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/leaderelection/LeaderInformationRegister.java | Matthias Pohl | 5 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/runtime/stream/table/AsyncCalcITCase.java | Alan Sheinberg | 5 |
| flink-state-backends/flink-statebackend-forst/src/main/java/org/apache/flink/state/forst/datatransfer/DataTransferStrategyBuilder.java | AlexYinHan | 5 |
| flink-datastream-api/src/main/java/org/apache/flink/datastream/api/context/RuntimeContext.java | reswqa | 5 |
| flink-clients/src/test/java/org/apache/flink/client/deployment/application/PackagedProgramApplicationTest.java | Yi Zhang | 5 |
| flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/slotmanager/TestingResourceAllocatorBuilder.java | Weihua Hu | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/slotmanager/ResourceAllocator.java | Weihua Hu | 5 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/VectorSearchTableFunctionTest.java | Shengkai | 5 |
| docs/content.zh/docs/connectors/models/openai.md | Yunfeng Zhou | 5 |
| docs/content/docs/connectors/models/openai.md | Yunfeng Zhou | 5 |
| flink-models/flink-model-openai/src/main/java/org/apache/flink/model/openai/OpenAIModelProviderFactory.java | Yunfeng Zhou | 5 |
| flink-table/flink-sql-gateway/src/test/java/org/apache/flink/table/gateway/rest/SqlGatewayRestEndpointMaterializedTableITCase.java | Feng Jin | 5 |
| tools/ci/flink-ci-tools/src/test/java/org/apache/flink/tools/ci/licensecheck/NoticeFileCheckerTest.java | Chesnay Schepler | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/blocklist/DefaultBlocklistHandler.java | Lijie Wang | 5 |
| flink-runtime/src/main/java/org/apache/flink/runtime/entrypoint/WorkingDirectory.java | Till Rohrmann | 5 |
| flink-table/flink-table-planner/src/main/java/org/apache/calcite/rel/rules/SubQueryRemoveRule.java | Sergey Nuyanzin | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/calcite/sql/SqlIntervalQualifier.java | Sergey Nuyanzin | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlCreateTableConverter.java | Sergey Nuyanzin | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlCreateTableLikeConverter.java | Sergey Nuyanzin | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlAlterTableAddDistributionConverter.java | Sergey Nuyanzin | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/operations/converters/table/SqlAlterTableOptionsConverter.java | Sergey Nuyanzin | 4 |
| flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/timeline/DefaultRescaleTimeline.java | Yuepeng Pan | 4 |
| flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/allocator/AllocatorUtil.java | Yuepeng Pan | 4 |
| flink-runtime/src/test/java/org/apache/flink/runtime/scheduler/adaptive/allocator/TestingSlot.java | Yuepeng Pan | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/logical/FlinkLogicalMultiJoin.java | Gustavo de Morais | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/stream/StreamExecMultiJoin.java | Gustavo de Morais | 4 |
| flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/failover/FixedDelayRestartBackoffTimeStrategy.java | Rui Fan | 4 |
| flink-runtime/src/test/java/org/apache/flink/runtime/security/token/ExceptionThrowingDelegationTokenReceiver.java | Gabor Somogyi | 4 |
| flink-runtime/src/test/java/org/apache/flink/runtime/security/token/ExceptionThrowingDelegationTokenProvider.java | Gabor Somogyi | 4 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/process/RuntimeStateInfo.java | Timo Walther | 4 |
| flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/inference/StateTypeStrategy.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/calcite/RexTableArgCall.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/serde/DataTypeJsonSerializer.java | Timo Walther | 4 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/process/PassAllCollector.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/ExecNodeGraphGenerator.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/serde/AggregateCallJsonSerializer.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/serde/RelDataTypeJsonSerializer.java | Timo Walther | 4 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/stream/sql/FromChangelogTest.java | Ramin Gharib | 4 |
| flink-table/flink-table-planner/src/test/resources/org/apache/flink/table/planner/plan/stream/sql/FromChangelogTest.xml | Ramin Gharib | 4 |
| flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/functions/ptf/FromChangelogFunction.java | Ramin Gharib | 4 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/batch/sql/join/LateralSnapshotJoinTest.java | Fabian Hueske | 4 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/batch/LateralSnapshotJoinTestPrograms.java | Fabian Hueske | 4 |
| flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/plan/utils/LateralSnapshotJoinUtil.java | Fabian Hueske | 4 |
| flink-table/flink-table-common/src/main/java/org/apache/flink/table/types/inference/strategies/LateralSnapshotTypeStrategy.java | Fabian Hueske | 4 |
| flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/plan/nodes/exec/stream/LateralSnapshotJoinTestPrograms.java | Fabian Hueske | 4 |
| flink-runtime/src/main/java/org/apache/flink/runtime/asyncprocessing/declare/DeclarationContext.java | Zakelly | 4 |
| flink-libraries/flink-state-processing-api/src/main/java/org/apache/flink/state/api/StateTableUtils.java | Gyula Fora | 4 |
| flink-filesystems/flink-s3-fs-native/src/main/java/org/apache/flink/fs/s3native/NativeS3BulkCopyHelper.java | Samrat | 4 |
Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.
| Author | Files owned | Solely owned | Files touched |
|---|---|---|---|
| Sergey Nuyanzin | 1,466 | 747 | 3,394 |
| Timo Walther | 1,435 | 315 | 3,249 |
| reswqa | 959 | 643 | 1,757 |
| xingbo | 844 | 634 | 1,190 |
| Till Rohrmann | 776 | 44 | 2,200 |
| Xuyang | 767 | 292 | 1,467 |
| Chesnay Schepler | 752 | 187 | 2,880 |
| Stephan Ewen | 750 | 14 | 1,865 |
| Matthias Pohl | 714 | 582 | 1,675 |
| lincoln lee | 712 | 571 | 1,091 |
| JunRuiLee | 682 | 615 | 1,756 |
| Zhanghao Chen | 682 | 635 | 945 |
| Ron | 658 | 643 | 811 |
| Hang Ruan | 653 | 647 | 938 |
| David Anderson | 628 | 628 | 816 |
| Rufus Refactor | 518 | 0 | 7,168 |
| Yun Gao | 504 | 418 | 855 |
| sjwiesman | 503 | 207 | 877 |
| Dawid Wysakowicz | 459 | 279 | 1,645 |
| Zakelly | 400 | 137 | 776 |
| Martijn Visser | 350 | 286 | 854 |
| Dian Fu | 346 | 216 | 874 |
| Robert Metzger | 301 | 13 | 1,013 |
| Aljoscha Krettek | 299 | 230 | 1,165 |
| Francesco Guardiani | 295 | 150 | 1,382 |
Files touched by the most people — shared code where changes are most likely to need coordination.
| File | Contributors | Primary owner | Owner share |
|---|---|---|---|
| pom.xml | 197 | Chesnay Schepler | 18.4% |
| flink-runtime/src/main/java/org/apache/flink/runtime/taskexecutor/TaskExecutor.java | 72 | Till Rohrmann | 29.7% |
| flink-dist/pom.xml | 70 | Chesnay Schepler | 21.6% |
| flink-end-to-end-tests/run-nightly-tests.sh | 69 | Robert Metzger | 14.1% |
| flink-end-to-end-tests/pom.xml | 63 | Chesnay Schepler | 17.9% |
| flink-core/src/main/java/org/apache/flink/configuration/ConfigConstants.java | 62 | Till Rohrmann | 16.6% |
| flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/CheckpointCoordinator.java | 59 | Stephan Ewen | 14.0% |
| flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/Task.java | 59 | Stephan Ewen | 12.5% |
| flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMaster.java | 55 | Till Rohrmann | 46.2% |
| flink-runtime/src/test/java/org/apache/flink/runtime/checkpoint/CheckpointCoordinatorTest.java | 55 | Stefan Richter | 10.6% |
| flink-tests/pom.xml | 55 | Stephan Ewen | 12.6% |
| flink-connectors/pom.xml | 55 | Chesnay Schepler | 12.1% |
| flink-streaming-java/src/test/java/org/apache/flink/streaming/api/graph/StreamingJobGraphGeneratorTest.java | 54 | ifndef-SleePy | 8.3% |
| flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/Execution.java | 53 | Till Rohrmann | 22.0% |
| flink-runtime/src/main/java/org/apache/flink/runtime/dispatcher/Dispatcher.java | 53 | Till Rohrmann | 39.7% |
| flink-runtime/src/main/java/org/apache/flink/runtime/executiongraph/ExecutionGraph.java | 52 | Till Rohrmann | 23.1% |
| flink-runtime/pom.xml | 52 | Chesnay Schepler | 27.6% |
| flink-runtime/src/main/java/org/apache/flink/runtime/minicluster/MiniCluster.java | 51 | Till Rohrmann | 37.0% |
| flink-end-to-end-tests/test-scripts/common.sh | 51 | Chesnay Schepler | 12.3% |
| flink-runtime-web/src/test/resources/rest_api_v1.snapshot | 51 | Chesnay Schepler | 11.1% |
How Apache Flink compares with other Apache projects →
How Apache Flink ranks among Apache projects by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true