First steps towards contribution recognition

I also just realise, with the file system I propose, we could even create that file during the release process, and include it in CP - then, we could even show the contributors without a single ping to a remote, inside the very contributors page of CP!

And it wouldn’t need any cron on side of our CP main site, because as well it could read off the included contributors list, which would get renewed with each release.

I just am not convinced that this simplified approach is really suitable to do a good job of listing contributions.

  • What happens when a PR is created by one user but merged by someone else?
  • What happens when a PR has commits by multiple people? (Some of these commits are legitimate, but when this is handled, it will cause WP contributors to appear again, when we backport their changes.)
  • What happens when a contributor has a different GitHub username than the username they use on the forums/Slack? We don’t want to be maintaining this kind of mapping manually.
  • What other situations arise that I am not thinking of right now? There will certainly be more.

My guess for why you encountered this issue is that you didn’t install the composer dependencies of that library. Still, if there is an easier way to handle these issues, then fine, but we definitely shouldn’t include a contributors list in core until we are sure that we’re doing a good job of building that list.

But that library is based on git log, or not?
It won’t solve those issues either (slack user name, for example, or other situations)

I already do exclude other committers
The test shows that no committer is from WP and I get all commits since 2018

I don’t understand how the library would handle the same information (git log) differently than … git log itself, just that not using a library to parse the logs?

Maybe I misunderstand something but from what I see it would be the same data (and that means it won’t include GitHub username but only git committed name, and email + date and commit data, not much else like slack data and so on.

No tool will return us that information without further ado. To get slack names we’ll need to operate with the slack api, I guess (just an example but same applies to GitHub or other instances)

Yes. I don’t see why we would need Slack usernames though, maybe just GitHub usernames (and probably not even that, really what’s needed is a mapping of email addresses to forum usernames).

These “other committers” should not be excluded… unless they are WP committers, or people who specifically ask to be excluded.

I just think this task is complicated enough to warrant using real code that can see all of the data returned by git log at once, and make decisions based on that data (as well as linking it to a forum username, which should be done by a mapping that is also available to that code).