Extension:ExtensionDistributor

MediaWiki extensions manual
ExtensionDistributor
Release status: stable
Implementation Special page
Description Enables the distribution of extensions from www.mediawiki.org
Author(s) Tim Starling, Sam Reed, Chad Horohoe
Latest version continuous updates
Compatibility policy Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.26+
Database changes No
License GNU General Public License 2.0 or later
Download
  • $wgExtDistDefaultSnapshot
  • $wgExtDistCandidateSnapshot
  • $wgExtDistPopularSkinList
  • $wgExtDistListFile
  • $wgExtDistAPIConfig
  • $wgExtDistSnapshotRefs
  • $wgExtDistGraphiteRenderApi
  • $wgExtDistPopularExtList
Quarterly downloads 33 (Ranked 96th)
Translate the ExtensionDistributor extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

The ExtensionDistributor extension generates .tar.gz snapshots of extensions in the git repository and distributes them. It is intended for use on www.mediawiki.org. See Special:ExtensionDistributor to see how it works.

Installation

edit
  • Download and move the extracted ExtensionDistributor folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtensionDistributor
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'ExtensionDistributor' );
    
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration settings:

/**
 * Configuration for the API client to use
 *
 * Must have a 'class' key, can either be
 * "GithubExtDistProvider" or "GerritExtDistProvider"
 *
 * Common parameters:
 *  'apiUrl' - API url to use with $EXT and $REF variables
 *  'tarballUrl' - API url where tarballs are located
 *  'tarballName' - Expected filename of tarballs
 *  'proxy' - Proxy to use (optional)
 *
 * Github specific parameters:
 *  'token' - An OAuth token for authenticating requests
 *
 * Gerrit specific parameters:
 *  'repoListUrl' - API url to fetch a list of repositories
 *
 * @var array
 */
$wgExtDistAPIConfig = false;

/**
 * File to fetch list of extensions from, with one extension per line
 * Only needed for the Github provider
 * Example url: https://gerrit.wikimedia.org/mediawiki-extensions.txt
 */
$wgExtDistListFile = false;

/**
 * Supported branches/tags, master is the default (and shouldn't be removed)
 */
$wgExtDistSnapshotRefs = array(
	'master',
);

/**
 * Snapshot branch/tag to default to
 */
$wgExtDistDefaultSnapshot = 'master';

You'll need to set up some configuration for the extension to work. For Wikimedia's Gerrit instance, it would look like:

$wgExtDistAPIConfig = array(
	'class' => \MediaWiki\Extension\ExtensionDistributor\Providers\GerritExtDistProvider::class,
	'apiUrl' => 'https://gerrit.wikimedia.org/r/projects/mediawiki%2F$TYPE%2F$EXT/branches',
	'tarballUrl' => 'https://extdist.wmflabs.org/dist/$TYPE/$EXT-$REF-$SHA.tar.gz',
	'tarballName' => '$EXT-$REF-$SHA.tar.gz',
	'repoListUrl' => 'https://gerrit.wikimedia.org/r/projects/?p=mediawiki/$TYPE/',
);

$wgExtDistSnapshotRefs = array(
	'master',
	'REL1_25',
);

The Gerrit provider requires an independent tarball generator, the source code for the one running at extdist.wmflabs.org can be found: https://github.com/wikimedia/labs-tools-extdist