Manual:Extension support

Who this is for
This is a resource for Extension authors looking to support official older versions of MediaWiki older core releases. There are many administrators out there running older wiki's who for one reason or another have not upgraded their core. For the purpose of this article core refers to the MediaWiki version and not to extension code.

Why support
Some reasons why a wiki may be running an older core include:
 * Key extensions they use (3rd party or in-house) only work on specific cores.
 * They have made core code changes [ they don't want to/or can't ] reproduce on newer versions
 * Their workplace requires them to put all core software upgrades through a certification process that is costly
 * Installing a new core means re-testing all their extensions, and hoping they all have fixes to problems introduced. They may feel that they can only afford to install extensions at this time.

This is a sad common scenario in workplace/corporate wikis.

Depending on the amount of work required, you can extend the audience of your extension by making it compatible with older cores. This is especially true of extensions aiming at or catering to Enterprise_use_of_MediaWiki

What's out there
Here is a table that attempts to paint a picture of what version branches are most used on public facing mediawikis:

Information from s23.org stats. Query for how I got these numbers.

Setting up a sandbox
Because warnings and errors have changed over PHP versions, a good approach to setting up a sandbox to test your extension is to install multiple version of xampp/lampp that match core versions.

Version information
Here is a table that attempts to document the likely version of PHP/MySQL to use with which core version. It can be used to document common extension changes to support older cores.

It will also link to hacks you can use to resolve problems to get cores working on newer versions of PHP and MySQL to avoid XAMPP setups. Be aware that if you use a newer version of PHP, your extension may not work in older versions of PHP, even if it works in the older core.

1.19
MediaWiki Notes, Release Notes

1.18
MediaWiki Notes, Release Notes

1.17
MediaWiki Notes, Release Notes

1.16
MediaWiki Notes, Release Notes

1.15
Release Notes

1.14
Release Notes

1.13
Release Notes, SVN Notes

1.12
Release Notes, SVN Notes

1.11
Release Notes, SVN Notes

1.10
Release Notes, SVN Notes

1.9
Release Notes, SVN Notes

1.8
Release Notes, SVN Notes

1.7
Release Notes, SVN Notes

1.6
Release Notes, SVN Notes

1.5
Release Notes, SVN Notes

1.4
Release Notes

1.3
Release Notes, SVN Notes

1.2
Release Notes, SVN Notes

1.1
Release Notes, SVN Notes

Pre 1.1
Release Notes, individual notes linked using label bellow

PHP compatibility
Internal changes in PHP sometimes cause code that used to work to stop working on newer versions of PHP. New versions of MediaWiki tend to update to work around this, but if you have an old version, you may run into surprises!


 * reference errors, especially on PHP 5.3 and later
 * Usually these can be resolved by removing one or more '&'s from a function declaration -- you may have to alter the extension to match the calls made in core

Character set problems
Updating from older to newer versions of MediaWiki occasionally ends up with problems relating to character encoding / collation settings on tables.


 * how to resolve this?