Difference between revisions of "Resources/Code repository"

From AtoM wiki
(AtoM and Git)
m (Fix header sizes)
 
(7 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
[[Main Page]] > [[Resources]] > Resources/Code repository
 
[[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.  
+
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.
  
 
<admonition type="seealso">
 
<admonition type="seealso">
Line 12: Line 12:
 
===AtoM and Git===
 
===AtoM and Git===
  
The AtoM project source code is managed with [https://en.wikipedia.org/wiki/Revision_control version control] software called [http://git-scm.com/ Git] and is publicly hosted by the popular [https://github.com/ 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 changes made to the code. Git also allows users to retrieve the code as it existed at any time in the past. Git is an open source project.
+
The AtoM project source code is managed with [https://en.wikipedia.org/wiki/Revision_control version control] software called [http://git-scm.com/ Git] and is publicly hosted by the popular [https://github.com/ 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 [http://git-scm.com/book 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 [http://www.amazon.ca/Pro-Git-Scott-Chacon/dp/1484200772/ buy a copy] or read it for free on the web.
 
A lot of community documentation exists for Git. The [http://git-scm.com/book 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 [http://www.amazon.ca/Pro-Git-Scott-Chacon/dp/1484200772/ buy a copy] or read it for free on the web.
  
 
See  [http://git-scm.com/documentation Git's official documentation]  and their list of [http://git-scm.com/documentation/external-links external resources] for more information on how to use Git.
 
See  [http://git-scm.com/documentation Git's official documentation]  and their list of [http://git-scm.com/documentation/external-links 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:
 +
 +
* http://onlywei.github.io/explain-git-with-d3/
 +
 +
 +
For resources about Git specific to GitHub, check out the list of topics available in GitHub's help desk:
 +
 +
* https://help.github.com/
  
 
===Git clients===
 
===Git clients===
Line 33: Line 42:
 
===Browse our code on GitHub===
 
===Browse our code on GitHub===
  
The public code repository for AtoM is hosted at Github.
+
The public code repository for AtoM is hosted at GitHub.
  
 
* Code repository web interface: https://github.com/artefactual/atom
 
* Code repository web interface: https://github.com/artefactual/atom
 
* List of changes committed to the repository: https://github.com/artefactual/atom/commits/
 
* List of changes committed to the repository: https://github.com/artefactual/atom/commits/
 +
 +
<admonition type="seealso">
 +
* [https://github.com/ GitHub homepage]
 +
* [https://help.github.com/ GitHub help]
 +
</admonition>
 +
 +
===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 <code>qa/</code> - for example, the development branch for the 2.6 release would be <code>qa/2.6.x</code>. 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, <code>qa/2.6.x</code> would become <code>stable/2.6.x</code> after the 2.6.0 release, and we will create a new development branch, <code>qa/2.7.x</code>. 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).
  
  
 
===Checkout===
 
===Checkout===
  
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:  
+
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:
  
* https://www.accesstomemory.org/docs  
+
* https://www.accesstomemory.org/docs
  
  
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.  
+
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 2.1 "Download AtoM" section:  
+
For example, here is a link to the "Download AtoM" section - see option 2:
  
* https://accesstomemory.org/docs/2.1/admin-manual/installation/linux/#download-atom  
+
* https://accesstomemory.org/docs/latest/admin-manual/installation/linux/#download-atom
  
  
Line 63: Line 83:
  
  
=== Create patches ===
+
=== Create patches or pull requests===
  
 
See the [[Development/Contribute code|Contribute code]] page for details on how to fix bugs and contribute patches.
 
See the [[Development/Contribute code|Contribute code]] page for details on how to fix bugs and contribute patches.
  
 +
<admonition type="important">
 +
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:
  
 +
* [[Development/Coding standard|Coding standard]]
 +
* [[Development/Code review|AtoM code review process]]
 +
 +
For larger features, we also recommend you review this page:
 +
 +
* [[Development/Recommendations|Community development recommendations]]
 +
</admonition>
  
  
* [[#Resources/Code repository|Back to top]]
+
-----
  
 +
* [[Resources|Back to Resources]]
 +
* [[Main_Page|AtoM wiki home]]
  
  
 
[[Category:Resources]]
 
[[Category:Resources]]

Latest revision as of 15:21, 14 August 2019

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.

Seealso

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).

Checkout

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.

Important

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: