Topic on Talk:Requests for comment/Deprecation policy

Deprecations and extension backwards compatibility

7
Nikerabbit (talkcontribs)

I would suggest following additions:

  • There must be a documented way for extensions to remain compatible with past versions of MediaWiki without using deprecated methods. Usually this is something like if-method-exists-then-use-it-else-use-deprecated-method but can be more complicated.
  • When updating bundled or non-bundled extensions, the developer should take the compatibility policy of the extension into account by using the above approach if necessary instead of directly converting to the new way.
Tgr (WMF) (talkcontribs)

Are compatibility policies documented somewhere? (I assume you refer to "extension branch X is compatible with MediaWiki branch X and no guarantees about anything else" vs. "extension master is compatible with all MediaWiki versions going back to the one noted in the infobox".) There does not seem to be any way to find out which extension uses which policy; at a minimum this should be an infobox parameter if we want it to be taken seriously.

Nikerabbit (talkcontribs)

Not really, but they should be. But where should these be placed so that it is obvious and easy to check for people? Maybe in the repository itself, as you need to access it to make a patch?

Anomie (talkcontribs)

I typically look at the extension's page, e.g. Extension:Flow says "Flow master is only supported with core's master; otherwise, use matching branches". It would probably be nice to make this an infobox parameter to make it easier to specify.

Legoktm (talkcontribs)

Compatibility with MediaWiki versions can be set using extension.json's "requires" property to indicate the minimum MW version that is still supported.

Tgr (WMF) (talkcontribs)

That still doesn't tell me whether I should leave old code in a BC branch or update the requires property when fixing a deprecation.

Tgr (WMF) (talkcontribs)
Reply to "Deprecations and extension backwards compatibility"