Developer Area/Source code: Difference between revisions
From Mahara Wiki
< Developer Area
(→Git) |
|||
Line 15: | Line 15: | ||
== Git == | == Git == | ||
The Mahara Project source code is managed using the [http://en.wikipedia.org/wiki/ | The Mahara Project source code is managed using the [http://en.wikipedia.org/wiki/Git_%28software%29 git] version control system. By the nature of git, anyone who has checked out a copy of the Mahara project git repository, now has their own full copy of the repository. So if any or all of the official git repo's listed below were to go away, the project could always be restarted from a single dev's copy of the repo. | ||
== Branches & Tags == | == Branches & Tags == |
Revision as of 17:42, 10 September 2014
This page discusses where and how Mahara source code is managed.
The short version
Clone it in Github or Gitorious. If you don't have an account on either of those, you can just clone it anonymously:
git clone https://gitorious.org/mahara/mahara.git
You'll probably also want to check out the branch for whatever stable version of Mahara you're using. For instance, if you're on Mahara 1.9, you would do:
git checkout 1.9_STABLE
The long version
Git
The Mahara Project source code is managed using the git version control system. By the nature of git, anyone who has checked out a copy of the Mahara project git repository, now has their own full copy of the repository. So if any or all of the official git repo's listed below were to go away, the project could always be restarted from a single dev's copy of the repo.
Branches & Tags
Mahara maintains one branch for each major version of Mahara. For a major verison X.Y, the corresponding branch will be X.Y_STABLE. For instance, Mahara 1.8 is in branch 1.8_STABLE, 1.7 is in 1.7_STABLE, etc.
Minor releases are marked by tags. Release X.Y.Z will be marked with tag X.Y.Z_RELEASE.
Additionally, there is a "master" branch which contains development work on the next major release that has not been released yet.
For more information on Mahara versions and the release cycle see:
reviews.mahara.org
At present the "live" version of the code base is in the git repository of our Gerrit code review system, https://reviews.mahara.org . The code here is usually updated by people pushing patches into Gerrit, where they are reviewed and merged by Mahara core developers. Users with the right permissions can also push patches directly to this git repo, and this happens occasionally as well (for instance the version bumps that are done by the scripts that package up our releases).
If you're just interested in reading the code and don't want to push patches, you can clone via anonymous HTTP:
git clone https://reviews.mahara.org/mahara refs/changes/47/2047/3 && git checkout FETCH_HEAD
To push patches to gerrit, you'll need to set up an account in gerrit and clone via SSH, as described in Developer_Area/Contributing_Code
Gitorious & Github
The Mahara Gerrit site automatically replicates all changes into our repositories in Gitorious and Github in near realtime.
- Gitorious: https://gitorious.org/mahara/mahara
- Github: https://github.com/MaharaProject/mahara
The Gitorious repo is the official main repository of the Mahara project. Prior to our adoption of the Gerrit system, code was managed directly in the Gitorious repo (and some older pages on this wiki still refer to that). However, now it functions mainly as a read-only means of republishing the source code. If you are going to clone the entire repository, it's preferred that you clone it from one of these sites rather than from http://reviews.mahara.org, in order to reduce the load on our Gerrit server.
Related code
The Mahara gitorious site contains some additional repositories that contain code related to Mahara and/or used by the Mahara project. The main ones that are not defunct:
- mahara-scripts contains scripts used in the Mahara release management process
- manual contains the Mahara manual
Third-party plugins
Mahara is quite pluggable, and there are many third-party plugins available for Mahara. Third-party plugin authors each have their own code repositories, often on gitorious or github. There is a "mahara-contrib" repository in the mahara project on gitorious, but it's no longer in active use.