Talk:Request for Comment/Hybrid extension management
Improvements of ExtensionRegistry
Let's assume "ExtendedVisualEditor" extension has a dependency to "VisualEditor" in version "1.31", but "VisualEditor" is not enabled or enabled but in version "1.35". Current situation is that putting
wfLoadExtension( 'ExtendedVisualEditor' );
to LocalSettings.php
will result in an uncatchable Exception
, which will bring the wiki down.
Rather than this, MediaWiki ExtensionRegistry should just "load" but not "enable" it. It could then be listed e.g. on "Special:Version" as "disabled". The actual way of how to implement this still has to be discussed.
Notes about Composer as a build tool
- BlueSpice wants real version constraints instead of dev-REL* (later!)
- Versioning of MW Extensions instead of relying on release branch (later!)
Further notes
- To discuss: Drupal as an example of how Composer was adopted by a project as "module (=extension) management tool" (later!)
Looks good to me
As someone that has been using Composer in several extensions for many years, this proposal looks good to me. --Jeroendedauw (talk) 12:48, 3 April 2020 (EDT)
Actually I do see a problem with relying purely on the MW version constraint in extension.json/skin.json.
Without the install time check, Composer will happily pull in versions of the extension incompatible with your MediaWiki version. For instance if you run MW 1.31 and the latest version of the extension requires MW 1.34. With the install time check, Composer will get you the most recent version of the extension that works with MW 1.31. Without you'll get the version that requires MW 1.34. Which you'll find out when you try to enable it. This way the user is forced to manually figure out the compatibility constraints rather than rely on Composer. It also reduces the utility of the enable time check, since the user already had to take care of it themselves anyway. --Jeroendedauw (talk) 14:35, 5 April 2020 (EDT)