Download from Git/ku

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Download from Git and the translation is 1% complete.

Other languages:
Bahasa Indonesia • ‎Bahasa Melayu • ‎Deutsch • ‎English • ‎Esperanto • ‎Hawaiʻi • ‎Interlingue • ‎Lëtzebuergesch • ‎Napulitano • ‎Nederlands • ‎Scots • ‎Taqbaylit • ‎Tiếng Việt • ‎Türkçe • ‎aragonés • ‎asturianu • ‎català • ‎dansk • ‎español • ‎euskara • ‎français • ‎galego • ‎interlingua • ‎italiano • ‎kurdî • ‎lietuvių • ‎magyar • ‎norsk bokmål • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎slovenčina • ‎suomi • ‎svenska • ‎čeština • ‎Ελληνικά • ‎беларуская (тарашкевіца)‎ • ‎български • ‎русский • ‎татарча/tatarça • ‎українська • ‎հայերեն • ‎ייִדיש • ‎עברית • ‎ئۇيغۇرچە • ‎العربية • ‎تۆرکجه • ‎سنڌي • ‎فارسی • ‎پښتو • ‎नेपाली • ‎हिन्दी • ‎தமிழ் • ‎తెలుగు • ‎ไทย • ‎ქართული • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
Since MediaWiki 1.19beta2, 1.18.2, 1.17.3, MediaWiki core and extensions use Git for version control. For older versions, see Subversion

Git is distributed version control software that allows users to download the very latest version of a branch, without having to wait for someone to get around to packaging it. MediaWiki will release faster, and it'll be easier for you to update your installation, roll back an upgrade, or submit patches. (Of course always remember official stable releases are less risky.)

See Git for more details, particularly for making contributions. Below are some quick directions for a couple common tasks.

Prerequisites

You must have Git installed before you can use it. There are many different ways to acquire Git, depending on your operating system. For source and official binaries, check out git-scm.com. For alternative ways to install Git, use your favorite search engine to find instructions for your operating system.

It is recommended that you have Composer installed to download and install third party libraries, but not required.

Using Git to download MediaWiki

Download

You can download MediaWiki core using Git, as well as all extensions currently installed on the Wikimedia Foundation server cluster and many other extensions hosted on gerrit .

The first step is to clone the MediaWiki core repository. This will take a while.

In a terminal window, enter the following command:

git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git --branch REL1_31 mediawiki

This clones the entire MediaWiki core repository, initially pointed at release branch 1.31, into a sub-directory named mediawiki.

To install into different directory, change that in the command line (for more info refer to these docs). Once the repository is cloned, you can easily switch to different branches or tags (see below), including those tracking unstable versions of MediaWiki. 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.

If you want to reduce the number of revisions that are cloned, add --depth=1 to the above command.

The release branches have a bunch of Git submodules in them, for commonly-used extensions and skins (the master branch does not have these). To update the submodules, run:

cd mediawiki
git submodule update --init

Download for development

If you have a developer account (which is easy to request), then instead of cloning anonymously with https you should clone with your ssh <USERNAME> so that you can submit changes for review:

git clone ssh://<USERNAME>@gerrit.wikimedia.org:29418/mediawiki/core.git mediawiki

This clones the entire MediaWiki core repository, synced to the master branch, into a sub-directory named mediawiki.

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.
  • 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 git clone https://gerrit.wikimedia.org/r/p/mediawiki/vendor.git to create a vendor/ directory inside the core folder of your MediaWiki installation. Note that if any of your extensions have their own Composer requirements, then you can not use this option.

Prior to MediaWiki 1.25, external libraries were kept in the core repository, and no package manager was required.

MediaWiki tags (stable version)

Alternatively, specific stable versions of MediaWiki are tracked using 'tags'. These are analogous to the tarball releases. Currently, these are 1.31.1 (stable), 1.27.5 (LTS) and 1.30.1 (legacy).

You can see all available tags with:

git tag -l | sort -V

Using non GNU sort command, such as on Mac OS X, you have to rely on the good old separators:

git tag -l | sort -n -t. -k1 -k2 -k3

To use a specific tag, e.g. the latest stable release:

git checkout 1.31.1

Latest development version of MediaWiki

The latest development version of MediaWiki is tracked in the 'master' branch. This is what is locally checked out by default when you first clone the MediaWiki repository. If you have switched to another branch but would like to switch back to using bleeding-edge MediaWiki, do:

git checkout master

Keeping up to date

If you're using a particular branch or the development version ("master" branch) of MediaWiki, picking up the latest changes is relatively easy. Change into your MediaWiki clone directory and issue this command:

git pull

All of the latest changes for the branch you are using 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

After updating/upgrading the code and required libraries you should run the MediaWiki update.php command-line script to update database tables as needed:

php maintenance/update.php

If you use MediaWiki-Vagrant, it offers a single command, vagrant git-update, that performs all these steps.

Switching to a different version

Switching to a different version of MediaWiki is far simpler with Git than with SVN. Each of our versions are tracked as branches or tags. In order to switch to one of these, all you have to do is checkout the particular branch or tag you want from within your MediaWiki clone directory:

git checkout <branchname>

یا

git checkout <tag name>

The changes will be applied automatically and you will be all set to go.

Using Git to download MediaWiki extensions

List of extensions in git

Download an extension

<EXT> should be replaced with the name of the extension you want to download, without spaces. For Extension:TitleKey, it would be TitleKey. (case sensitive!)

Download and clone an extension from Git:

cd /path/to/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/<EXT> --branch REL1_31

Developers clone with:

git clone ssh://<USERNAME>@gerrit.wikimedia.org:29418/mediawiki/extensions/<EXT> --branch REL1_31

You can view extension source code in Gerrit's gitiles application, and at the URL:

https://gerrit.wikimedia.org/g/mediawiki/extensions/<EXT>/+/refs/heads/master

Download all extensions

If you prefer to have all MediaWiki extensions that are at gerrit.wikimedia.org checked out to your machine, enter the following:

git clone https://gerrit.wikimedia.org/r/mediawiki/extensions --branch REL1_31
cd extensions
git submodule update --init --recursive

Thereafter, to update all extensions to their latest versions of that branch, just enter:

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_30 origin/REL1_30 || :'

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

  1. Remove the "require_once …" or "wfLoadExtension( … )" from LocalSettings.php
  2. Remove any line referencing the extension in composer.local.json (usually in the "extra → merge-plugin → include" section)
  3. Remove the extension's directory in install-dir/extensions/

Using Git to download MediaWiki skins

List of skins in git

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 also