janitor icon indicating copy to clipboard operation
janitor copied to clipboard

Track open source contributions made with Janitor

Open jankeromnes opened this issue 7 years ago • 4 comments

It would be great to know how many code contributions come out of Janitor, to get a sense of the impact we have on all our open source projects.

But I don't really know how to implement this (we've wanted this for years). Here are a few ideas, in no particular order, to get this discussion started:

A. Credit message: Add a Made with Janitor credit at the bottom of every new commit message by default (but users might get annoyed / always remove it)

B. Developer telemetry: Add telemetry in Janitor containers / IDEs that detect when new commits are pushed upstream (very hard to implement, and pretty bad for user privacy I think)

C. Claim API: Add a Janitor API handler for users to self-report commits they've contributed upstream (but nobody will do that without extra tools and incentives)

D. Developer stats: Start tracking & showing developer stats to encourage friendly competition, e.g. contributing as many patches to as many projects as possible (gamification for Janitor, which could incentivize users to self-report contributions)

E. Claim button: Write a WebExtension that adds a Claim on Janitor button everywhere you see commits that you might have done with Janitor (e.g. on Chromium's Gerrit, on hg.mozilla.org, on GitHub, etc)

F. Batch claim: Make a Janitor web page that can collect & show all commits that are probably made by you, allowing you to claim any commits you've actually made with Janitor in one go

@PhistucK @beaufortfrancois @FrancoisChastel I think you had some thoughts & wants about this?

jankeromnes avatar Jun 07 '18 08:06 jankeromnes

F. seems the most effective, combined with when containers are created/used, you can score a pretty accurate view. D. would also be cool, but you will probably have to offer prizes for the periodic winner, otherwise it is not so appealing.

How about the following? G. Periodically ask the user if they made any contribution and ask them to fill a form with links to those contributions (with a check box for optionally stop bothering them). H. Alias the various upload commands to also ask the question from G. In Chromium, git cl upload would be git cl upload ...; echo Made any contribution? Claim it at janitor.technology/claim. I. Same as H, but echo "Contributing? Kindly add "Powered by Janitor" to your commit description? :)" with a pause before the command starts.

(Or a combination of them)

phistuck avatar Jun 07 '18 10:06 phistuck

(And a .stopnagging file that can stop those messages)

phistuck avatar Jun 07 '18 17:06 phistuck

I plan to add this comment to my (hopefully) next Chromium change list -

This commit was made possible by Janitor -
https://janitor.technology

phistuck avatar Jul 30 '18 17:07 phistuck

Thinking of the three big constraints that I would have on such a feature:

  1. It should not change the PR or Commit messages. If it does, I'll just remove it.

  2. It should not require me to manually enter my contributions.

  3. It should not count a contribution until it lands in master.


I can think of a couple ways to do it that fit:

  • Add a hook in the containers that any created commit hashes back to the mothership. These commit hashes expire after a couple months, along with the containers, or something. The telemetry should not collect anything but commit hashes. Have a separate process that pulls from master for supported projects and compares the master branch to telemetry-collected commits: if one shows up in master, count it.

  • Tag commits with some non-message side channel, like a PGP key, that's connected to Janitor. If the process sees a new commit from master with the Janitor PGP key, count it.

notriddle avatar Jul 30 '18 18:07 notriddle