Page MenuHomePhabricator

Create an integration test running Quibble with mediawiki/core
Open, MediumPublic

Description

I have cut 0.0.36 release way too fast, I had not even ran Quibble before cutting it. Eventually a couple faults happened which I caught too late forcing me to hotfix two follow up releases:

  • 0.0.37 to fix lack of quibble/mediawiki/local_settings.php files in the installed Quibble
  • 0.0.38 for $wgServer mismatching MW_SERVER - T235023

When sending a patch to Quibble repository, we should have a test / CI job that actually runs Quibble against mediawiki/core and run all tests. That will help catch up failures.

Details

Related Gerrit Patches:
integration/quibble : masterreleasing: do run quibble before tagging

Event Timeline

hashar created this task.Oct 9 2019, 5:55 PM

Change 541862 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/quibble@master] releasing: do run quibble before tagging

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

hashar triaged this task as Medium priority.Oct 9 2019, 5:58 PM
hashar moved this task from Backlog to Enhancement on the Quibble board.
awight added a subscriber: awight.Oct 10 2019, 11:19 AM

Change 541862 merged by jenkins-bot:
[integration/quibble@master] releasing: do run quibble before tagging

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

I thought I could reuse the releng/quibble-stretch-php72 container but it lacks pip to do the installation, though it has easy_install through setuptools. Maybe that is sufficient to install Quibble from a local clone/fetch.

awight added a comment.Tue, Dec 3, 6:33 AM

I thought I could reuse the releng/quibble-stretch-php72 container but it lacks pip to do the installation, though it has easy_install through setuptools. Maybe that is sufficient to install Quibble from a local clone/fetch.

In theory, it seems possible. For example, even as user nobody I'm able to do the following in that container:

HOME=/tmp python3 /quibble/setup.py install --user
HOME=/tmp easy_install-3.5 --user `cat /quibble/test-requirements.txt`

The setup.cfg wrapper around the main requirements makes it more challenging, I'm not sure if setup.py already includes a mechanism to extract this list and install. Anyway, doing it manually seems fine for now:

HOME=/tmp easy_install-3.5 --user extras six PyYAML GitPython
python3 -m quibble.cmd

Of course, this is all much simpler from a Dockerfile based on the PHP CI image, since we'll have root privileges.