Talk:Request for Comment/Hybrid extension management

From MWStake
Revision as of 11:54, 16 April 2020 by Mark Hershberger (talk | contribs) (: new section)
Jump to navigation Jump to search

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)

Moved to RFC on Phabricator

Recently there has been movement in MediaWiki to remove composer completely (RFC).

As a result, we are not able to iterate over this RFC here and I have moved it to an RFC for MW on phabricator.

Please comment and add any improvements there.