Page MenuHomePhabricator

Most CentralAuth maintenance classes are not namespaced, causing issues with maintenance/run.php
Closed, ResolvedPublic

Description

Currently php maintenance/run.php CentralAuth:migratePass0 fails with Fatal error: Cannot declare class MigratePass0, because the name is already in use in […]/extensions/CentralAuth/maintenance/migratePass0.php on line 18.

This is due to CentralAuth's extension.json declaring "MediaWiki\\Extension\\CentralAuth\\Maintenance\\": "maintenance/" in AutoloadNamespaces. Thus calling php maintenance/run.php CentralAuth:migratePass0 will make MediaWiki try to autoload extensions/CentralAuth/maintenance/migratePass0.php looking for MediaWiki\Extension\CentralAuth\Maintenance\migratePass0 (which it doesn't contain). The subsequent loading of the same script in MaintenanceRunner::loadScriptFile will then error out as shown above.

Event Timeline

matmarex subscribed.

I suppose we should just namespace them.

Change #1066774 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/CentralAuth@master] Namespace remaining maintenance scripts

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

Change #1066774 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@master] Namespace remaining maintenance scripts

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