Page MenuHomePhabricator

Test schema update from old versions to MCR-only schema
Closed, ResolvedPublic

Description

The patch that removes compatibility code for the pre-MCR schema needs to be tested for issues with the updater. Updates from different versions of MediaWiki need to still work after we remove the compat layer. This tests the assumption that all code that is needed to convert from the old schema to the new is still present in the migration scripts.

The basic procedure for testing is:

  • Switch to the release branch of the old version to test
  • Configure the wiki to match the setup to test
  • Edit the main page, so there is at least one old revision
  • Create another page with at least two revisions, then delete it.
  • Check out the change to test: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/552339
  • Run maintenance/update.php
  • Assert that no errors were reported during the update
  • Assert that the page is still readable
  • Assert that the content of old revisions can still be read
  • Assert that the content of deleted revisions can still be read
  • Assert that pages can still be edited
  • Assert that pages can successfully be undeleted

This should be checked for at least the following versions and setups:

  • MW 1.31 installed from scratch (last LTS, pre-MCR). [perhaps make a db dump after the installation is complete, so it's easy to go back here] / upgraded to patched master
  • MW 1.32 vanilla, installed from scratch / upgraded to patched master
  • MW 1.33 vanilla, installed from scratch / upgraded to patched master
  • MW 1.34 vanilla, installed from scratch / upgraded to patched master
  • MW 1.31 installed from scratch / upgraded to 1.34 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_NEW set before the update / upgraded to patched master
  • MW 1.31 installed from scratch / upgraded to 1.34 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD set before the update / upgraded to patched master (cannot upgrade to MW 1.34 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD)
  • MW 1.31 vanilla, installed from scratch / upgraded to 1.32 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD before the update / upgraded to 1.34 with no value set for $wgMultiContentRevisionSchemaMigrationStage / upgraded to patched master (create/edit/edit/delete a test page at each stage)
  • MW 1.31 vanilla, installed from scratch / upgraded to 1.32 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD before the update / upgraded to 1.34 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_NEW before the update / upgraded to patched master (create/edit/edit/delete a test page at each stage)
  • MW 1.32 installed from scratch with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD before the update / upgraded to 1.34 with no value set for $wgMultiContentRevisionSchemaMigrationStage before the update / upgraded to patched master (create/edit/edit/delete a test page at each stage)
  • MW 1.32 installed from scratch with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD before the update / upgraded to 1.34 with $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_NEW before the update / upgraded to patched master (create/edit/edit/delete a test page at each stage)

When installing from scratch, make sure you target a database name that does not yet exist!

Related Objects

StatusSubtypeAssignedTask
Declineddchen
OpenNone
OpenNone
DuplicateNone
OpenNone
OpenNone
OpenNone
StalledNone
DuplicateNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedppelberg
ResolvedKrinkle
OpenNone
OpenNone
OpenNone
OpenNone
StalledNone
OpenNone
OpenNone
StalledNone
OpenNone
Resolveddaniel
ResolvedCCicalese_WMF

Event Timeline

daniel created this task.Jan 14 2020, 4:12 PM
daniel updated the task description. (Show Details)Jan 14 2020, 4:16 PM
daniel updated the task description. (Show Details)Jan 14 2020, 4:22 PM
CCicalese_WMF added a subscriber: WDoranWMF.
CCicalese_WMF updated the task description. (Show Details)

@daniel Testing of the scenarios above was successful except for the one test that was impossible. I created 4 new alternative tests for that one. Ready to resolve?

Anomie added a subscriber: Anomie.Feb 24 2020, 7:22 PM
daniel closed this task as Resolved.Feb 24 2020, 8:19 PM

@CCicalese_WMF excellent, thank you!

Aklapper removed a subscriber: Anomie.Fri, Oct 16, 5:38 PM