Table of Contents
This is an old revision of the document!
Git
Evergreen uses Git as its primary version control system for both code and documentation. A number of repositories of interest to Evergreen, including the main public repositories for Evergreen, Evergreen's documentation, and OpenSRF, are maintained on the community Git server.
Using Git
Quick start for Evergreen contributors
git clone git://git.evergreen-ils.org/Evergreen.git cd Evergreen git checkout -b working_branch # hack away git commit -as # and enter a useful comment git format-patch origin # attach patch file(s) to Launchpad bug
Quick start for commiters
# assuming you've provided a public SSH key to one of the Git administrators git clone git@git.evergreen-ils.org:Evergreen.git cd Evergreen git checkout -b working_branch # hack away git commit -as # and enter a useful comment git pull origin # sync with the rest of the world git push origin working_branch:master
Git resources
Guidelines for contributors
Commit messages
A commit message should consist of a subject line (i.e., the first line of the commit message), then a blank line, then an optional description of the patch, followed by one or more signoffs. The subject line should be brief, ideally no more than 60-70 characters, and should include a bug number from LaunchPad if relevant. Here is an example of a minimum commit message:
LP#24544: fix the quuxifier Signed-off-by: Jane Hacker <jhacker@example.org>
Of course, sometimes a patch requires more description and review:
LP#542: extend the foobar subsystem Add support for the thingmajigger interface provided by the Baz module. Adds the following OU settings: circ.foobar.baz and the following permissions VIEW_FOOBAR UPDATE_FOOBAR DELETE_FOOBAR Signed-off-by: Jane Hacker <jhacker@example.org> Signed-off-by: Roger Reviewer <roger@example.com> Signed-off-by: Chris Committer <chris@example.net>
Sign-offs
For the Evergreen and OpenSRF projects, all patches must be signed off by the author. The author sign-off signifies that the author is permitted to submit the patch and is equivalent to signing a DCO (Developer's Certificate of Origin). More information on the DCO is included in the main contributing page.
An author sign-off can have a secondary meaning: that the author has tested the patch and believes it to be of sufficient quality to contribute to Evergreen. All contributors are encouraged to enlist other people to review their patches, and a sign-off by somebody other than the author signifies that the patch has been reviewed.
A sign-off takes the form of the following text in the commit message for a patch:
Signed-off-by: Jane Hacker <jhacker@example.org>
Evergreen.git and OpenSRF.git
The following conventions apply to both Evergreen and OpenSRF. For the sake of concision, only Evergreen will be named in the forgoing.
Branches
The tip of Evergreen development is master, while branches that start with rel_ are maintenance branches for release series. Branches that start with tags/ are legacies of Evergreen's previous Subversion repository, and should not be confused with Git tags.
Community Git Repository
http://git.evergreen-ils.org is the main community repository and is used for the following:
- the main Evergreen, Evergreen documentation, and OpenSRF repositories
- Evergreen and OpenSRF contribs
- Working trees of any of the above maintained by individuals and organizations
- Mirrors of Git repos of dependencies used by Evergreen or OpenSRF
- Working trees of related projects, e.g., OpenNCIP.
Any individual or group who wishes to have a repository hosted on the community Git server can request one. All repositories must meet the following conditions:
- They must be relevant to the Evergreen project.
- They may only contain free and open source software or, in the case of documentation, images, and other non-software artifacts, must be licensed under an appropriate open license such as CC-BY-SA or CC0.
To request a new repository, please email the open-ils-dev mailing list.
Git administrators
To request a repository, please email gitadmin@evergreen-ils.org.
The people who currently have access to maintain the Git server and create new repositories (and who listen to the gitadmin@evergreen-ils.org address) are:
- Galen Charlton
- Thomas Berezansky