Page MenuHomePhabricator

Help needed to setup the elastic6 dev branch on CirrusSearch, Elastica and mediawiki-vendor
Closed, ResolvedPublic

Description

In order to prepare CirrusSearch for elastic6 need to put a development branch in gerrit. We did this in the past by creating a branch on few repository:

  • mediawiki-vendor
  • Elastica
  • CirrusSearch
  • possibly Translate and ApiFeatureUsage if the code needed to make these extensions compatible spans multiple patches.

We did this in the past for elasticsearch 1.x->2.x and 2.x -> 5.x migration.
We tried to apply the same technique for 5.x -> 6.x but this time it did not work as expected, I did not manage to tell Jenkins to run integration checks on the patches.
Things I tried:

  • setup a es6 branch on vendor/Elastica/CirrusSearch
    • Jenkins did not run the full suite on CirrusSearch (only phan checks)
  • setup a wmf/es6
    • discovered by Erik that the job config expects branches to be master or wmf/* but after adding all the relevant Depends-On tags now jenkins refuses to run the checks on CirrusSearch/Elastica and mw-vendor.

Patches:

There's a dependency cycle here but IIRC we did this as well in the past (forcing V+2 on one of the repo when we decided to merge)

For reference here is what we've done in the past:

Event Timeline

dcausse triaged this task as Medium priority.
dcausse created this task.
hashar subscribed.

Following releng team meeting, @dcausse lets sync on it on Tuesday.

Following a discussion with David this morning:

The jobs have not been triggered by CI/Zuul because the three patches are in a dependency cycle (A -> B -> C -> A). In this case Zuul just skip processing the changes entirely and does not offer any feedback. I recommend to remove the Depends-On on the mediawiki/vendor change the jobs will fail, but the other dependent would get the pending patch.
Once the changes are ready/passing, you can force merge the change to mediawiki/vendor then +2 the other changes and it should work.

If at all possible, use a feature branch es6. The CI/Zuul has branch filters for branches matching ^wmf/ which are slightly different, eg they never trigger jobs using composer but solely rely on vendor.

Change 449428 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] Only skip wmf-quibble jobs on REL branches

https://gerrit.wikimedia.org/r/449428

Change 449428 merged by jenkins-bot:
[integration/config@master] Only skip wmf-quibble jobs on REL branches

https://gerrit.wikimedia.org/r/449428

After more talking with David the summary is:

  • no jobs were triggered because of the dependency cycle between changes. Zuul skips them.
  • CirrusSearch and Elastica are part of a set of extensions that are tested together. They use the jobs wmf-quibble*. That job was only able to run for master or wmf/.* branches.

The original changes were made to branches wmf/es6, so by breaking the dependency cycle I think jobs would have run just fine.

I have updated CI ( https://gerrit.wikimedia.org/r/449428 ) to allow the job to run on any branches BUT the REL.* ones. Essentially switching from a whitelist (master or wmf) to a blacklist (not REL).

dcausse moved this task from Waiting to Needs Reporting on the Discovery-Search (Current work) board.

thanks!
this works as expected now.