aboutsummaryrefslogtreecommitdiffstats
path: root/maintenance/installPreConfigured.php
Commit message (Collapse)AuthorAgeFilesLines
* installer: Allow addWiki.php to add extra tasksTim Starling2024-12-051-0/+17
| | | | | | | | | | | | | | | | * Add InstallPreConfigured::getExtraTaskSpecs(), which addWiki.php can override to add WMF-specific tasks. * Allow tasks to declare themselves as "post-install", so that addWiki.php's newprojects mailing list notification happens after Cognate's installer task. Extension tasks are registered after tasks from getExtraTasks() so it's not enough to rely on registration order. All tasks get an implicit "install" alias, which post-install tasks implicitly depend on. * Allow callback tasks to customise the description string. * Move the "Installation complete" message from addWiki.php to core. Bug: T352113 Change-Id: I99368513b3f33c49f690575679450c10b1829105
* Fix various installPreConfigured bugsTim Starling2024-11-281-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | * With manualRecache=true, installer messages were not available after service restoration, because they were fetched from the existing CDB file which was generated without the customised $wgMessagesDirs. So enable installer messages unconditionally. This will add about 1.1% to the production l10n cache size. * Use Maintenance::DB_ADMIN, moving a line of code from addWiki.php that looks useful. * Show task descriptions with installPreConfigured --show-tasks, primarily to debug the l10n issue, but maybe it is useful to show task names in humanglish. * In --show-tasks, return false, so that the wrapper script doesn't continue. * Disable storage prior to showing the task list, otherwise message fetching fails. * At the service restoration step, wait for replication. Most things can cope with out-of-date data, but when the CREATE DATABASE hasn't been replicated yet, things break. * If the mainpage step fails with an exception, show the exception backtrace. Bug: T352113 Change-Id: I6fed327fe514b12db5a65bdad41d9cb256468810
* installer: Allow subclasses of InstallPreConfiguredTim Starling2024-11-221-1/+32
| | | | | | | | | Mark InstallPreConfigured as stable to extend, and add an overridable method allowing the subclass to specify installer options. Cache the task context and provide a protected accessor. Bug: T352113 Change-Id: I2819c76f1d3cf7983683416a76dbc8be9be2abfc
* installer: Allow extensions to register tasksTim Starling2024-11-151-17/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Committing to a stable interface requires a few rough edges to be filed off. * Add an extension attribute "InstallerTasks". * In ExtensionsProvider, load the attribute. * In TaskRunner, when the attribute is available, add the new tasks to the current TaskList and restart execution, skipping tasks that were already completed. * Add Task::getDescription(), so that subclasses can override the way their progress messages are localised. * Call the task listener callbacks with the Task object, instead of inheriting the old name-only interface, so that listeners can get the new kind of description. * The values of the PROFILE_INSTALLER and PROFILE_ADD_WIKI constants are exposed in extension.json, so use a proper name instead of a short simple name. * Remove the default from Task::getConnection. The default in ITaskContext is a hack to allow DatabaseInstaller to implement ITaskContext without breaking b/c, but that rationale does not apply to Task. Also: * Provide a list of created usernames, for CentralAuth's convenience. Bug: T352113 Change-Id: I014a7accbedf66875115d188b38046c845482dc8
* installer: Add installPreConfigured.phpTim Starling2024-11-151-0/+183
Add a CLI installer variant which uses the existing LocalSettings.php for its configuration source. It runs all installer steps except for mailing list subscription and sysop creation. I used the name installPreConfigured.php instead of addWiki.php to make it easier for users to discover. But AddWiki is used internally as a prefix, because it's shorter. * Broaden the type of ConnectionStatus::getDB() so that it can return a DBConnRef from the unmodified LBFactory. * Split Installer::resetMediaWikiServices(), providing a public static method disableServices(), for sharing with installPreConfigured. * In TaskFactory, have tasks optionally declare a "profile" under which they will be registered, so that tasks can run under either Installer or installPreConfigured or both. Bug: T352113 Change-Id: I057b0260421567e213bc0a31c55f7c7b6a667d06