lighthouse % git rev-parse HEAD
3a996fbbee7501adc153e801675ad14966c151d1
crate | total lines | main owners |
---|---|---|
account_manager | 2242 | 23,8% Pawan Dhananjay, 23,4% Paul Hauner, 17,5% realbigsean , 14,6% Eitan Seri-Levi, 11,8% Michael Sproul |
beacon_node | 176046 | 18,7% Paul Hauner, 16,6% Age Manning, 14,8% Michael Sproul, 8,5% realbigsean , 6,4% Pawan Dhananjay, 6,3% ethDreamer , 4,7% Jimmy Chen, 3,6% Lion -, 3,3% Divma , 2,8% Mac L, 2,4% divma , 2,4% Eitan Seri-Levi |
beacon_node/beacon_chain | 55795 | 29,8% Paul Hauner, 18,9% Michael Sproul, 12,1% realbigsean , 10,8% ethDreamer , 8,5% Jimmy Chen, 4,2% Pawan Dhananjay, 2,2% Mac L |
beacon_node/beacon_processor | 2967 | 40,7% Paul Hauner, 19,9% Jimmy Chen, 15,4% divma , 7,5% GeemoCandama , 5,7% Lion -, 5,5% Pawan Dhananjay |
beacon_node/builder_client | 240 | 77,9% realbigsean , 11,7% Eitan Seri-Levi, 4,2% Michael Sproul, 2,5% João Oliveira |
beacon_node/client | 2553 | 40,1% Paul Hauner, 18,5% Michael Sproul, 9,8% Age Manning, 7,5% Mac L, 5,8% ethDreamer , 5,8% Pawan Dhananjay, 3,4% Lion -, 2,4% realbigsean |
beacon_node/eth1 | 3736 | 30,3% Paul Hauner, 24,2% ethDreamer , 19,2% Age Manning, 14,3% Pawan Dhananjay, 3,8% blacktemplar , 3,5% Michael Sproul |
beacon_node/lighthouse_network | 40237 | 61,6% Age Manning, 8,0% Pawan Dhananjay, 7,3% Divma , 5,2% João Oliveira, 3,4% divma , 2,1% blacktemplar |
beacon_node/lighthouse_network/gossipsub | 18394 | 91,3% Age Manning, 8,5% João Oliveira |
beacon_node/execution_layer | 11927 | 25,3% Paul Hauner, 19,2% ethDreamer , 16,5% Pawan Dhananjay, 12,2% realbigsean , 8,9% Michael Sproul, 6,7% Mac L, 2,8% Jimmy Chen, 2,7% Eitan Seri-Levi, 2,3% Divma |
beacon_node/http_api | 19721 | 22,8% Michael Sproul, 21,7% Paul Hauner, 15,3% realbigsean , 10,5% Eitan Seri-Levi, 8,6% Mac L, 6,4% Jack McPherson, 2,7% Daniel Ramirez, 2,2% ethDreamer |
beacon_node/http_metrics | 298 | 72,1% Paul Hauner, 12,4% Age Manning, 5,4% João Oliveira, 5,0% Alan Höng, 2,0% Mac L, 2,0% Divma |
beacon_node/network | 22470 | 21,4% Lion -, 14,6% Paul Hauner, 10,1% divma , 10,1% Divma , 9,6% Pawan Dhananjay, 7,7% realbigsean , 7,4% Age Manning, 6,6% Michael Sproul, 3,8% Jimmy Chen |
beacon_node/store | 7842 | 62,3% Michael Sproul, 8,3% Jimmy Chen, 8,0% Adam Szkoda, 5,9% Paul Hauner, 5,6% realbigsean , 3,1% Mac L, 2,0% ethDreamer |
beacon_node/timer | 46 | 41,3% Age Manning, 15,2% Pawan Dhananjay, 13,0% João Oliveira, 10,9% Paul Hauner, 8,7% Michael Sproul, 8,7% Eitan Seri-Levi, 2,2% realbigsean |
boot_node | 635 | 31,3% Age Manning, 21,9% Divma , 9,6% Eitan Seri-Levi, 7,7% Pawan Dhananjay, 7,1% João Oliveira, 5,2% mooori , 4,1% Paul Hauner, 4,1% Jimmy Chen, 2,4% Michael Sproul, 2,0% Mac L |
common/account_utils | 1095 | 55,6% Paul Hauner, 20,5% realbigsean , 5,8% Michael Sproul, 5,0% Pawan Dhananjay, 4,4% Philipp K, 2,2% Mac L, 2,0% Łukasz Sroka |
common/clap_utils | 230 | 82,2% Paul Hauner, 9,1% Eitan Seri-Levi, 4,8% João Oliveira |
common/compare_fields | 211 | 81,5% Paul Hauner, 17,1% Michael Sproul |
common/compare_fields_derive | 82 | 76,8% Paul Hauner, 13,4% Michael Sproul, 4,9% Eitan Seri-Levi, 3,7% João Oliveira |
common/deposit_contract | 316 | 74,4% Paul Hauner, 15,8% Pascal Bach, 4,4% Michael Sproul, 2,5% João Oliveira |
common/directory | 104 | 55,8% Pawan Dhananjay, 18,3% Michael Sproul, 12,5% Mac L, 4,8% divma , 3,8% João Oliveira, 2,9% Eitan Seri-Levi |
common/eth2 | 6718 | 24,0% Paul Hauner, 21,1% Michael Sproul, 18,5% realbigsean , 8,6% Eitan Seri-Levi, 8,1% Mac L, 4,2% Pawan Dhananjay, 3,1% Jimmy Chen |
common/eth2_config | 337 | 85,5% Paul Hauner, 5,0% Philippe Schommers, 2,1% Kirill Fedoseev |
common/eth2_interop_keypairs | 245 | 84,1% Paul Hauner, 8,2% pscott , 2,4% João Oliveira, 2,4% Jimmy Chen |
common/eth2_network_config | 17067 | 48,4% kevaundray , 39,6% Paul Hauner, 5,1% Kirill Fedoseev, 3,2% Pawan Dhananjay |
common/eth2_wallet_manager | 597 | 95,1% Paul Hauner, 2,3% Michael Sproul |
common/lighthouse_metrics | 412 | 47,3% Paul Hauner, 14,8% Age Manning, 13,1% Pawan Dhananjay, 12,4% tim gretler, 5,8% blacktemplar , 2,9% Jimmy Chen |
common/lighthouse_version | 81 | 38,3% Paul Hauner, 32,1% Michael Sproul, 22,2% ethDreamer , 3,7% Alex Wied, 2,5% João Oliveira |
common/lockfile | 151 | 83,4% Michael Sproul, 7,9% ethDreamer , 3,3% Arthur Woimbée |
common/logging | 851 | 42,0% Age Manning, 13,3% Eitan Seri-Levi, 12,9% blacktemplar , 8,9% Wink Saville, 7,2% Divma , 3,6% Paul Hauner, 3,6% Mac L, 3,3% Jimmy Chen, 2,7% tim gretler |
common/lru_cache | 265 | 67,5% Age Manning, 29,1% Divma , 2,3% Lion - |
common/malloc_utils | 342 | 42,7% Paul Hauner, 37,4% Michael Sproul, 18,4% Jimmy Chen |
common/oneshot_broadcast | 199 | 99,0% Paul Hauner |
common/pretty_reqwest_error | 78 | 96,2% Paul Hauner, 3,8% João Oliveira |
common/sensitive_url | 131 | 84,0% Mac L, 13,0% Paul Hauner, 2,3% João Oliveira |
common/slot_clock | 693 | 66,5% Paul Hauner, 20,5% Age Manning, 5,5% Jimmy Chen, 2,7% realbigsean |
common/system_health | 267 | 89,5% Age Manning, 9,7% João Oliveira |
common/task_executor | 518 | 43,4% Paul Hauner, 13,5% Age Manning, 12,7% Pawan Dhananjay, 8,3% João Oliveira, 7,9% Michael Sproul, 6,0% Jimmy Chen, 3,9% Mac L, 3,3% divma |
common/target_check | 19 | 94,7% Michael Sproul, 5,3% João Oliveira |
common/test_random_derive | 71 | 43,7% Paul Hauner, 42,3% thojest , 5,6% Michael Sproul, 4,2% João Oliveira, 2,8% Eitan Seri-Levi |
common/unused_port | 109 | 47,7% Paul Hauner, 27,5% Divma , 22,0% Jimmy Chen, 2,8% João Oliveira |
common/validator_dir | 1087 | 91,0% Paul Hauner, 2,4% Pawan Dhananjay, 2,4% Michael Sproul |
common/warp_utils | 702 | 43,6% Paul Hauner, 15,1% Jimmy Chen, 12,1% Eitan Seri-Levi, 7,5% Pawan Dhananjay, 6,1% realbigsean , 6,0% Michael Sproul, 4,7% Mac L, 2,7% João Oliveira |
common/monitoring_api | 627 | 93,1% Pawan Dhananjay, 2,2% Michael Sproul, 2,1% João Oliveira |
database_manager | 780 | 39,0% Eitan Seri-Levi, 33,6% Michael Sproul, 21,3% Jimmy Chen, 3,7% Emilia Hane |
consensus/int_to_bytes | 364 | 96,2% Paul Hauner |
consensus/fork_choice | 3094 | 66,3% Paul Hauner, 14,1% realbigsean , 10,7% Michael Sproul, 3,3% Jimmy Chen |
consensus/proto_array | 6240 | 74,3% Paul Hauner, 13,2% realbigsean , 9,6% Michael Sproul |
consensus/safe_arith | 245 | 94,3% Michael Sproul, 5,3% realbigsean |
consensus/state_processing | 11170 | 48,4% Michael Sproul, 20,6% Paul Hauner, 9,7% realbigsean , 7,2% ethDreamer , 4,2% Mac L, 2,8% pscott , 2,4% Mark Mackey, 2,2% Jimmy Chen |
consensus/swap_or_not_shuffle | 423 | 80,6% Paul Hauner, 11,6% Michael Sproul, 4,0% gnattishness |
crypto/bls | 2769 | 85,9% Paul Hauner, 10,3% Michael Sproul |
crypto/kzg | 744 | 38,3% Pawan Dhananjay, 28,6% realbigsean , 21,6% Jimmy Chen, 3,6% Daniel Knopik, 3,1% ethDreamer , 2,6% Lion - |
crypto/eth2_key_derivation | 1141 | 50,6% realbigsean , 48,1% Paul Hauner |
crypto/eth2_keystore | 2912 | 83,0% Paul Hauner, 9,4% Kirk Baird, 4,2% Pawan Dhananjay |
crypto/eth2_wallet | 1048 | 93,9% Paul Hauner, 4,5% realbigsean |
lcli | 2208 | 44,7% Paul Hauner, 28,9% Michael Sproul, 11,5% Eitan Seri-Levi, 6,3% Pawan Dhananjay, 3,9% Mac L |
lighthouse | 6645 | 23,1% Paul Hauner, 17,5% Mac L, 12,3% Michael Sproul, 5,3% Eitan Seri-Levi, 5,1% mooori , 5,1% Divma , 3,8% Pawan Dhananjay, 3,7% Age Manning, 3,5% realbigsean , 3,1% Jimmy Chen, 2,5% João Oliveira, 2,1% Akihito Nakano |
lighthouse/environment | 763 | 20,2% Paul Hauner, 13,0% Michael Sproul, 12,7% Age Manning, 12,5% Mason Stallmo, 12,3% Mac L, 4,7% divma , 3,8% Pawan Dhananjay, 3,7% Akihito Nakano, 3,0% GeemoCandama , 2,4% João Oliveira |
slasher | 4977 | 78,2% Michael Sproul, 9,4% Eitan Seri-Levi, 9,3% ethDreamer |
slasher/service | 351 | 94,9% Michael Sproul, 3,4% João Oliveira |
testing/ef_tests | 7112 | 51,6% Michael Sproul, 12,8% Paul Hauner, 9,9% realbigsean , 8,9% ethDreamer , 4,3% Eitan Seri-Levi, 4,0% Pawan Dhananjay, 2,8% will |
testing/eth1_test_rig | 418 | 47,4% Pawan Dhananjay, 38,5% Paul Hauner, 11,7% Age Manning, 2,2% João Oliveira |
testing/execution_engine_integration | 1467 | 29,7% Paul Hauner, 25,6% Pawan Dhananjay, 22,6% Mac L, 7,6% Divma , 5,0% Michael Sproul, 2,9% ethDreamer |
testing/node_test_rig | 274 | 59,1% Paul Hauner, 11,3% Pawan Dhananjay, 5,8% João Oliveira, 5,1% Age Manning, 4,7% Jimmy Chen, 4,4% Michael Sproul, 3,6% Arthur Woimbée, 3,3% Mac L |
testing/simulator | 1872 | 44,3% Mac L, 13,0% Paul Hauner, 12,3% Pawan Dhananjay, 9,5% Age Manning, 5,5% Eitan Seri-Levi, 5,0% Lion -, 4,2% Jimmy Chen, 3,1% Alexander Uvizhev |
testing/test-test_logger | 32 | 90,6% Wink Saville, 9,4% João Oliveira |
testing/state_transition_vectors | 630 | 89,8% Michael Sproul, 7,3% Paul Hauner |
testing/web3signer_tests | 1364 | 43,1% Paul Hauner, 26,1% Michael Sproul, 15,9% Age Manning, 5,5% Peter Davies, 2,6% Jimmy Chen, 2,3% Mac L |
validator_client | 23301 | 30,1% Michael Sproul, 27,9% Paul Hauner, 13,2% realbigsean , 5,5% Eitan Seri-Levi, 4,6% tim gretler, 3,3% Age Manning, 2,8% Jimmy Chen, 2,6% Pawan Dhananjay, 2,3% blacktemplar , 2,0% ethDreamer |
validator_client/slashing_protection | 3653 | 91,1% Michael Sproul, 5,0% Manu NALEPA |
validator_manager | 3386 | 91,0% Paul Hauner, 7,7% Eitan Seri-Levi |
watch | 7146 | 97,8% Mac L |
#!/bin/bash
set -e
members=$(awk '/members = \[/,/\]/' Cargo.toml | sed -e 's/members = \[//' -e 's/\]//' -e 's/,//g' -e 's/^ *//g' -e 's/^"//' -e 's/"$//' -e '/^$/d')
echo "| crate | total lines | main owners |"
echo "| - | - | - |"
for subdirectory in $members; do
# Run git blame on subdirectory with machine output (porcelain).
# Keep the line of author and count occurrences
output=$(git ls-files $subdirectory | xargs -n 1 git blame --line-porcelain | grep '^author ' | sort | uniq -c)
# Format output into percentages
total_lines=$(echo "$output" | awk '{sum += $1} END {print sum}')
formatted_output=$(echo "$output" | awk -v total="$total_lines" '{percent = ($1/total)*100; if (percent > 2) printf "%.1f%% %s %s\n", percent, $3, $4}' | sort -nr)
# Prepare the final output in a single line
formatted_output_line=$(echo "$formatted_output" | awk '{printf "%s %s, ", $1, $2 " " $3}')
echo "| $subdirectory | $total_lines | ${formatted_output_line%, } |"
done
For total stats on repo
git ls-files "*.rs" | xargs -n 1 git blame --line-porcelain | grep '^author ' | sort | uniq -c | sort -nr