Jump to content

Recommended Revisions

From mediawiki.org

Recommended Revisions is a project to try to find a consensus-based listing of the ideal revision to use for any extension or skin, for different MediaWiki versions. Often, when deciding which extensions and skins to use with a specific wiki (or wiki farm, or MediaWiki package), the next most important decision is which exact version to use. The general advice is to use the revision associated with the Git branch for the MediaWiki version you are using, e.g. REL1_43. For certain extensions, it is recommended to use the latest released version, or simply the latest revision. However, it is hard to know what all the rules are, and for any particular extension or skin, the stated rule might not apply anyway.

Note that the "ideal" revision for any extension or skin is not one that is bug-free (since it is difficult or impossible to have truly bug-free software), and not even necessarily the revision that has the fewest bugs. Rather, it is the one that collectively MediaWiki users feel most confident about using. If some known bug is fixed in an extension, it does not necessarily mean that the recommended revision for that extension should jump to that newer one - since that bug fix, or any of the revisions immediately before it, could have introduced other bugs. So finding the ideal revision for a particular extension or skin will in some cases have to be the product of analysis and consensus.

History

[edit]

Recommended Revisions began as the set of extensions and skins (and their respective revisions) for the MediaWiki distribution Canasta.

  • In April 2024, Canasta switched to using YAML files to define its set of extensions and skins.
  • In September 2024, this "Recommended Revisions" page was created, holding the Canasta YAML settings for MediaWiki 1.39.
  • In May 2025, the Springboard extension was released, which uses Recommended Revisions; its release led to the addition of the "required extensions" and "Wikidata ID" parameters.
  • In June 2025, for its MediaWiki 1.43 version, Canasta in turn switched over to directly using this page for its extension and skin settings; this release led to the addition of the "inherits" and "remove" parameters.
  • In August 2025, the YAML files were moved from mediawiki.org to GitHub, as a result of a change to the mediawiki.org robot policy that prevented the data from always being downloadable.

Syntax

[edit]

Every listing is done via a YAML file, where the extension/skin names (minus spaces) are the subheaders, and various parameters are specified, most importantly repository, branch and commit. Here is the full set of allowed parameters:

File-wide parameters

[edit]
  • inherits - should be placed at the top of the file if used; specifies one or more URLs that this file "inherits" from, i.e. other YAML files that specify their own set of extensions and skins
  • extensions - holds the list of extensions defined for this file
  • skins - holds the list of skins defined for this file

Extension and skin-specific parameters

[edit]
  • repository - specifies the URL for the code repository to do a Git clone from. If not set, the default value is the expected location for that extension or skin in the Wikimedia Git repository, e.g. https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtensionName, or its mirror at https://github.com/wikimedia/mediawiki-extensions-ExtensionName.
  • branch - specifies the Git branch to use. If not set, then, if repository is set, the master branch will be used; and if neither is set, the version-specific branch (e.g., REL1_43) will be used.
  • commit - the hexadecimal string of the exact revision to download
  • Wikidata ID - the Wikidata Q ID of this extension or skin
  • additional steps - an array that can hold any of the following values:
    • composer update - Composer needs to be used to download one or more dependencies of this extension or skin, after it has been downloaded
    • database update - this extension or skin defines its own database table(s), and thus MediaWiki's update.php script needs to be called after it is downloaded
    • git submodule update - Git needs to be used (via the command git submodule update) to download one or more dependencies of this extension or skin, after it has been downloaded
  • persistent directories - an array that can hold one or more subdirectory names within this extension or skin's directory that should not be removed, or modified, if this extension or skin gets upgraded
  • required extensions - an array that can hold one or more extension names (using the same name specified in any such extension's header), indicating that the current extension or skin should not be downloaded unless those extension(s) are installed as well
  • bundled - if set to true, specifies that this extension or skin is bundled in with this version of MediaWiki, and thus may not need to be downloaded, depending on how core MediaWiki was downloaded
  • remove - if inherits was set, specifies that this extension or skin should not be used, regardless of whether it is included in the inherited file(s)
[edit]

For now, only relatively few MediaWiki versions are supported, mostly LTS (long-term support) versions, starting with MW 1.39. If someone wants to create a listing for another MediaWiki version, feel free. (Be warned, though, that it takes a lot of work!)

Usage

[edit]

Anyone is free (and encouraged) to use Recommended Revisions for their own MediaWiki distributions, or for setting up individual wikis.

Projects that use Recommended Revisions include:

Governance

[edit]

While these files were on mediawiki.org, they were completely open and editable by anyone. However, in August 2025 the files were moved to GitHub, at the repository https://github.com/CanastaWiki/RecommendedRevisions. This move was made because the mediawiki.org URLs were no longer easily downloadable, and not as an attempt to restrict editing, but it did have the effect of closing off editing to all but a few developers.

Anyone with a GitHub account who wants write access to this repository should please request it; and anyone is free to submit patches (i.e., pull requests) to any of the files. The desire is to keep this project open. That is especially true since presumably anyone using Recommended Revisions will be using a specific commit of a certain file (and possibly a non-main branch as well), so changes will not harm anyone in the short term.

It remains an open question how best to govern this set of extension and skin recommendations, though; possibly the solution will involve creating some sort of committee/organization for maintaining these lists.