Skip to content

Instantly share code, notes, and snippets.

@dapplion
Last active August 13, 2024 21:22
Show Gist options
  • Save dapplion/ddd06ae845423b1b4fff1bb3cf695d5a to your computer and use it in GitHub Desktop.
Save dapplion/ddd06ae845423b1b4fff1bb3cf695d5a to your computer and use it in GitHub Desktop.
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

source

#!/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment