Hey, Github has a huge community of developers that collaborating with them can be beneficial for us and them but Wikimedia codes are in gerrit (and in future in phabricator) and our bug tracker is in phabrictor. sometimes It feels we are in another planet. Wikimedia has a mirror in github but we close pull requests immediately and we barely check issues raised there. Also there is a big notice in github[1], "if you want to help, do it our way". Suddenly I got an idea that if we can synchronize github activities with gerrit and phabricator, it would help us by letting others help in their own way. It made me so excited that I wrote a bot yesterday to automatically duplicates patches of pull requests in gerrit and makes a comment in the pull request stating we made a patch in gerrit. I did a test in pywikibot and it worked well [2][3].
Note that the bot doesn't create a pull request for every gerrit patch but it creates a gerrit patch for every (open) pull requests.
But before I go on we need to discuss on several important aspects of this idea: 1- Is it really necessary to do this? Do you agree we need something like that? 2-I think a bot to duplicate pull requests is not the best idea since it creates them under the bot account and not under original user account. We can create a plugin for phabrictor to do that but issues like privacy would bother us. (using OAuth wouldn't be a bad idea) What do you think? What do you suggest? 3- Even if we create a plugin, still a bot to synchronize comments and code reviews is needed. I wrote my original code in a way that I can expand this to do this job too, but do you agree we need to do this? 4- We can also expand this bot to create a phabricator task for each issue that has been created (except pull requests). Is it okay?
I published my code in [4].
[1]: https://github.com/wikimedia/pywikibot-core "Github mirror of "pywikibot/core" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing" [2]: https://github.com/wikimedia/pywikibot-core/pull/5 [3]: https://gerrit.wikimedia.org/r/208906 [4]: https://github.com/Ladsgroup/sync_github_bot
Best
On Tue, May 5, 2015 at 1:05 AM, Amir Ladsgroup ladsgroup@gmail.com wrote:
Hey, Github has a huge community of developers that collaborating with them can be beneficial for us and them but Wikimedia codes are in gerrit (and in future in phabricator) and our bug tracker is in phabrictor. sometimes It feels we are in another planet. Wikimedia has a mirror in github but we close pull requests immediately and we barely check issues raised there. Also there is a big notice in github[1], "if you want to help, do it our way". Suddenly I got an idea that if we can synchronize github activities with gerrit and phabricator, it would help us by letting others help in their own way. It made me so excited that I wrote a bot yesterday to automatically duplicates patches of pull requests in gerrit and makes a comment in the pull request stating we made a patch in gerrit. I did a test in pywikibot and it worked well [2][3].
Note that the bot doesn't create a pull request for every gerrit patch but it creates a gerrit patch for every (open) pull requests.
But before I go on we need to discuss on several important aspects of this idea: 1- Is it really necessary to do this? Do you agree we need something like that? 2-I think a bot to duplicate pull requests is not the best idea since it creates them under the bot account and not under original user account. We can create a plugin for phabrictor to do that but issues like privacy would bother us. (using OAuth wouldn't be a bad idea) What do you think? What do you suggest? 3- Even if we create a plugin, still a bot to synchronize comments and code reviews is needed. I wrote my original code in a way that I can expand this to do this job too, but do you agree we need to do this? 4- We can also expand this bot to create a phabricator task for each issue that has been created (except pull requests). Is it okay?
I published my code in [4].
[1]: https://github.com/wikimedia/pywikibot-core "Github mirror of "pywikibot/core" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing" [2]: https://github.com/wikimedia/pywikibot-core/pull/5 [3]: https://gerrit.wikimedia.org/r/208906 [4]: https://github.com/Ladsgroup/sync_github_bot
I think this is a cool idea. What I like about this is the general idea of trying to lower the barriers to contribution while still preserving a single source of truth and reviewer workflow.
RobLa and I talked a couple of times in the past about the potential usefulness of something similar. I'm actually more interested in seeing tools built to bridge GitHub and Phabricator than GitHub and Gerrit however. Gerrit's days as the Wikimedia code review system are numbered and Phabricator will be the next system we use.
Facebook uses a bot to transfer pull requests from GitHub [5] to their Phabricator instance [6] for HHVM. Having a system like this for the Wikimedia projects would be nice. It would be interesting to see something similar built to transfer GitHub issues to Phabricator as well possibly with an additional status change on the GitHub side when the associated Phabricator task was resolved.
[5]: https://github.com/facebook/hhvm/pull/4924#issuecomment-76651483 [6]: https://reviews.facebook.net/D34215
Bryan
I'd also like to mention some similar, third-party solutions that also address this problem:
Github plugin for Gerrit https://gerrit.googlesource.com/plugins/github/: seems to act as a "translator" between Gerrit/GH while maintaining sync between the two. Last I checked, we won't use it because we'd have to upgrade our Gerrit install, and as Greg mentioned, we're not willing to upgrade Gerrit because we're trying to migrate to Differential.
Third-party site which does mirroring http://gerrithub.io/: this website seems to allow you to have a "gerrit interface" to a GitHub repo (different approach, AFAICT same end result that you can contribute & review via gerrit or github). Probably less feasible for us because it's a third party solution—though I'm not sure whether it's open source.
On Tue, May 5, 2015 at 4:28 PM, Bryan Davis bd808@wikimedia.org wrote:
On Tue, May 5, 2015 at 1:05 AM, Amir Ladsgroup ladsgroup@gmail.com wrote:
Hey, Github has a huge community of developers that collaborating with them
can
be beneficial for us and them but Wikimedia codes are in gerrit (and in future in phabricator) and our bug tracker is in phabrictor. sometimes It feels we are in another planet. Wikimedia has a mirror in github but we close pull requests immediately
and
we barely check issues raised there. Also there is a big notice in github[1], "if you want to help, do it our way". Suddenly I got an idea that if we can synchronize github activities with gerrit and phabricator, it would help us by letting others help in their own way. It made me so excited that I wrote a bot yesterday to automatically duplicates patches
of
pull requests in gerrit and makes a comment in the pull request stating
we
made a patch in gerrit. I did a test in pywikibot and it worked well
[2][3].
Note that the bot doesn't create a pull request for every gerrit patch
but
it creates a gerrit patch for every (open) pull requests.
But before I go on we need to discuss on several important aspects of
this
idea: 1- Is it really necessary to do this? Do you agree we need something like that? 2-I think a bot to duplicate pull requests is not the best idea since it creates them under the bot account and not under original user account.
We
can create a plugin for phabrictor to do that but issues like privacy
would
bother us. (using OAuth wouldn't be a bad idea) What do you think? What
do
you suggest? 3- Even if we create a plugin, still a bot to synchronize comments and
code
reviews is needed. I wrote my original code in a way that I can expand
this
to do this job too, but do you agree we need to do this? 4- We can also expand this bot to create a phabricator task for each
issue
that has been created (except pull requests). Is it okay?
I published my code in [4].
[1]: https://github.com/wikimedia/pywikibot-core "Github mirror of "pywikibot/core" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing" [2]: https://github.com/wikimedia/pywikibot-core/pull/5 [3]: https://gerrit.wikimedia.org/r/208906 [4]: https://github.com/Ladsgroup/sync_github_bot
I think this is a cool idea. What I like about this is the general idea of trying to lower the barriers to contribution while still preserving a single source of truth and reviewer workflow.
RobLa and I talked a couple of times in the past about the potential usefulness of something similar. I'm actually more interested in seeing tools built to bridge GitHub and Phabricator than GitHub and Gerrit however. Gerrit's days as the Wikimedia code review system are numbered and Phabricator will be the next system we use.
Facebook uses a bot to transfer pull requests from GitHub [5] to their Phabricator instance [6] for HHVM. Having a system like this for the Wikimedia projects would be nice. It would be interesting to see something similar built to transfer GitHub issues to Phabricator as well possibly with an additional status change on the GitHub side when the associated Phabricator task was resolved.
Bryan
Bryan Davis Wikimedia Foundation bd808@wikimedia.org [[m:User:BDavis_(WMF)]] Sr Software Engineer Boise, ID USA irc: bd808 v:415.839.6885 x6855
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On Tue, May 5, 2015 at 4:28 PM, Bryan Davis bd808@wikimedia.org wrote:
Facebook uses a bot to transfer pull requests from GitHub [5] to their Phabricator instance [6] for HHVM.
I gotta say I wasn't thrilled with it. It just felt all disjointed a broken. As much as I like the idea of lowering the barrier to entry it felt like a bait and switch. I saw github issues and sent a pull request and was bounced to some other system where I needed yet another account. At least with our setup its clear up front what you are getting into.
A two way synch bot like that spoke as the proper user would be pretty awesome.
Nik
wikitech-l@lists.wikimedia.org