Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add conventional commit PR title checker #5342

Merged
merged 2 commits into from
Apr 24, 2023

Conversation

wemeetagain
Copy link
Member

Motivation

See #1773

Description

Add github action to enforce conventional commits on PR titles.
This is the same action currently configured in the ssz repo, although this one is configured slightly differently.

Please give feedback on the current configuration.

@wemeetagain wemeetagain requested a review from a team as a code owner April 4, 2023 19:35
@wemeetagain wemeetagain added this to the v1.8.0 milestone Apr 4, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Apr 4, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 1cc98a7 Previous: b56770b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 615.28 us/op 988.18 us/op 0.62
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 56.145 us/op 51.701 us/op 1.09
BLS verify - blst-native 1.2910 ms/op 1.2517 ms/op 1.03
BLS verifyMultipleSignatures 3 - blst-native 2.6762 ms/op 2.6472 ms/op 1.01
BLS verifyMultipleSignatures 8 - blst-native 5.7796 ms/op 5.4838 ms/op 1.05
BLS verifyMultipleSignatures 32 - blst-native 21.187 ms/op 20.654 ms/op 1.03
BLS aggregatePubkeys 32 - blst-native 27.850 us/op 26.967 us/op 1.03
BLS aggregatePubkeys 128 - blst-native 109.31 us/op 106.75 us/op 1.02
getAttestationsForBlock 61.303 ms/op 56.514 ms/op 1.08
isKnown best case - 1 super set check 277.00 ns/op 279.00 ns/op 0.99
isKnown normal case - 2 super set checks 269.00 ns/op 276.00 ns/op 0.97
isKnown worse case - 16 super set checks 263.00 ns/op 268.00 ns/op 0.98
CheckpointStateCache - add get delete 5.4420 us/op 5.5940 us/op 0.97
validate gossip signedAggregateAndProof - struct 2.9097 ms/op 2.9579 ms/op 0.98
validate gossip attestation - struct 1.3823 ms/op 1.3622 ms/op 1.01
pickEth1Vote - no votes 1.3218 ms/op 1.3500 ms/op 0.98
pickEth1Vote - max votes 12.245 ms/op 9.5662 ms/op 1.28
pickEth1Vote - Eth1Data hashTreeRoot value x2048 9.5430 ms/op 9.2824 ms/op 1.03
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.875 ms/op 14.658 ms/op 1.15
pickEth1Vote - Eth1Data fastSerialize value x2048 671.87 us/op 745.32 us/op 0.90
pickEth1Vote - Eth1Data fastSerialize tree x2048 6.1065 ms/op 7.0112 ms/op 0.87
bytes32 toHexString 539.00 ns/op 547.00 ns/op 0.99
bytes32 Buffer.toString(hex) 370.00 ns/op 404.00 ns/op 0.92
bytes32 Buffer.toString(hex) from Uint8Array 602.00 ns/op 637.00 ns/op 0.95
bytes32 Buffer.toString(hex) + 0x 386.00 ns/op 412.00 ns/op 0.94
Object access 1 prop 0.18100 ns/op 0.18400 ns/op 0.98
Map access 1 prop 0.17200 ns/op 0.17500 ns/op 0.98
Object get x1000 7.1750 ns/op 7.0810 ns/op 1.01
Map get x1000 0.64900 ns/op 0.58600 ns/op 1.11
Object set x1000 54.593 ns/op 59.376 ns/op 0.92
Map set x1000 45.077 ns/op 48.396 ns/op 0.93
Return object 10000 times 0.25120 ns/op 0.24450 ns/op 1.03
Throw Error 10000 times 4.4221 us/op 4.3977 us/op 1.01
fastMsgIdFn sha256 / 200 bytes 3.7510 us/op 3.5470 us/op 1.06
fastMsgIdFn h32 xxhash / 200 bytes 299.00 ns/op 320.00 ns/op 0.93
fastMsgIdFn h64 xxhash / 200 bytes 406.00 ns/op 472.00 ns/op 0.86
fastMsgIdFn sha256 / 1000 bytes 12.285 us/op 12.211 us/op 1.01
fastMsgIdFn h32 xxhash / 1000 bytes 439.00 ns/op 446.00 ns/op 0.98
fastMsgIdFn h64 xxhash / 1000 bytes 502.00 ns/op 515.00 ns/op 0.97
fastMsgIdFn sha256 / 10000 bytes 109.66 us/op 109.36 us/op 1.00
fastMsgIdFn h32 xxhash / 10000 bytes 2.0510 us/op 2.0750 us/op 0.99
fastMsgIdFn h64 xxhash / 10000 bytes 1.4640 us/op 1.5290 us/op 0.96
enrSubnets - fastDeserialize 64 bits 1.3830 us/op 1.5910 us/op 0.87
enrSubnets - ssz BitVector 64 bits 507.00 ns/op 612.00 ns/op 0.83
enrSubnets - fastDeserialize 4 bits 172.00 ns/op 217.00 ns/op 0.79
enrSubnets - ssz BitVector 4 bits 514.00 ns/op 585.00 ns/op 0.88
prioritizePeers score -10:0 att 32-0.1 sync 2-0 115.57 us/op 115.85 us/op 1.00
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 153.79 us/op 163.53 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 185.78 us/op 203.75 us/op 0.91
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 333.98 us/op 363.75 us/op 0.92
prioritizePeers score 0:0 att 64-1 sync 4-1 409.19 us/op 423.87 us/op 0.97
array of 16000 items push then shift 2.5877 us/op 1.7447 us/op 1.48
LinkedList of 16000 items push then shift 12.880 ns/op 9.4070 ns/op 1.37
array of 16000 items push then pop 164.25 ns/op 113.32 ns/op 1.45
LinkedList of 16000 items push then pop 11.363 ns/op 9.0050 ns/op 1.26
array of 24000 items push then shift 2.7551 us/op 2.4350 us/op 1.13
LinkedList of 24000 items push then shift 15.645 ns/op 9.4140 ns/op 1.66
array of 24000 items push then pop 129.69 ns/op 85.820 ns/op 1.51
LinkedList of 24000 items push then pop 14.377 ns/op 9.0560 ns/op 1.59
intersect bitArray bitLen 8 29.870 ns/op 14.396 ns/op 2.07
intersect array and set length 8 170.26 ns/op 90.724 ns/op 1.88
intersect bitArray bitLen 128 99.460 ns/op 47.078 ns/op 2.11
intersect array and set length 128 1.5843 us/op 1.2300 us/op 1.29
Buffer.concat 32 items 3.1820 us/op 3.1520 us/op 1.01
Uint8Array.set 32 items 3.2820 us/op 2.3610 us/op 1.39
pass gossip attestations to forkchoice per slot 4.1962 ms/op 3.0651 ms/op 1.37
computeDeltas 3.5574 ms/op 3.1764 ms/op 1.12
computeProposerBoostScoreFromBalances 1.9368 ms/op 1.8333 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei normalcase 2.8731 ms/op 2.8701 ms/op 1.00
altair processAttestation - 250000 vs - 7PWei worstcase 3.8232 ms/op 4.8942 ms/op 0.78
altair processAttestation - setStatus - 1/6 committees join 151.32 us/op 149.17 us/op 1.01
altair processAttestation - setStatus - 1/3 committees join 306.36 us/op 305.38 us/op 1.00
altair processAttestation - setStatus - 1/2 committees join 385.03 us/op 427.24 us/op 0.90
altair processAttestation - setStatus - 2/3 committees join 481.71 us/op 519.62 us/op 0.93
altair processAttestation - setStatus - 4/5 committees join 671.19 us/op 682.56 us/op 0.98
altair processAttestation - setStatus - 100% committees join 811.09 us/op 799.37 us/op 1.01
altair processBlock - 250000 vs - 7PWei normalcase 23.011 ms/op 18.276 ms/op 1.26
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.217 ms/op 31.188 ms/op 0.94
altair processBlock - 250000 vs - 7PWei worstcase 61.107 ms/op 54.417 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase hashState 73.943 ms/op 73.883 ms/op 1.00
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3891 ms/op 2.5303 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei worstcase 30.593 ms/op 35.150 ms/op 0.87
altair processEth1Data - 250000 vs - 7PWei normalcase 494.00 us/op 630.81 us/op 0.78
vc - 250000 eb 1 eth1 1 we 0 wn 0 - smpl 15 11.393 us/op 10.565 us/op 1.08
vc - 250000 eb 0.95 eth1 0.1 we 0.05 wn 0 - smpl 219 32.450 us/op 36.054 us/op 0.90
vc - 250000 eb 0.95 eth1 0.3 we 0.05 wn 0 - smpl 42 13.300 us/op 16.344 us/op 0.81
vc - 250000 eb 0.95 eth1 0.7 we 0.05 wn 0 - smpl 18 8.9320 us/op 13.769 us/op 0.65
vc - 250000 eb 0.1 eth1 0.1 we 0 wn 0 - smpl 1020 112.89 us/op 121.93 us/op 0.93
vc - 250000 eb 0.03 eth1 0.03 we 0 wn 0 - smpl 11777 1.0363 ms/op 889.33 us/op 1.17
vc - 250000 eb 0.01 eth1 0.01 we 0 wn 0 - smpl 16384 1.8212 ms/op 996.38 us/op 1.83
vc - 250000 eb 0 eth1 0 we 0 wn 0 - smpl 16384 1.7390 ms/op 932.93 us/op 1.86
vc - 250000 eb 0 eth1 0 we 0 wn 0 nocache - smpl 16384 2.6484 ms/op 3.0864 ms/op 0.86
vc - 250000 eb 0 eth1 1 we 0 wn 0 - smpl 16384 2.0039 ms/op 1.8770 ms/op 1.07
vc - 250000 eb 0 eth1 1 we 0 wn 0 nocache - smpl 16384 5.3343 ms/op 5.6355 ms/op 0.95
Tree 40 250000 create 350.00 ms/op 563.27 ms/op 0.62
Tree 40 250000 get(125000) 193.69 ns/op 217.98 ns/op 0.89
Tree 40 250000 set(125000) 1.0162 us/op 1.6295 us/op 0.62
Tree 40 250000 toArray() 21.769 ms/op 28.243 ms/op 0.77
Tree 40 250000 iterate all - toArray() + loop 23.380 ms/op 34.024 ms/op 0.69
Tree 40 250000 iterate all - get(i) 79.530 ms/op 99.102 ms/op 0.80
MutableVector 250000 create 14.116 ms/op 16.286 ms/op 0.87
MutableVector 250000 get(125000) 6.6670 ns/op 7.8700 ns/op 0.85
MutableVector 250000 set(125000) 256.87 ns/op 635.54 ns/op 0.40
MutableVector 250000 toArray() 2.7046 ms/op 5.7910 ms/op 0.47
MutableVector 250000 iterate all - toArray() + loop 2.8629 ms/op 6.2579 ms/op 0.46
MutableVector 250000 iterate all - get(i) 1.5697 ms/op 1.7550 ms/op 0.89
Array 250000 create 2.6199 ms/op 4.4643 ms/op 0.59
Array 250000 clone - spread 1.1269 ms/op 1.3643 ms/op 0.83
Array 250000 get(125000) 0.55800 ns/op 0.78300 ns/op 0.71
Array 250000 set(125000) 0.65600 ns/op 1.4490 ns/op 0.45
Array 250000 iterate all - loop 104.99 us/op 97.952 us/op 1.07
effectiveBalanceIncrements clone Uint8Array 300000 27.883 us/op 66.599 us/op 0.42
effectiveBalanceIncrements clone MutableVector 300000 356.00 ns/op 441.00 ns/op 0.81
effectiveBalanceIncrements rw all Uint8Array 300000 174.80 us/op 195.84 us/op 0.89
effectiveBalanceIncrements rw all MutableVector 300000 84.495 ms/op 163.81 ms/op 0.52
phase0 afterProcessEpoch - 250000 vs - 7PWei 121.64 ms/op 128.19 ms/op 0.95
phase0 beforeProcessEpoch - 250000 vs - 7PWei 43.199 ms/op 55.065 ms/op 0.78
altair processEpoch - mainnet_e81889 355.81 ms/op 424.51 ms/op 0.84
mainnet_e81889 - altair beforeProcessEpoch 67.942 ms/op 84.209 ms/op 0.81
mainnet_e81889 - altair processJustificationAndFinalization 23.900 us/op 27.884 us/op 0.86
mainnet_e81889 - altair processInactivityUpdates 6.3105 ms/op 8.3984 ms/op 0.75
mainnet_e81889 - altair processRewardsAndPenalties 62.487 ms/op 65.702 ms/op 0.95
mainnet_e81889 - altair processRegistryUpdates 3.4000 us/op 6.2720 us/op 0.54
mainnet_e81889 - altair processSlashings 825.00 ns/op 800.00 ns/op 1.03
mainnet_e81889 - altair processEth1DataReset 1.1320 us/op 1.3490 us/op 0.84
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.9558 ms/op 1.8760 ms/op 1.04
mainnet_e81889 - altair processSlashingsReset 8.2490 us/op 9.0670 us/op 0.91
mainnet_e81889 - altair processRandaoMixesReset 6.0760 us/op 15.203 us/op 0.40
mainnet_e81889 - altair processHistoricalRootsUpdate 1.4300 us/op 2.1260 us/op 0.67
mainnet_e81889 - altair processParticipationFlagUpdates 4.6260 us/op 8.3480 us/op 0.55
mainnet_e81889 - altair processSyncCommitteeUpdates 969.00 ns/op 1.2910 us/op 0.75
mainnet_e81889 - altair afterProcessEpoch 136.76 ms/op 148.25 ms/op 0.92
phase0 processEpoch - mainnet_e58758 394.83 ms/op 420.80 ms/op 0.94
mainnet_e58758 - phase0 beforeProcessEpoch 146.71 ms/op 168.02 ms/op 0.87
mainnet_e58758 - phase0 processJustificationAndFinalization 19.038 us/op 20.437 us/op 0.93
mainnet_e58758 - phase0 processRewardsAndPenalties 68.326 ms/op 71.426 ms/op 0.96
mainnet_e58758 - phase0 processRegistryUpdates 10.589 us/op 12.427 us/op 0.85
mainnet_e58758 - phase0 processSlashings 856.00 ns/op 897.00 ns/op 0.95
mainnet_e58758 - phase0 processEth1DataReset 1.0460 us/op 791.00 ns/op 1.32
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.5945 ms/op 1.1160 ms/op 1.43
mainnet_e58758 - phase0 processSlashingsReset 5.8150 us/op 7.6940 us/op 0.76
mainnet_e58758 - phase0 processRandaoMixesReset 8.8350 us/op 12.407 us/op 0.71
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.0370 us/op 1.4070 us/op 0.74
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8900 us/op 6.5610 us/op 0.75
mainnet_e58758 - phase0 afterProcessEpoch 106.62 ms/op 105.49 ms/op 1.01
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.6575 ms/op 1.2868 ms/op 1.29
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.0796 ms/op 2.1409 ms/op 0.97
altair processInactivityUpdates - 250000 normalcase 28.676 ms/op 24.278 ms/op 1.18
altair processInactivityUpdates - 250000 worstcase 25.071 ms/op 29.543 ms/op 0.85
phase0 processRegistryUpdates - 250000 normalcase 8.8870 us/op 8.8720 us/op 1.00
phase0 processRegistryUpdates - 250000 badcase_full_deposits 346.93 us/op 279.82 us/op 1.24
phase0 processRegistryUpdates - 250000 worstcase 0.5 134.34 ms/op 156.66 ms/op 0.86
altair processRewardsAndPenalties - 250000 normalcase 64.509 ms/op 78.437 ms/op 0.82
altair processRewardsAndPenalties - 250000 worstcase 73.548 ms/op 80.116 ms/op 0.92
phase0 getAttestationDeltas - 250000 normalcase 8.8630 ms/op 9.8598 ms/op 0.90
phase0 getAttestationDeltas - 250000 worstcase 8.2411 ms/op 10.584 ms/op 0.78
phase0 processSlashings - 250000 worstcase 4.0869 ms/op 3.7962 ms/op 1.08
altair processSyncCommitteeUpdates - 250000 182.66 ms/op 199.38 ms/op 0.92
BeaconState.hashTreeRoot - No change 379.00 ns/op 287.00 ns/op 1.32
BeaconState.hashTreeRoot - 1 full validator 61.817 us/op 52.315 us/op 1.18
BeaconState.hashTreeRoot - 32 full validator 630.49 us/op 529.63 us/op 1.19
BeaconState.hashTreeRoot - 512 full validator 6.1635 ms/op 5.8706 ms/op 1.05
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 68.149 us/op 68.968 us/op 0.99
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 994.95 us/op 925.46 us/op 1.08
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 13.963 ms/op 13.387 ms/op 1.04
BeaconState.hashTreeRoot - 1 balances 55.355 us/op 52.699 us/op 1.05
BeaconState.hashTreeRoot - 32 balances 597.03 us/op 509.00 us/op 1.17
BeaconState.hashTreeRoot - 512 balances 4.6135 ms/op 5.3178 ms/op 0.87
BeaconState.hashTreeRoot - 250000 balances 83.073 ms/op 90.731 ms/op 0.92
aggregationBits - 2048 els - zipIndexesInBitList 24.595 us/op 24.541 us/op 1.00
regular array get 100000 times 38.011 us/op 36.482 us/op 1.04
wrappedArray get 100000 times 37.341 us/op 36.036 us/op 1.04
arrayWithProxy get 100000 times 18.714 ms/op 16.868 ms/op 1.11
ssz.Root.equals 601.00 ns/op 768.00 ns/op 0.78
byteArrayEquals 627.00 ns/op 684.00 ns/op 0.92
shuffle list - 16384 els 7.3799 ms/op 7.7399 ms/op 0.95
shuffle list - 250000 els 110.80 ms/op 115.57 ms/op 0.96
processSlot - 1 slots 11.908 us/op 11.052 us/op 1.08
processSlot - 32 slots 1.5797 ms/op 1.5917 ms/op 0.99
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 41.571 ms/op 44.105 ms/op 0.94
getCommitteeAssignments - req 1 vs - 250000 vc 3.2907 ms/op 3.1461 ms/op 1.05
getCommitteeAssignments - req 100 vs - 250000 vc 4.7554 ms/op 4.5027 ms/op 1.06
getCommitteeAssignments - req 1000 vs - 250000 vc 5.2524 ms/op 4.8404 ms/op 1.09
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.7800 ns/op 5.2900 ns/op 1.09
state getBlockRootAtSlot - 250000 vs - 7PWei 804.39 ns/op 859.05 ns/op 0.94
computeProposers - vc 250000 12.219 ms/op 12.818 ms/op 0.95
computeEpochShuffling - vc 250000 127.42 ms/op 129.42 ms/op 0.98
getNextSyncCommittee - vc 250000 201.18 ms/op 224.52 ms/op 0.90

by benchmarkbot/action

.github/workflows/lint-pr-title.yml Show resolved Hide resolved
.github/workflows/lint-pr-title.yml Outdated Show resolved Hide resolved
@philknows
Copy link
Member

We should close up #5299 and also modify https://github.com/ChainSafe/lodestar/blob/unstable/CONTRIBUTING.md?plain=1#L95 to add in the new standard defined by this github action.

@dapplion
Copy link
Contributor

dapplion commented Apr 4, 2023

No conventional commit PR title for this PR?

@wemeetagain wemeetagain force-pushed the cayman/enforce-conv-commit-pr-title branch from 2e75931 to 619c978 Compare April 5, 2023 14:46
@wemeetagain
Copy link
Member Author

Ready for rereview

@wemeetagain
Copy link
Member Author

🎉 This PR is included in v1.8.0 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants