Page MenuHomePhabricator

Wikibase repository extension breaks MediaWiki installer
Closed, ResolvedPublic

Description

Author: sebastian.brueckner

Description:
After installing the Wikibase extensions via composer (require wikibase/wikibase: *), the MediaWiki installer is broken. Apparently, the Wikibase classes expect the local config to exist even during the installer (where it might not exist yet - as it does in my case).
This is the backtrace:

[dabefbdf] /repo/mw-config/index.php?page=Language Exception from line 93 of /var/www/repo/extensions/Wikibase/repo/Wikibase.hooks.php: Wikibase: Incomplete configuration: $wgWBRepoSettings["entityNamespaces"] has to be set to an array mapping content model IDs to namespace IDs. See ExampleSettings.php for details and examples.

Backtrace:

#0 [internal function]: Wikibase\RepoHooks::onSetupAfterCache()
#1 /var/www/repo/includes/Hooks.php(206): call_user_func_array(string, array)
#2 /var/www/repo/includes/GlobalFunctions.php(4009): Hooks::run(string, array, NULL)
#3 /var/www/repo/includes/Setup.php(527): wfRunHooks(string)
#4 /var/www/repo/includes/WebStart.php(156): require_once(string)
#5 /var/www/repo/mw-config/index.php(29): require(string)
#6 {main}


Version: master
Severity: major

Details

Reference
bz63367

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:04 AM
bzimport set Reference to bz63367.
bzimport added a subscriber: Unknown Object (MLST).

You cannot include the app without specifying config first.

sebastian.brueckner wrote:

But this is exactly what happens when you install Wikibase via composer (since composer's autoloading automatically includes Wikibase classes). This essentially breaks the installer's functionality of initializing database tables for extensions (like it used to be with Wikibase before composer-based installs).

This means you now have to install MediaWiki w/o Wikibase, create a config file, install Wikibase, add Wikibase config and then run maintenance/update.php since the installer is now not run anymore instead of letting the installer do the work.

But this is exactly what happens when you install Wikibase via composer (since composer's autoloading automatically includes Wikibase classes).

The reason it breaks has nothing to do with composer whatsoever as far as I can tell. It breaks because you cannot include our entry point without including config first. This was the case before we used composer as well.

Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
Lydia_Pintscher removed a subscriber: Unknown Object (MLST).
JanZerebecki claimed this task.
JanZerebecki subscribed.

Part of this was fixed during T100813. As with most other extensions one may still not include/load/register Wikibase before Mediawiki installation is done. Making the extension work without configuration is T97012.