Page MenuHomePhabricator

Install wikidiff2 into mediawiki-quibble-api-testing-vendor-mysql-php72-docker
Closed, ResolvedPublic

Description

I'd like to have the extension "wikidiff2" (version 1.9) installed on the Docker image that runs the project "mediawiki/tools/api-testing". Job name is "mediawiki-quibble-api-testing-vendor-mysql-php72-docker".

This is due to a new endpoint in mediawiki core (T231580) that requires the wikidiff2 extension > version 1.9. The extension can be found in the Wikimedia Debian apt repository.

Please let me know if any of this is unclear!

Event Timeline

Reedy renamed this task from Add Extension installation to docker CI image to Install wikidiff2 into mediawiki-quibble-api-testing-vendor-mysql-php72-docker.Oct 24 2019, 1:27 AM
Reedy added a project: Quibble.
Reedy updated the task description. (Show Details)
brennen subscribed.

Unless I'm mistaken, this should just take adding a package in the list here:

https://gerrit.wikimedia.org/r/plugins/gitiles/integration/config/+/master/dockerfiles/quibble-stretch-php72/Dockerfile.template#12

...and bumping version (plus any dependencies).

Change 545978 had a related patch set uploaded (by Brennen Bearnes; owner: Brennen Bearnes):
[integration/config@master] quibble-stretch-php72: add wikidiff2

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

It's hitting end-of-workday here and I'm a bit fried, will pick up WIP patch in the morning.

Change 546264 had a related patch set uploaded (by Brennen Bearnes; owner: Brennen Bearnes):
[integration/config@master] mediawiki api testing: bump quibble-stretch-php72

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

Change 545978 merged by jenkins-bot:
[integration/config@master] quibble-stretch-php72: add wikidiff2

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

Mentioned in SAL (#wikimedia-releng) [2019-10-25T18:30:24Z] <brennen> Updating docker-pkg files on contint1001 for T236333

I published new docker images, updated job, and re-ran this:

https://integration.wikimedia.org/ci/job/mediawiki-quibble-api-testing-vendor-mysql-php72-docker/87/console

Is this a legitimate failure, or something to do with the images?

13:05:41   2 failing
13:05:41 
13:05:41   1) Diff Compare with Variables
13:05:41        should compare revisions 1 and 4:
13:05:41      AssertionError: expected '<tr>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n</tr>\n<tr>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n</tr>\n<tr>\n  <td class="diff-marker">−</td>\n  <td class="diff-deletedline"><div>*One</div></td>\n  <td class="diff-marker">+</td>\n  <td class="diff-addedline"><div>*<ins class="diffchange diffchange-inline"> </ins>One<ins class="diffchange diffchange-inline"> </ins></div></td>\n</tr>\n<tr>\n  <td colspan="2" class="diff-empty">&#160;</td>\n  <td class="diff-marker">+</td>\n  <td class="diff-addedline"><div>* Two</div></td>\n</tr>\n' to match /<td class='diff-addedline'><div><ins class=.*diffchange diffchange-inline.*\* Two<\/ins>/
13:05:41       at Context.it (test/DiffCompare.js:39:16)
13:05:41       at process._tickCallback (internal/process/next_tick.js:68:7)
13:05:41 
13:05:41   2) Diff Compare with Variables
13:05:41        should compare revisions 3 and 4:
13:05:41      AssertionError: expected '<tr>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n</tr>\n<tr>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n</tr>\n<tr>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>* One </div></td>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>* One </div></td>\n</tr>\n<tr>\n  <td class="diff-marker">−</td>\n  <td class="diff-deletedline"><div>* Two<del class="diffchange diffchange-inline"> </del></div></td>\n  <td class="diff-marker">+</td>\n  <td class="diff-addedline"><div>* Two</div></td>\n</tr>\n<tr>\n  <td class="diff-marker">−</td>\n  <td class="diff-deletedline"><div>* Three</div></td>\n  <td colspan="2" class="diff-empty">&#160;</td>\n</tr>\n' to match /<td class=.diff-deletedline.><div><del class=.*diffchange.*>\* Three<\/del>/
13:05:41       at Context.it (test/DiffCompare.js:46:16)
13:05:41       at process._tickCallback (internal/process/next_tick.js:68:7)

Reverted job for the time being.

Thanks for the info Brennen, looks like something is causing our integration tests to fail. Will look into and post an update. Thanks!

Change 546293 had a related patch set uploaded (by Clarakosi; owner: Clarakosi):
[mediawiki/tools/api-testing@master] Modify DiffCompare.js for use by Wikidiff2 and default diff engine

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

Brennen: We've updated the integration tests that were causing those errors you saw, and those will be out Monday likely (CI is failing to install some packagist packages, someone in release eng. mentioned that happens intermittently). If you can push back out your changes anytime Monday that would be awesome, as the tests will be fixed as soon as we merge our changes in. Thanks for all the help!

Will do!

(Also looks like I may have to tweak image versions a bit, but that shouldn't be anything you have to worry about.)

Mentioned in SAL (#wikimedia-releng) [2019-10-28T14:57:20Z] <hashar> Updating mediawiki-quibble-api-testing-vendor-mysql-php72-docker mediawiki-quibble-api-testing-vendor-sqlite-php72-docker # T236333

Change 546264 merged by jenkins-bot:
[integration/config@master] mediawiki api testing: bump quibble-stretch-php72

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

Should be good now and I have did a recheck of https://gerrit.wikimedia.org/r/#/c/mediawiki/tools/api-testing/+/546293/ it still fails though:

102 passing (17s)
1 pending
1 failing

1) Diff Compare with Variables
     should compare revisions 1 and 4:
   AssertionError: expected '<tr>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n  <td colspan="2" class="diff-lineno">Line 1:</td>\n</tr>\n<tr>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n  <td class="diff-marker">&#160;</td>\n  <td class="diff-context"><div>Counting: </div></td>\n</tr>\n<tr>\n  <td class="diff-marker">−</td>\n  <td class="diff-deletedline"><div>* One</div></td>\n  <td class="diff-marker">+</td>\n  <td class="diff-addedline"><div>* One<ins class="diffchange diffchange-inline"> </ins></div></td>\n</tr>\n<tr>\n  <td colspan="2" class="diff-empty">&#160;</td>\n  <td class="diff-marker">+</td>\n  <td class="diff-addedline"><div>* Two</div></td>\n</tr>\n' to match /<td class='diff-addedline'>.*\* Two/
    at Context.it (test/DiffCompare.js:39:16)
    at process._tickCallback (internal/process/next_tick.js:68:7)
NOTE: the wikidiff2 PHP extension is frozen in the CI Docker container. So whenever wikidiff2 is updated, the package would have to be pushed to apt.wikimedia.org and the CI container rebuild.

Change 546293 merged by jenkins-bot:
[mediawiki/tools/api-testing@master] Modify DiffCompare.js for use by Wikidiff2 and default diff engine

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

Thanks all! Tests are passing now :)

Unfortunately this breaks the test suites in MediaWiki itself which were presuming this wasn't available. Oops. :-) Follow-up in T237049.