Last modified: 2014-04-09 17:35:21 UTC
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}
You cannot include the app without specifying config first.
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.