Doonlaid fae Git
Git is distreebutit version control saffware that permits uisers tae doonlaid the fair latest version o ae branch, wioot needin tae wait fer somebodie tae get roond tae packagin it. MediaWiki will release faster, n it'll be easier fer ye tae update yer instawation, row back aen upgrade, or [$bugzilla haun patches in]. (O coorse aye mynd that offeecial stable releases ar less riskie.) It allows you to download the very latest version of the source code, with all the branches and tagged releases at your disposal.
You should download from Git if you are a developer and want to submit patches.
If you do not want to develop but only install MediaWiki and extensions, then download stable tarball releases instead.
See Git fer mai details, parteecularlie fer makin contreebutions. Ablo ar some quick directions fer ae few commyn tasks.
Prerequisites
Ye maun hae Git instawed afore ye can uise it. Thaur's monie differant waas tae get Git, dependin oan yer operatin system. Fer soorce n offeecial binaries, see [$link git-scm.com]. Fer alternateeve waas tae instaw Git, uise yer faverite rake engine tae fynd instructions fer yer operatin system. Follow Gerrit/Tutorial#Set up Git, or use your favorite search engine.
It is recommended that you have Composer installed to download and install third party libraries, but not required.
Usin Git tae doonlaid MediaWiki
Doonlaid
Ye can nou doonlaid MediaWiki core (phase3 on SVN) uisin Git, aes weel aes onie extension nou instawed oan the Wikimedia Foondation server cluster. Bi July 2013, aw extensions will either be available uisin Git or muived til alternate version control hosts.
The first step is tae clone the MediaWiki repositrie. This micht tak ae while.
Download for development
The latest deveelopmant version o MediaWiki is trackt in the 'maister' braunch. This is whit's locallie checkt oot bi defaut whan ye first clone the MediaWiki repositrie. Gif ye'v switchy til anither braunch bit wid like tae switch back til uisin bleedin-edge MediaWiki, dae:
Gif ye'v Deveeloper access (n this is easie tae request), then instead of cloning anonymously with https you should clone with your ssh <USERNAME> so that you can submit changes for review:
Then, in a terminal window, enter the following command to clone the repository:
git clone https://gerrit.wikimedia.org/r/mediawiki/core.git mediawiki
This clones the entire MediaWiki core repository, synced to the master branch, into a sub-directory named mediawiki
.
To install into a different directory, change that in the command line (for more info refer to these docs).
Once the repository is cloned, you can switch to different branches or tags.
The development branch, master
, is the cutting-edge, developer version of MediaWiki; you should not use master code for production under any circumstances as it is not considered stable.
Download a stable branch
This clones the entire MediaWiki core repositrie. The defaut 'branch' will be the cuttin-edge, deveeloper version o MediaWiki. Yince the repositrie is cloned, ye can easilie switch til differant branches or tags (see ablo), incluidin thae trackin stable versions o MediaWiki.
git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_42 mediawiki
If you have a slow internet connection and want to reduce the number of revisions that are cloned, add --depth=1
to the git clone
command.
MediaWiki tags (stable version)
Alternateevelie, speceefic stable versions o MediaWiki ar trackt uisin 'tags'. Thir ar analogis til the taurbaw releases. Currently, these are 1.42.3 (stable), 1.39.10 (LTS) and 1.39.10 (legacy LTS).
You can see all available tags with:
git tag -l | sort -V
Tae uise ae speceefeec tag:
git checkout 1.42.3
Update the Git submodules
The branches and tags have a bunch of Git submodules in them, for commonly-used extensions and skins and for the vendor/
directory.
The master
branch does not have these.
To update the submodules, run:
cd mediawiki
git submodule update --init --recursive
Fetch external libraries
MediaWiki uses Composer to manage external PHP libraries, all of which end up in the vendor/
directory in your MediaWiki directory.
To install these needed libraries, you have a choice:
- Download and install the composer PHAR, optionally rename the composer.phar file as instructed for your OS, and then run
composer update --no-dev
from your MediaWiki directory. This is the recommended approach.
- If the default PHP CLI version does not match the web server's PHP version, specify it with e.g.
php7.4 composer.phar update --no-dev
.
- If the default PHP CLI version does not match the web server's PHP version, specify it with e.g.
- Or, if you don't want to use Composer or if you want to use the exact same set of vendor libraries as used on the WMF production cluster, you can instead create a
vendor/
directory inside the core folder of your MediaWiki installation:
git clone https://gerrit.wikimedia.org/r/mediawiki/vendor.git
- Note that if any of your extensions have their own Composer requirements, then you cannot use this option.
Prior to MediaWiki 1.25, external libraries were kept in the core repository, and no package manager was required.
Keepin up til date
Gif ye'r uisin ae parteecular braunch or the deveelopmant version o MediaWiki, pickin up the latest chynges is reallie easie. Chynge intil yer MediaWiki clone directerie n issue the pul commaunn:
git pull
Aw o the latest chynges fer the braunch that ye'r uisin will be applied.
The new version of core may require newer versions of extensions and skins, so you must go into each extension and skin directory and update it with a command like git pull --recurse-submodules
.
You also need to update vendor/
with any newer versions of required libraries.
This often means running the following Composer command, but see #Fetch external libraries above for more details:
composer update --no-dev
Foreby, efter updatin/upgradin ye shid rin the MediaWiki update.php
fae the commaunn line:
php maintenance/run.php update
If you use MediaWiki-Vagrant , it offers a single command, vagrant git-update
, that performs all these steps.
Switchin til ae differant version
Ilka o oor versions ar trackt aes braunches or tags. In order tae switch til yin o thir, aw that ye hae tae dae is 'checkoot' the parteecular braunch or tag that ye want fae wiin yer MediaWiki clone directerie:
git checkout <branch_name>
or
git checkout <tag_name>
The chynges will be applied autæmateeclie n ye'll be aw set tae gae.
Uisin Git tae doonlaid MediaWiki extensions
Doonlaid
- <EXT> shid be replaced wi the name o the extension that ye want tae doonlaid, wiout spaces. Fer Extension:TitleKey , it wid be TitleKey. (case sensiteeve!)
Doonlaid n clone aen extension fae Git:
With your developer account, use these commands to get the master branch:
cd /path/to/extensions
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/<EXT>
To clone and checkout a stable release branch instead, use these commands:
cd /path/to/extensions
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/<EXT> --branch REL1_42
You can view extension source code in Gerrit's gitiles application, and at the URL:
https://gerrit.wikimedia.org/g/mediawiki/extensions/<EXT>/+/HEAD
Doonlaid aw extensions
Gif ye prefer tae hae aw MediaWiki extensions that ar at gerrit.wikimedia.org checkt oot til yer machine, dae the follaein:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions
Or, to checkout stable releases branch instead, use this command:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions --branch REL1_42
After running the git clone
command, continue with these commands:
cd /path/to/extensions
git submodule update --init --recursive
Tae update the extensions til thair latest versions, jist dae this:
cd /path/to/extensions
git pull
git submodule update --init --recursive
To change to a different branch, such as after a new release:
git submodule foreach 'git checkout -b REL1_41 origin/REL1_41 || :'
Remember that you should only use versions of extensions from the same release as that version of MediaWiki and each other.
To track the master branch:
git submodule foreach 'git checkout -b origin/master || :'
Please note that you should not use master code for production under any circumstances as it is not considered stable.
If you only need a read-only checkout (for instance to grep or analyse all MediaWiki code), you can use the shared MediaWiki checkout on Labs, without downloading anything on your machines.
Remove an extension
- Remove the "
require_once …
" or "wfLoadExtension( … )
" fromLocalSettings.php
- Remove any line referencing the extension in
composer.local.json
(usually in the "extra → merge-plugin → include" section)
- Remove the extension's directory in
install-dir/extensions/
Using Git to download MediaWiki skins
MediaWiki 1.24 and later don't include skins in the Git download.
Follow the exact same procedure as for extensions (described in the previous section), but using skins
rather than extensions
in all URLs and paths.
Detailed installation instructions are available on each skin's page here on MediaWiki.org, for example see Skin:Vector#Installation. Instructions for all other skins are analogous.
See ava
Appendix
The Revision as of 14:26, 21 March 2019 changed the standard of linking to gerrit.wikimedia.org:
from:
- gerrit.wikimedia.org/r/p/mediawiki
to:
- gerrit.wikimedia.org/r/mediawiki