Code repository

From AtoM wiki

Main Page > Resources > Resources/Code repository

On this page you'll find information on AtoM's code repository - where to find the code, and useful suggestions for how to take advantage of it for development.


If you're doing development work with AtoM, please consider contributing code back to the public project! More information:

AtoM and Git

The AtoM project source code is managed with version control software called Git and is publicly hosted by the popular GitHub git repository hosting service. Git enables users and developers to keep updated when changes are made to the code while managing any conflicts with local code changes. Git also allows users to retrieve the code as it existed at any time in the past. Git is an open source project.

A lot of community documentation exists for Git. The Pro Git book is written by Scott Chacon, the CIO of GitHub, a popular site which provides free Git hosting for open source projects and provides web-based code browsing and issue tracking. Git Pro is published by Apress. You can buy a copy or read it for free on the web.

See Git's official documentation and their list of external resources for more information on how to use Git.

If you're a visual learner, check out "Visualizing Git Concepts with D3," by Wei Wang - Wei has created an experimental tutorial site where you can try out basic git commands, and see the effects visualized as an interactive tree:

For resources about Git specific to GitHub, check out the list of topics available in GitHub's help desk:

Git clients

If you are using a Linux or Unix system, a Git command line tool might already be available on your system. The Git command line tool offers built-in documentation. It is great for quickly reminding yourself of the command line syntax. Use this command to see a list of help topics:

$ git help

To read the help topic explaining Git's "clone" command, for example, enter the following;

$ git help clone

A list of other Git clients is available here.

Browse our code on GitHub

The public code repository for AtoM is hosted at GitHub.

Branch organization

In general, we maintain 2 primary branches of AtoM - a stable branch, and a development branch. New features and/or breaking changes are always added to the development branch - prefaced by qa/ - for example, the development branch for the 2.6 release would be qa/2.6.x. For non-security related bug fixes, we do not generally backport these to earlier releases, and recommend that users upgrade to the latest stable version instead.

Once a development branch has been tested, packaged, and released, we will change it to a stable branch - for example, qa/2.6.x would become stable/2.6.x after the 2.6.0 release, and we will create a new development branch, qa/2.7.x. We will continue to add bug fixes, security patches, and other minor enhancements to the active stable branch as needed, releasing them periodically as minor releases (e.g. 2.6.1, 2.6.2, etc).


Our installation instructions always include, in the "Download AtoM" section, the option to check the code out from our repository, or download a tarball. Please be sure to check the relevant section in our docs, depending on which version of AtoM you are installing. We version all our documentation per major release - you can find an index of the versions available here:

We put the detailed installation instructions, including the instructions on downloading or checking out AtoM, in the "Linux" page of the Installation section of our Administrator's manual.

For example, here is a link to the "Download AtoM" section - see option 2:

Update via git

Use this command to update a previously checked out working copy:

$ git pull

If you have already begun working with the AtoM code, you may want to rebase.

Create patches or pull requests

See the Contribute code page for details on how to fix bugs and contribute patches.


Note that we will always perform a code review before accepting any pull requests or patches, to make sure that all code in AtoM is consistent, and maintainable. See:

For larger features, we also recommend you review this page: