Page MenuHomePhabricator

Create MCR test wiki on WM Cloud
Closed, ResolvedPublic

Description

We need a way to test MCR code before we merge it into core. Even if the patches we merge are not supposed to change behavior, we need a way to make sure that they really don't.

To this end, we need a MediaWiki instance on the WM cloud. It should:

  • run latest production branch of MediaWiki
  • have the essential extensions enabled (if not all)
  • pull in the latest version of a list of patches to try out, either automatically, or via a very simple trigger

Initially, the wiki is intended for manual testing and showcasing. However, it would be quite useful if we could also run selenium tests against it.

While initially this is intended to test that the new code doesn't change any behavior, the same instance sh-ould later be used to test the MIGRATION_WRITE_BOTH mode, and finally the MIGRATION_NEW mode.


Project: mcr-dev project

Test sites:

  • mcr-base.wmflabs.org (box: mcr-base.mcr-dev.eqiad.wmflabs) - plain Labs-Vagrant MediaWiki
  • mcr-full.wmflabs.org (box: mcr-full.mcr-dev.eqiad.wmflabs) - wiki with lots of extensions (roles: abusefilter, antispam, babel, cite, codeeditor, confirmedit, echo, eventlogging, flow, geodata, globalcssjs, globalusage, hhvm, mobilefrontend, newusermessage, templatesandbox, translate, visualeditor, warnings_as_errors, wikieditor, wikilove)
  • mcr-sdc.wmflabs.org (box: mcr-sdc.mcr-dev.eqiad.wmflabs) - SDC-like testing environment

Event Timeline

daniel triaged this task as Medium priority.Apr 16 2018, 5:14 PM
daniel created this task.

I requested a project for this to happen in in T194239

We now have both a quota increase request (T193185: Increase quota for wikidata-federation project) and a new project request (T194239: Request creation of mcr-dev VPS project) submitted with this goal as the parent. Are both actually needed? If only one is needed, which is the more useful?

@bd808 for SDC, we really want T194239. T193185 may come in handy as a short term solution. And the Wikidata team may want it anyway (or they may not).

The mcr-dev project has three machines now:

  • mcr-base.wmflabs.org (box: mcr-base.mcr-dev.eqiad.wmflabs) is a plain MediaWiki (via Labs-Vagrant), with 405015 and 434183 cherry-picked
  • mcr-full.wmflabs.org (box: mcr-full.mcr-dev.eqiad.wmflabs) is for testing lots of extensions (none set up yet, please suggest what should be used)
  • mcr-sdc.wmflabs.org (box: mcr-sdc.mcr-dev.eqiad.wmflabs) is an SDC-like testing environment (WIP, should include a commons-like wiki with Wikibase client repo WikibaseMediaInfo and a Wikidata-like wiki with Wikibase repo)

TODO:

  • agree on the list of extensions for mcr-full and install them
  • vagrant role for WikibaseMediaInfo
    • AIUI this will require Wikibase Repo to be installed on the dev and wikidata wikis but not any other one, which might require some refactoring of how Vagrant handles per-wiki config

@Tgr thank you for setting this up!

Rough plan, going forward:

  • test multi-content RevisionStore on mcr-full with (https://gerrit.wikimedia.org/r/c/416465) with MIGRATION_WRITE_BOTH
    • run all the selenium tests
  • merge multi-content RevisionStore, with MIGRATION_WRITE_BOTH. Do we need to hard code a check that forbids MIGRATION_NEW for now.
  • test multi-content RevisionStore on mcr-full (or another instance?!) with (https://gerrit.wikimedia.org/r/c/416465) with MIGRATION_NEW
    • run all the selenium tests
  • merge patch allowing MIGRATION_NEW in code, making it the default for new installations (patch TBD)

mcr-full.wmflabs.org is for testing lots of extensions (none set up yet, please suggest what should be used)

Draft here: https://etherpad.wikimedia.org/p/mcr-full

@Tgr since there are only so few selenium tests for core, and the changes that PageUpdater makes mostly impact when and how hook functions are called, I now think we should test it against mcr-full before merging it. I'll edit my previous comment accordingly.

mcr-full is broken currently due to T195959: Labs-Vagrant cannot reuse the same HTTP(S) port after vagrant reload and also some kind of error with the visualeditor and globalimageusage roles. I'll fix those and test.

tgr@mcr-full:/srv/mediawiki-vagrant$ vagrant roles list -e
Enabled roles:

abusefilter                eventlogging               newusermessage            
antispam                   flow                       templatesandbox           
babel                      geodata                    translate                 
cite                       globalcssjs                visualeditor              
codeeditor                 globalusage                warnings_as_errors        
confirmedit                hhvm                       wikieditor                
echo                       mobilefrontend             wikilove

All issues fixed, I think; at the very least, it provisions cleanly.

mcr-full works fine for manual testing but most of the selenium tests fail, probably due to some of the extensions interfering. I'm not sure how to track that down without visuals, and could not get that to work (T196646: Running selenium inside Vagrant with xvfb or X11 does not work).

Daniel has set up mcr-sdc and made a proper vagrant role for wikibasemediainfo.

Things that could be done (beyond manual testing):

I have created a branch called McrStorageLayerTest on mcr-full.wmflabs now. It has three changes on it:

This is also what we want to deploy to testwiki tomorrow.

This comment was removed by daniel.

Change 405015 had a related patch set uploaded (by Gergő Tisza; owner: Daniel Kinzler):
[mediawiki/core@master] [MCR] Factor PageUpdater out of WikiPage

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