Extension:ExtensionDistributor

From Linux Web Expert

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
Quarterly downloads Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Public wikis using Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
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

  • <translate> [[<tvar name=2>Special:ExtensionDistributor/ExtensionDistributor</tvar>|Download]] and move the extracted <tvar name=name>ExtensionDistributor</tvar> folder to your <tvar name=ext>extensions/</tvar> directory.</translate>
    <translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ExtensionDistributor
  • <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
    wfLoadExtension( 'ExtensionDistributor' );
    
  • File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>

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