This is a resource for Extension authors looking to support official older versions of MediaWiki 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.
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 hub.
Here is a table that attempts to paint a picture of what version branches are most used on public facing mediawikis:
Branch
|
%
|
Branched
|
Age
|
1.19.x
|
0.7%
|
since 2011-07-18
|
2 months ago
|
1.18.x
|
0.4%
|
2011-07-18
|
2 months ago
|
1.17.x
|
14.5%
|
2010-12-07
|
10 months ago
|
1.16.x
|
60.7%
|
2010-02-22
|
1 year 6 months ago
|
1.15.x
|
18.2%
|
2009-03-25
|
2 years 5 months ago
|
1.14.x
|
4.2%
|
2009-01-07
|
2 years 8 months ago
|
1.4.x
|
1.2%
|
2004-12-01
|
7 years 10 months ago
|
Run on 2011-09-23, sample size of 433 public, patrolled, active wikis. Please note that this does not take into account any intranet wikis (of which there are many and are often out of date), public wikis we've missed or login-only public wikis. It does not include large wiki farms (like wikia) as they tend to upgrade all their wikis at once and run the same software behind the scenes. Their number of wikis may be staggering, but they tend to only run one codebase each and don't often install new 3rd party extensions. It should only be used to give you a rough idea of installations out there.
Looking at the table data, we can see that supporting anything before 1.15 is not that important, the people on 1.4.x will likely never upgrade, but the rest of the world has. But we can see that any extension author really should be seriously considering supporting 1.16.x, it's what the majority of the people are running. 1.19 and 1.18 not being prevalent is not a surprise, they don't have releases yet (but some people can't wait!). Supporting 1.15.x seems like a decent idea looking at numbers alone, but with a release around the corner you can expect a lot of people to "move up one".
It's important to note that the dates used here to give you an idea of "how long ago" was when developers first started preparing the code for that release, not when it was actually released.
Information from s23.org stats. Query for how I got these numbers.
Setting up a sandbox
edit
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.
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.
MediaWiki Notes, Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.19alpha
|
trunk
|
notes
|
—
|
5.2.3+ stated
|
4.0+ stated
|
|
|
|
MediaWiki Notes, Release Notes
MediaWiki Notes, Release Notes
MediaWiki Notes, Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.16
|
branch
|
notes
|
2010-02-22
|
|
|
|
|
Upgrading Downgrading
|
1.16.5
|
tag
|
notes
|
2011-05-05
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.4
|
tag
|
notes
|
2011-04-14
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.3
|
tag
|
notes
|
2011-04-12
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.2
|
tag
|
notes
|
2011-02-01
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.1
|
tag
|
notes
|
2011-01-04
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.0
|
tag
|
notes
|
2010-07-28
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.0beta3
|
tag
|
notes
|
2010-05-28
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.0beta2
|
tag
|
notes
|
2010-04-07
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.16.0beta1
|
tag
|
notes
|
2010-03-13
|
5.1 stated, 5.2 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.15
|
branch
|
notes
|
2009-03-25
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
Downgrading
|
1.15.5
|
tag
|
notes
|
2010-07-28
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.4
|
tag
|
notes
|
2010-05-28
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.3
|
tag
|
notes
|
2010-04-07
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.2
|
tag
|
notes
|
2010-03-08
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.1
|
tag
|
notes
|
2009-07-14
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.0
|
tag
|
notes
|
2009-06-10
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.15.0rc1
|
tag
|
notes
|
2009-05-16
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.14
|
branch
|
notes
|
2009-01-07
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
Run newer
|
|
1.14.1
|
tag
|
notes
|
2009-07-14
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.14.0
|
tag
|
notes
|
2009-02-22
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.14.0rc1
|
tag
|
notes
|
2009-02-07
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.13
|
branch
|
notes
|
2008-07-24
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
Upgrading
|
1.13.5
|
tag
|
notes
|
2009-02-22
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.4
|
tag
|
notes
|
2009-02-07
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.3
|
tag
|
notes
|
2008-12-15
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.2
|
tag
|
notes
|
2008-10-02
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.1
|
tag
|
notes
|
2008-09-06
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.0
|
tag
|
notes
|
2009-07-20
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.0rc2
|
tag
|
notes
|
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.13.0rc1
|
tag
|
notes
|
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.12
|
branch
|
notes
|
2008-02-18
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
Downgrading
|
1.12.4
|
tag
|
notes
|
2009-02-07
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.12.3
|
tag
|
notes
|
2008-12-17
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.12.2
|
tag
|
notes
|
2008-12-15
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.12.1
|
tag
|
notes
|
2008-10-02
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.12.0
|
tag
|
notes
|
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.12.0rc1
|
tag
|
notes
|
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.11
|
branch
|
notes
|
2007-09-06
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.11.2
|
tag
|
notes
|
2008-03-02
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.11.1
|
tag
|
notes
|
2008-01-23
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.11.0
|
tag
|
notes
|
2007-09-10
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.11.0rc1
|
tag
|
notes
|
|
5 stated, 5.2 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.10
|
branch
|
notes
|
2007-05-01
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.4
|
tag
|
notes
|
2008-03-02
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.3
|
tag
|
notes
|
2008-01-23
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.2
|
tag
|
notes
|
2007-09-10
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.1
|
tag
|
notes
|
2007-07-13
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.0
|
tag
|
notes
|
2007-05-09
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.0rc2
|
tag
|
notes
|
2007-05-04
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.10.0rc1
|
tag
|
notes
|
2007-04-30
|
5 stated, 5.1 rec, no 5.0 x64, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.8
|
branch
|
notes
|
2006-10-11
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.5
|
tag
|
notes
|
2007-09-10
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.4
|
tag
|
notes
|
2007-02-20
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.3
|
tag
|
notes
|
2007-01-09
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.2
|
tag
|
notes
|
2006-10-13
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.1
|
tag
|
notes
|
2006-10-11
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.8.0
|
tag
|
notes
|
2006-10-10
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.7
|
branch
|
notes
|
2006-07-07
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.7.3
|
tag
|
notes
|
2007-02-20
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.7.2
|
tag
|
notes
|
2007-01-09
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.7.1
|
tag
|
notes
|
2006-07-08
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
1.7.0
|
tag
|
notes
|
2006-07-06
|
5 stated, 5.1 rec, no 4
|
4.0 stated, 4.1/5.0 tentative, no 3.23.x
|
|
|
|
Release Notes
Release Notes
Release Notes
Release Notes
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.2
|
branch
|
notes
|
2004-02-28
|
|
|
|
|
|
1.2.6
|
|
|
2004-05-24
|
|
|
|
|
|
1.2.5
|
|
|
2004-05-03
|
|
|
|
|
|
1.2.4
|
|
|
2004-04-13
|
|
|
|
|
|
1.2.3
|
|
|
2004-04-02
|
|
|
|
|
|
1.2.2
|
|
|
2004-03-28
|
|
|
|
|
|
1.2.1
|
|
|
2004-03-27
|
|
|
|
|
|
1.2.0
|
|
|
2004-03-24
|
|
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
1.1
|
branch
|
notes
|
2003-12-08
|
|
|
|
|
|
1.1
|
|
|
2003-12-08
|
|
|
|
|
|
Release Notes
Version
|
Repo
|
Notes
|
Date
|
PHP
|
MySQL
|
Sandboxes
|
RunHacks
|
Extension Changes
|
2003-11-18
|
|
notes
|
2003-11-18
|
|
|
|
|
|
2003-11-17
|
|
notes
|
2003-11-17
|
|
|
|
|
|
2003-11-07
|
|
notes
|
2003-11-07
|
|
|
|
|
|
2003-08-29
|
|
notes
|
2003-08-29
|
|
|
|
|
|
2002-06-25beta
|
tag
|
notes
|
2002-06-25
|
4.06+, 4.2.1
|
3.23+, 3.23.49
|
|
|
|
2002-07-11rc1
|
tag
|
notes
|
2002-06-25
|
4.06+, 4.2.1
|
3.23+, 3.23.49
|
|
|
|
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
edit
Updating from older to newer versions of MediaWiki occasionally ends up with problems relating to character encoding / collation settings on tables.