Page MenuHomePhabricator

Make "write both, read new" the default MCR migration stage for fresh MediaWiki installs / for CI
Closed, ResolvedPublic

Description

MediaWiki 1.32 should support MCR, but still remain backwards compatible. This allows wiki instances to back out of MCR without losing data, and preserves compatibility with any extensions or tools that make direct use of the old schema - specifically, of rev_text_id, rev_content_model, and rev_content_format.

The new default should be:
$wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW;

With this setting enabled, update.php should convert to the new schema, if that did not previously happen. If update.php detects $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD; it should also perform the conversion, if still needed, and issue a warning that $wgMultiContentRevisionSchemaMigrationStage should be changed to ensure forward-compatibility with the next release. If update.php encounters $wgMultiContentRevisionSchemaMigrationStage = SCHEMA_COMPAT_OLD, it should warn that the setting should be changed and update.php should be re-run after that change.

NOTE: we'll want to have this enabled on the live systems for a while before releasing it as the default, see T198308. But we'll want to have this as the default on master / for CI before enabling it on the live systems.
NOTE: $wgMultiContentRevisionSchemaMigrationStage will only have a pre-existing value on wikis that were installed off a snapshot or master, since $wgMultiContentRevisionSchemaMigrationStage did not exist in 1.31.
NOTE: This enables the usage of extra slots. If this new ability is used, and the wiki is then set to only reading the legacy schema, access to any content in the extra slots will be lost.

Related Objects

Event Timeline

daniel triaged this task as Normal priority.Jul 1 2018, 12:39 PM
daniel created this task.
daniel updated the task description. (Show Details)Jul 2 2018, 3:54 PM
daniel updated the task description. (Show Details)

Dropping off SDC board. Also not MCR directly a deployment task, though it's a soft blocker for enabling "write both, read new" on the live systems: We want this mode enabled in CI before we enabled it on the live systems. To have it enabled in CI, it needs to be the default for new installs. We'd want to have "write both, read new" running on the live system for a while before we make it the default for the MW-1.32 release.

daniel renamed this task from Make "write both, read new" the default MCR migration stage for fresh MediaWiki installs to Make "write both, read new" the default MCR migration stage for fresh MediaWiki installs / for CI.Jul 4 2018, 12:18 PM
daniel updated the task description. (Show Details)
daniel updated the task description. (Show Details)

Change 443831 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] [MCR] [DNM] Set MCR migration stage to write-both/read-new.

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

Aklapper changed the edit policy from "Custom Policy" to "All Users".Jul 9 2018, 7:40 AM

Change 454582 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Reset cached name tables between test runs.

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

Change 454584 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Avoid joins when reading MCR revisions.

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

Change 454582 merged by jenkins-bot:
[mediawiki/core@master] Don't reset name tables between test runs.

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

Change 454584 merged by jenkins-bot:
[mediawiki/core@master] Avoid joins when reading MCR revisions.

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

Change 457513 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Consolidate tests for getQueryInfo() and related methods.

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

Change 458785 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Allow dumps to function with MCR in read-new mode.

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

Change 458785 merged by jenkins-bot:
[mediawiki/core@master] Allow dumps to function with MCR in read-new mode.

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

Change 457513 merged by jenkins-bot:
[mediawiki/core@master] Consolidate tests for getQueryInfo() and related methods.

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

Change 443831 merged by jenkins-bot:
[mediawiki/core@master] [MCR] Set MCR migration stage to write-both/read-new.

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

daniel closed this task as Resolved.Sep 11 2018, 2:26 PM
daniel moved this task from Needs Review to Done on the Multi-Content-Revisions (Deployment) board.

Change 459830 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] [DNM] Set MCR migration stage to write-both/read-new AGAIN.

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

Change 459830 merged by jenkins-bot:
[mediawiki/core@master] Set MCR migration stage to write-both/read-new AGAIN.

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

daniel closed this task as Resolved.Sep 12 2018, 6:59 PM
daniel moved this task from In Progress to Done on the Multi-Content-Revisions (Deployment) board.

let's hope it stays closed this time :)