This is a a lot earlier for most upgrade tasks, seeing as we just finished the 1.38 upgrade, but the scope of 1.39 is massive, and we have already begun some preparation for the upcoming upgrade. This task can be updated with more information, as more of the preparation for the upgrade is done.
Pre-upgrade requirements
- Revision table actor migration (T8982)
- CentralAuth hidden user migration
Upgrade process
Upgrade START date/time: 21/01/2023 - 22:00 UTC
(approx) upgrade END date/time: 22/01/2023 - 01:00 UTC
Maintenance leader: @Universal_Omega
Maintenance backup: @Paladox
Availability of SRE during upgrade
@Agent_Isai will be available from 22:00 to 04:00
@Reception123 will be available from
@Universal_Omega will be available from 22:00 to 01:00
@Paladox will be available from 22:00 to 01:00
@MacFan4000 will be available from (will try to be around at least a little bit, but will have family visiting so can’t guarantee anything)
Steps
- [prior to 22:00] Ensure backups done (done)
- Switch to REL1_39 branch
- Change sitenotice
- Run SQL/scripts
Process
mwtask141 will be done a couple hours prior to the maintenance window. Then it will be proxied to on a few wikis ensuring it works. This allows for more definitive production testing beforehand. Read-only will not be set for this upgrade, but it will still be recommended to the community not to edit. Once the maintenance window begins, the deploy-tool will be used to deploy to all servers. By doing mwtask141, and not setting read-only, and by first testing mwtask141 the goal here is to have a future stable upgrade process where there is absolutely no downtime. Basically hot-upgrades. Also by doing mwtask141, the actual upgrade should finish hours before the end of the maintenance window, providing a minimum maintenance window, and hopefully not many issues when the actual upgrade begins if mwtask141 is first tested. Something could still go wrong but my hope here is to have virtually no downtime during MediaWiki upgrades.
SQL/scripts that will need run:
mwscript extensions/SemanticMediaWiki/setupStore.php extension --extension=semanticmediawiki mwscript extensions/SemanticMediaWiki/setupStore.php extension --extension=semanticmediawiki deploy-mediawiki --files=../mediawiki/w/extensions/SemanticMediaWiki/.smw.json --servers=all mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-user_autocreate_serial.sql mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-ipblocks_restrictions-ir_ipb_id.sql mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-ipblocks-ipb_id.sql mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-user-user_editcount.sql mwscript updateRestrictions.php all mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-page-drop-page_restrictions.sql mwscript migrateLinksTable.php all --force --table=templatelinks mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-templatelinks-tl_title-nullable.sql mwscript sql.php all /srv/mediawiki/w/maintenance/archives/patch-templatelinks-drop-tl_title.sql mwscript sql.php loginwiki --wikidb=mhglobal /srv/mediawiki/w/extensions/CentralAuth/schema/mysql/patch-drop-gu_enabled.sql mwscript sql.php loginwiki --wikidb=mhglobal /srv/mediawiki/w/extensions/CentralAuth/schema/mysql/patch-drop-gu_hidden.sql mwscript sql.php loginwiki --wikidb=mhglobal /srv/mediawiki/w/extensions/CentralAuth/schema/mysql/patch-add-lu_attachment_method.sql mwscript sql.php loginwiki --wikidb=mhglobal /srv/mediawiki/w/extensions/CentralAuth/schema/mysql/db_patches/patch-global_user_autocreate_serial.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-drop-fpc_select.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedtemplates-ft_tmp_rev_id.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedpages-timestamp.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedpage_pending-timestamp.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedrevs-timestamps.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedrevs_statistics-timestamp.sql mwscript sql.php extension --extension=flaggedrevs /srv/mediawiki/w/extensions/FlaggedRevs/backend/schema/mysql/patch-flaggedpage_config-timestamp.sql mwscript sql.php extension --extension=discussiontools /srv/mediawiki/w/extensions/DiscussionTools/sql/mysql/discussiontools_persistent.sql mwscript sql.php extension --extension=wikibaseclient /srv/mediawiki/w/extensions/Wikibase/repo/sql/mysql/archives/patch-wb_changes-change_timestamp.sql mwscript sql.php extension --extension=wikibaserepository /srv/mediawiki/w/extensions/Wikibase/repo/sql/mysql/archives/patch-wb_changes-change_timestamp.sql mwscript sql.php all /srv/mediawiki/w/extensions/OAuth/schema/mysql/patch-oauth_accepted_consumer-timestamp.sql mwscript sql.php all /srv/mediawiki/w/extensions/OAuth/schema/mysql/patch-oauth_registered_consumer-timestamp.sql mwscript sql.php all /srv/mediawiki/w/extensions/CheckUser/schema/mysql/patch-cu_changes-cuc_timestamp.sql mwscript sql.php all /srv/mediawiki/w/extensions/CheckUser/schema/mysql/patch-cu_log-comment_table_for_reason.sql mwscript sql.php all /srv/mediawiki/w/extensions/CheckUser/schema/mysql/patch-cu_log-actor.sql mwscript sql.php all /srv/mediawiki/w/extensions/AntiSpoof/sql/mysql/patch-spoofuser-index-su_normname_idx.sql sudo -u www-data /usr/local/bin/foreachwikiindblist /home/universalomega/wikibaseclient.json /srv/mediawiki/w/extensions/Wikibase/client/maintenance/PopulateUnexpectedUnconnectedPagePageProp.php mwscript extensions/CheckUser/populateCulActor.php all mwscript extensions/CheckUser/populateCucActor.php all DROP TABLE revision_actor_temp;
SQL files for the following extensions have been moved and will need updated in config:
- AbuseFilter
- AntiSpoof
- CheckUser
- Echo
- FlaggedRevs
- GrowthExperiments
- OAuth
https://github.com/miraheze/mw-config/pull/5075
Other migrations
- templatelinks migration
- CheckUser actor migration
- CheckUser log actor migration
- Wikibase UnconnectedPagePageProp migration