A few more updates about the RfC after the IRC meeting. In case you missed it, the logs are at [1].
== Extension locations == We agreed that we should require extensions to all be in the same directory, but that directory should be configurable. By default it will point to $IP/extensions.
== Setting default configuration values == In my initial proposal I had something like: $wgEnabledExtensions[] = 'Math'; $wgMathSomeOption = 'bar'; $wgEnabledExtensions[] = 'SpamBlacklist'; My plan was when loading the extension.json file, MediaWiki would check if the config values are set, and if so, don't overwrite it with the defaults. However since we're using $GLOBALS as the configuration backend, this opens up a register_globals vulnerability.
What do people think of stopping caring about register_globals (while we still support 5.3) and being ok with isset($wgWhatever)? Chad was of the opinion that it's your own fault if you turn on register_globals. :P
A few other options were discussed in the meeting: wfEnableExtension( 'Math' ); $wgMathSomeOption = 'bar'; Where the function sets the default globals, and then the user overwrites them. This won't work for when we want to store configuration in the database since extensions to be loaded are no longer in an array.
Another one was something like: $wgEnabledExtensions += array( 'Math', 'SpamBlacklist' ); wfLoadExtensions(); // Loads all extensions and sets defaults // All config values after function call $wgMathSomeOption = 'bar'; I'm not a huge fan of this one since IMO MediaWiki should do the extension loading on its own, and not require the user to put a function call in their configuration.
== Schema == I've written a basic JSON schema for extension.json files and put it up at [2].
[1] https://www.mediawiki.org/wiki/Architecture_meetings/RFC_review_2014-05-30 [2] https://www.mediawiki.org/wiki/Requests_for_comment/Extension_registration/S...
-- Legoktm