{"thread":{"id":"55772","subject":"The top 1% of commit trailers","startedAt":"2021-05-25T22:09:54Z","lastAt":"2021-05-26T08:05:42Z","messageCount":3,"participants":["Felipe Contreras","Bagas Sanjaya"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"425539","messageId":"60ad75ac7ffca_2ae08208b@natae.notmuch","threadId":"55772","inReplyTo":null,"subject":"The top 1% of commit trailers","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2021-05-25T22:09:48Z","receivedAt":"2021-05-25T22:09:54Z","isPatch":false,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Hi,\n\nI wrote a little script [1] to get the quantiles (e.g. top 1%) of commit\ntrailers for the git.git project. Perhaps some of you are interested in\nthe result.\n\nThe top 1% is comprised of just two lines: Acked-by and Reviewed-by.\nThey alone account for 47% of all the lines.\n\nThe top 10% is shared between 16 lines, and they gather a whopping 96% of\nthe total line wealth.\n\nThe top 25% is shared between 33 lines, they have 98% wealth. To belong\non this group a line only needs to have more than 3 instances.\n\nThat means the bottom 75% only has 3 occurrences or less.\n\nThe median is 1. So 50% (in fact more than that; 100 of 155) only has one\noccurrence.\n\nJust to see this distribution visually, I plotted their frequency\ncompared with a Pareto distribution (80:20); they almost match\nperfectly:\n\nhttps://i.imgur.com/1wQgSlP.png\n\nThis should not be surprising to anyone that has studied income\ndistributions; in commit trailer lines--just like in people (and plenty\nof other things)--the rich get richer.\n\nCheers.\n\nTop 1%\n------\n  1. acked-by (1945)\n  2. reviewed-by (1729)\n\nTotal wealth: 47%\n\nTop 10%\n-------\n  3. helped-by (1336)\n  4. reported-by (960)\n  5. mentored-by (379)\n  6. suggested-by (281)\n  7. cc (222)\n  8. noticed-by (165)\n  9. tested-by (153)\n 10. improved-by (88)\n 11. thanks-to (65)\n 12. based-on-patch-by (50)\n 13. contributions-by (43)\n 14. co-authored-by (41)\n 15. requested-by (28)\n 16. original-patch-by (28)\n\nTotal wealth: 96%\n\nTop 25%\n-------\n 17. inspired-by (23)\n 18. explained-by (9)\n 19. found-by (8)\n 20. trivially-acked-by (7)\n 21. commit-message-by (7)\n 22. fixes (7)\n 23. initial-patch-by (7)\n 24. reported-and-tested-by (6)\n 25. diagnosed-by (6)\n 26. based-on-a-patch-by (6)\n 27. liked-by (5)\n 28. author (5)\n 29. reference (5)\n 30. encouraged-by (5)\n 31. from (4)\n 32. analyzed-by (4)\n 33. initial-test-by (4)\n\nTotal wealth: 98%\n\nBottom 50%\n----------\n 59. cheered-on-by (1)\n 60. signed-off (1)\n 61. confirmed-by (1)\n 62. hopefully-signed-off-by (1)\n 63. thanked-by (1)\n 64. rediffed-against-next-by (1)\n 65. completely-acked-by (1)\n 66. test-proposed-by (1)\n 67. patch-submitted-by (1)\n 68. credit-to (1)\n 69. deemed-obviously-correct-by (1)\n 70. backtraced-by (1)\n 71. tested-on-mingw-by (1)\n 72. looks-good-by (1)\n 73. test-updates-by (1)\n 74. tested-on-freebsd-by (1)\n 75. tested-on-aix-by (1)\n 76. kind-of-noticed-by (1)\n 77. patch-by (1)\n 78. okay-then-by (1)\n 79. looks-right-to-me-by (1)\n 80. reviewd-by (1)\n 81. wished-for-by (1)\n 82. acked-and-tested-by (1)\n 83. re-suggested-by (1)\n 84. originally-submitted-by (1)\n 85. looks-fine-to-me-by (1)\n 86. based-on-patch-from (1)\n 87. see (1)\n 88. initial-version-by (1)\n 89. worriedly-acked-by (1)\n 90. initial-fix-by (1)\n 91. mentored-and-acked-by (1)\n 92. x-gentoo-bug (1)\n 93. works-around (1)\n 94. tipping-vote-by (1)\n 95. debugged-by (1)\n 96. helpd-by (1)\n 97. heavylifting-by (1)\n 98. inspired-by-patch-by (1)\n 99. inspired-by-code-by (1)\n100. based-on-code-from (1)\n101. based-on-code-by (1)\n102. tracked-down-by (1)\n103. picked-from (1)\n104. discovered-by (1)\n105. improved-and-acked-by (1)\n106. based-on-commit-message-by (1)\n107. updated-by (1)\n108. discussion-triggered-by (1)\n109. sugested-by (1)\n110. reported-tested-and-explained-by (1)\n111. initial-work-by (1)\n112. brown-paper-bag-fixes-by (1)\n113. test-written-by (1)\n114. test-added-by (1)\n115. bug-spotted-and-fixed-by (1)\n116. inputs-from (1)\n117. with-suggestions-by (1)\n118. more-spots-found-by (1)\n119. message-proposed-by (1)\n120. revised-by (1)\n121. reported-and-analyzed-by (1)\n122. prompted-by (1)\n123. clarified-by (1)\n124. reviewed-and-improved-by (1)\n125. brought-to-attention-by (1)\n126. reminded-by (1)\n127. adapted-by (1)\n128. edited-by (1)\n129. hepled-by (1)\n130. test-adapted-from (1)\n131. clever-idea-by (1)\n132. fix-suggested-by (1)\n133. reported-and-suggested-by (1)\n134. history-dug-by (1)\n135. derived-from-code-by (1)\n136. fix-proposed-by (1)\n137. benchmarked-by (1)\n138. issue-found-by (1)\n139. test-provided-by (1)\n140. test-code-by (1)\n141. reported-at (1)\n142. signeg-off-by (1)\n143. wording-by (1)\n144. also-reported-by (1)\n145. issue-on-macos-explained-by (1)\n146. issue-on-macos-reported-by (1)\n147. researched-by (1)\n148. explanation-by (1)\n149. rported-by (1)\n150. change-id (1)\n151. rebased-by (1)\n152. inspired-by-a-patch-by (1)\n153. simplified-testcase-and-bisection-by (1)\n154. heled-by (1)\n155. pointed-out-by (1)\n156. suggestions-by (1)\n157. original-implementation-by (1)\n158. summary (1)\n\nTotal wealth: 1%\n\n[1] https://gist.github.com/felipec/ce491d351c88e4acbdbf6bc02a47223d\n\n-- \nFelipe Contreras\n"},{"id":"425546","messageId":"24504f19-eb8e-c725-723a-22efea7c865c@gmail.com","threadId":"55772","inReplyTo":"60ad75ac7ffca_2ae08208b@natae.notmuch","subject":"Re: The top 1% of commit trailers","fromName":"Bagas Sanjaya","fromEmail":"bagasdotme@gmail.com","sentAt":"2021-05-26T04:54:12Z","receivedAt":"2021-05-26T04:54:19Z","isPatch":false,"sender":{"key":"bagasdotme@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40219486?v=4"},"body":"Hi Felipe,\n\nOn 26/05/21 05.09, Felipe Contreras wrote:\n> Hi,\n> \n> I wrote a little script [1] to get the quantiles (e.g. top 1%) of commit\n> trailers for the git.git project. Perhaps some of you are interested in\n> the result.\n> \n> The top 1% is comprised of just two lines: Acked-by and Reviewed-by.\n> They alone account for 47% of all the lines.\n> \n> The top 10% is shared between 16 lines, and they gather a whopping 96% of\n> the total line wealth.\n> \n> The top 25% is shared between 33 lines, they have 98% wealth. To belong\n> on this group a line only needs to have more than 3 instances.\n> \n> That means the bottom 75% only has 3 occurrences or less.\n> \n> The median is 1. So 50% (in fact more than that; 100 of 155) only has one\n> occurrence.\n> \n> Just to see this distribution visually, I plotted their frequency\n> compared with a Pareto distribution (80:20); they almost match\n> perfectly:\n> \n> https://i.imgur.com/1wQgSlP.png\n> \n> This should not be surprising to anyone that has studied income\n> distributions; in commit trailer lines--just like in people (and plenty\n> of other things)--the rich get richer.\n> \n> Cheers.\n> \n> Top 1%\n> ------\n>    1. acked-by (1945)\n>    2. reviewed-by (1729)\n> \n> Total wealth: 47%\n> \n> Top 10%\n> -------\n>    3. helped-by (1336)\n>    4. reported-by (960)\n>    5. mentored-by (379)\n>    6. suggested-by (281)\n>    7. cc (222)\n>    8. noticed-by (165)\n>    9. tested-by (153)\n>   10. improved-by (88)\n>   11. thanks-to (65)\n>   12. based-on-patch-by (50)\n>   13. contributions-by (43)\n>   14. co-authored-by (41)\n>   15. requested-by (28)\n>   16. original-patch-by (28)\n> \n> Total wealth: 96%\n> \n> Top 25%\n> -------\n>   17. inspired-by (23)\n>   18. explained-by (9)\n>   19. found-by (8)\n>   20. trivially-acked-by (7)\n>   21. commit-message-by (7)\n>   22. fixes (7)\n>   23. initial-patch-by (7)\n>   24. reported-and-tested-by (6)\n>   25. diagnosed-by (6)\n>   26. based-on-a-patch-by (6)\n>   27. liked-by (5)\n>   28. author (5)\n>   29. reference (5)\n>   30. encouraged-by (5)\n>   31. from (4)\n>   32. analyzed-by (4)\n>   33. initial-test-by (4)\n> \n> Total wealth: 98%\n> \n> Bottom 50%\n> ----------\n>   59. cheered-on-by (1)\n>   60. signed-off (1)\n>   61. confirmed-by (1)\n>   62. hopefully-signed-off-by (1)\n>   63. thanked-by (1)\n>   64. rediffed-against-next-by (1)\n>   65. completely-acked-by (1)\n>   66. test-proposed-by (1)\n>   67. patch-submitted-by (1)\n>   68. credit-to (1)\n>   69. deemed-obviously-correct-by (1)\n>   70. backtraced-by (1)\n>   71. tested-on-mingw-by (1)\n>   72. looks-good-by (1)\n>   73. test-updates-by (1)\n>   74. tested-on-freebsd-by (1)\n>   75. tested-on-aix-by (1)\n>   76. kind-of-noticed-by (1)\n>   77. patch-by (1)\n>   78. okay-then-by (1)\n>   79. looks-right-to-me-by (1)\n>   80. reviewd-by (1)\n>   81. wished-for-by (1)\n>   82. acked-and-tested-by (1)\n>   83. re-suggested-by (1)\n>   84. originally-submitted-by (1)\n>   85. looks-fine-to-me-by (1)\n>   86. based-on-patch-from (1)\n>   87. see (1)\n>   88. initial-version-by (1)\n>   89. worriedly-acked-by (1)\n>   90. initial-fix-by (1)\n>   91. mentored-and-acked-by (1)\n>   92. x-gentoo-bug (1)\n>   93. works-around (1)\n>   94. tipping-vote-by (1)\n>   95. debugged-by (1)\n>   96. helpd-by (1)\n>   97. heavylifting-by (1)\n>   98. inspired-by-patch-by (1)\n>   99. inspired-by-code-by (1)\n> 100. based-on-code-from (1)\n> 101. based-on-code-by (1)\n> 102. tracked-down-by (1)\n> 103. picked-from (1)\n> 104. discovered-by (1)\n> 105. improved-and-acked-by (1)\n> 106. based-on-commit-message-by (1)\n> 107. updated-by (1)\n> 108. discussion-triggered-by (1)\n> 109. sugested-by (1)\n> 110. reported-tested-and-explained-by (1)\n> 111. initial-work-by (1)\n> 112. brown-paper-bag-fixes-by (1)\n> 113. test-written-by (1)\n> 114. test-added-by (1)\n> 115. bug-spotted-and-fixed-by (1)\n> 116. inputs-from (1)\n> 117. with-suggestions-by (1)\n> 118. more-spots-found-by (1)\n> 119. message-proposed-by (1)\n> 120. revised-by (1)\n> 121. reported-and-analyzed-by (1)\n> 122. prompted-by (1)\n> 123. clarified-by (1)\n> 124. reviewed-and-improved-by (1)\n> 125. brought-to-attention-by (1)\n> 126. reminded-by (1)\n> 127. adapted-by (1)\n> 128. edited-by (1)\n> 129. hepled-by (1)\n> 130. test-adapted-from (1)\n> 131. clever-idea-by (1)\n> 132. fix-suggested-by (1)\n> 133. reported-and-suggested-by (1)\n> 134. history-dug-by (1)\n> 135. derived-from-code-by (1)\n> 136. fix-proposed-by (1)\n> 137. benchmarked-by (1)\n> 138. issue-found-by (1)\n> 139. test-provided-by (1)\n> 140. test-code-by (1)\n> 141. reported-at (1)\n> 142. signeg-off-by (1)\n> 143. wording-by (1)\n> 144. also-reported-by (1)\n> 145. issue-on-macos-explained-by (1)\n> 146. issue-on-macos-reported-by (1)\n> 147. researched-by (1)\n> 148. explanation-by (1)\n> 149. rported-by (1)\n> 150. change-id (1)\n> 151. rebased-by (1)\n> 152. inspired-by-a-patch-by (1)\n> 153. simplified-testcase-and-bisection-by (1)\n> 154. heled-by (1)\n> 155. pointed-out-by (1)\n> 156. suggestions-by (1)\n> 157. original-implementation-by (1)\n> 158. summary (1)\n> \n> Total wealth: 1%\n> \n> [1] https://gist.github.com/felipec/ce491d351c88e4acbdbf6bc02a47223d\n> \n\nWhy did you deliberately exclude Signed-off-by trailer? I don't see\nthat trailer above.\n\nFor some trailers that have only 1 occurrence, these are typos of\nintended trailers (such as heled-by and helpd-by which means\nhelped-by).\n\n-- \nAn old man doll... just what I always wanted! - Clara\n"},{"id":"425552","messageId":"60ae0151b4df8_34e96208d0@natae.notmuch","threadId":"55772","inReplyTo":"24504f19-eb8e-c725-723a-22efea7c865c@gmail.com","subject":"Re: The top 1% of commit trailers","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2021-05-26T08:05:37Z","receivedAt":"2021-05-26T08:05:42Z","isPatch":false,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Bagas Sanjaya wrote:\n> On 26/05/21 05.09, Felipe Contreras wrote:\n\n> > Total wealth: 1%\n> > \n> > [1] https://gist.github.com/felipec/ce491d351c88e4acbdbf6bc02a47223d\n> \n> Why did you deliberately exclude Signed-off-by trailer? I don't see\n> that trailer above.\n\nBecause it's in a completely different class. It is mandatory, and we\nall know it's #1, by far.\n\nIn the wealth analogy Signed-off-by is a king; so far away from anybody\nelse it's not even worth contemplating.\n\n> For some trailers that have only 1 occurrence, these are typos of\n> intended trailers (such as heled-by and helpd-by which means\n> helped-by).\n\nIndeed. I had code in place to fix those, but then I decided against\nthat because they exemplify a crucial part of language; mistakes happen.\n\nIt would be cheating to hide that truth.\n\nHeled-by is now part of the history, just like\nSimplified-testcase-and-bisection-by, and I'm not going to try to hide\neither of those.\n\nCheers.\n\n-- \nFelipe Contreras\n"}]}