Page MenuHomePhabricator

Opt-in Differential for projects needing code review but not Jenkins/Zuul for continuous integration
Closed, ResolvedPublic

Description

Background

In T560#1095147, @Qgil wrote:

Never surrender... :)
On Fri, Feb 20, 2015 at 5:35 PM, Chad Horohoe wrote in an email:

Step 1 should be doing projects that don't even need Gerrit or Jenkins. Then we can focus on the Arc-Differential bits right without any other moving pieces.

What about a demo-able project for the Wikimedia-Hackathon-2015 consisting Pywikibot code review in Phabricator? Could be a test in phab-01 or the real deal in production, depending on how good is the implementation and how on board the Pywikibot folks are.
If @mmodell (Wikimedia Phabricator maintainer) and @jayvdb (Pywikibot maintainer) are also in, I don't think we require anything else to try this out in Lyon. Other Gerrit-Migration interested parties will be either in Lyon or available online, busy with other things but probably able to answer and help on specific bits during the event. It is very likely that more Pywikibot folks will be at the event. It is going to be a very good environment for ad-hoc technical & social discussions and decisions in the Phabricator and Pywikibot sides.
Also, if we define what "projects that don't even need Gerrit or Jenkins" means, we might get other projects during the weekend from the pool of bots, Tool Labs, etc, that will be at the event.
No matter at which point we leave the work at the end of the hackathon, we could continue polishing after the event, opening the door to all these non-Jenkins projects, and starting to build a critical mass of projects using Differential for code review.

This task is marked as stretch goal at T93770: Engineering Community quarterly goals for April-June 2015

Getting Started with Differential

In order to access the Wikimedia instance of Differential, all that is required is that you join the Differential-Beta project.

Before you can actually make use of Differential in a meaningful way, there are a few more things that must be in place:

  • You need to set up Arcanist locally in order to submit changes to Differential.
  • Your repository needs to be mirrored in phabricator before it'll work with Differential.
    • To verify, be sure that you can find the repository listed in Diffusion.
    • If it's missing, ask @mmodell (IRC: twentyafterfour) or @demon (IRC: ^d) to set it up for you.

Related Objects

StatusAssignedTask
ResolvedDzahn
ResolvedCmjohnson
ResolvedDzahn
Resolveddemon
Resolveddemon
ResolvedDanny_B
ResolvedPaladox
ResolvedPaladox
ResolvedNemo_bis
Resolveddemon
ResolvedPaladox
ResolvedKrenair
Resolvedmmodell
InvalidNone
DeclinedNone
Resolveddemon
InvalidNone
InvalidNone
ResolvedQgil
DeclinedNone
DuplicateNone
Resolvedgreg
Resolvedgreg

Event Timeline

Qgil created this task.Mar 27 2015, 1:42 PM
Qgil raised the priority of this task from to Low.
Qgil updated the task description. (Show Details)
Qgil added subscribers: Ricordisamoa, JanZerebecki, jayvdb and 7 others.
Qgil updated the task description. (Show Details)
Qgil set Security to None.

The title only mentions Jenkins/Zuul. Is there any offer of CI included in this step of our Differential installation?

If there is a git repo with code someone wants to run but no CI then that is a bug. (I know they exists, but why would you want to prevent basic syntax checking?)

IMHO we should not introduce Differential by any means without considering the losses. And not move code into a place where quality improvements are prevented. And only add a new tool for the same task if we retire one other. Please clarify if/how you disagree.

The title only mentions Jenkins/Zuul. Is there any offer of CI included in this step of our Differential installation?

We're waiting for Harbormaster in Phabricator. Also see some of the discussion comments in T89714.

Pywikibot really needs its integration with integrated CI for work by new contributors, however we have extensive tests run by travis and many of the core devs push changes to github/travis in addition to submitting to gerrit, and we push complex gerrit changes to github/travis before +2 in gerrit to help show hard to see unexpected problems.

So some core devs could use Differential without CI and utilise travis for CI, provided gerrit remains an option for some contributors. Not sure if gerrit and differential can play nice together on the same master. If not we could look at other approaches, like using differential only for a new pwb3 branch while gerrit is used for the current pwb2 master which is close to being released.

differential doesn't use git directly so it can easily co-exist with other systems. And since phabricator can track git repos hosted elsewhere then you just point phab at the repo, set up arcanist locally and start submitting diffs.

there is also http://www.dctrwatson.com/2013/01/jenkins-and-phabricator/ -> it's pretty easy to hook arcanist up to jenkins bypassing zuul. It might be a valid way to set things up for a alpha-stage differential experiment.

Ya. Looks easy and good enough for our needs.

we could also look at pushing review changesets to github branches, which would trigger our travis testsuite.
https://secure.phabricator.com/T4482

To use differential please join the Differential-Beta project.

I did and there is no Application named Differential showing up for me.

You do not have permission to view this object.
Members of the project "Gerrit-Migration" can take this action.

@JanZerebecki: Sorry I had it set up incorrectly. Would you mind giving it another try?

mmodell updated the task description. (Show Details)Apr 30 2015, 11:34 AM
mmodell added a subscriber: demon.
Qgil added a comment.Apr 30 2015, 11:41 AM

After joining the project, I can access https://phabricator.wikimedia.org/differential/. Cool!

Works: Now it shows up under Applications and I can access it.

mmodell moved this task from To Triage to Tooling on the Gerrit-Migration board.May 1 2015, 4:32 AM
Qgil added a comment.Jul 3 2015, 10:25 AM

Please confirm and promote this activity by assigning it to its owner, listing it or scheduling it at the Hackathon wiki page and by placing it in the right column at #Wikimania-Hackathon-2015. Thank you!

Qgil added a comment.Jul 7 2015, 1:41 PM

@mmodell are you or anyone you know planning to work on this task at Wikimania? (I'm not going this year)

greg closed this task as Resolved.Oct 22 2015, 9:41 PM
greg claimed this task.
greg added a subscriber: greg.

This is done. Differential is available in an opt-in basis. RelEng is using it for Scap work (see: https://phabricator.wikimedia.org/differential/query/Bl4g_4o5nAT8/ )

(If there's a desire to have a place where people can ask to do this for themselves, that should be on-wiki under Phabricator/ somewhere, not this task.)

Restricted Application added a project: User-greg. · View Herald TranscriptOct 22 2015, 9:41 PM
demon moved this task from Tooling to Done/Archive on the Gerrit-Migration board.Dec 1 2015, 6:45 PM