Since I am not an Apache committer, I’ve never directly committed to Apache Kafka. All my contributions have been accepted pull requests. Nevertheless I have the Committer badge here. So I am wondering why and what the difference between “created a commit” and “contributed an accepted pull request” is. Similar applies to the other badges that contain the word “Committer” and “Contributor”.
Additionally, it seems that the definition of Committer and Contributor here and in Apache Kafka differ, which might be confusing.
I’m going to disable the Committer badges, because (a) it’s ambiguous in exactly the way you say, and (b) Committer is an overloaded term in the context of ASF, and if the plugin it using it in a different way then we’re going to confuse people
This makes sense to me. We should follow ASF terminology and use the
term “committer” for well, committers only. And we have the
corresponding group for those people.
Everybody else should be a “contributor” and the names of the three
contributor badges make sense to me!
I found this post which says that the refresh is every four hours.
I’ve logged a support ticket since this plugin seems kinda black-box (although the source code is here if anyone wants to take a look).
I’m wondering if the config that I set (github gold badge min commits ) applies only to commits and not contributions - this might make sense if the default threshold is 250 and @Bruno has 87 (< 250) and @mjsax 385 (>250)
Bruno has made 87 commits to the repo, but only 42 of those commits have been made with the ‘contributor’ role. His other commits were made with the ‘committer’ role
Looking at the Kafka repo for @Bruno’s commits I think this is the difference that the badge plugin is making:
the plugin splits the difference between contributions (committed by someone else) and commits (committed directly).
What I’m not clear about is how someone who is not a Committer (in the ASF sense) on the Apache Kafka project can commit directly to the repo - @mjsax can you explain?
I think the best would be to have a badge for the sum of contributions and commits because it would be the least confusing criteria to grant the badge. Don’t you think?
I am not 100% sure, but only committers can merge PRs.
It seems that there is a cut-off point and older PR are labeled as “authored” while newer ones are labeled “committed”, thus, it might be a change how we merge PRs? But I am not sure what changed…
The only thing I could think of (but this changes happened earlier) is as follows: In early days, we could not merge directly on GitHub, because GitHub is not the primary repository but a mirror of a ASF hosted git; we still did PRs and reviews over GitHub, but merged those PRs into the primary ASF repos and the commit was mirrored into GitHub afterwards. – Later on, ASF allows us to merge directly on GitHub.
I agree with Bruno though that it make not sense to no count all. It’s an artificial distinction.
The root issue seems to be that the plugin is picking up some contributions (merged PRs) as commits. This means that the numbers are off, and users who do not have commit rights on the repo are incorrectly granted committer badges.
Here’re some examples, both PRs from @Bruno - who does not have commit rights on the repo :
20 Dec 2019 1d21cf166a8ed7def514a1860318e74b64dd47damerged by mjsax. Plugin categories this as a contribution (correctly).
29 Oct 2020 a85b9440118ae5aa442d2e1e70b379841f941ddcmerged by ableegoldman. Plugin incorrectly categories this as a commit (incorrectly).
The role field is how it is viewing the commit vs contribution (code):
SELECT * from github_commits
where sha IN ('a85b9440118ae5aa442d2e1e70b379841f941ddc','1d21cf166a8ed7def514a1860318e74b64dd47da')
So the second commit (a85b9440118ae5aa442d2e1e70b379841f941ddc) despite still being a PR that was merged, has fallen victim to the logic in the plugin code shown above, which says that if the committer name is GitHub then it must be a direct commit by the author - and I don’t think that’s a valid assumption for it to make.