Skip to content
alistairbntl edited this page May 2, 2016 · 4 revisions

Git Branches

Proteus uses Git branches to coordinate development and to track "stable" tests of our builds. Recall that branches are just lightweight pointers to individual commits. We provide a list of the branches used by the various repositories and what they mean.

HashDist

The HashDist project is a USACE-sponsored tool for managing the development of isolated software profiles. There are three branches to be aware of:

Branch Purpose Descends From Use
master Development New features go here, sometimes before being tested on every system
stable/cygwin Stable master Last known working build on Cygwin, tracking branch
stable/garnet Stable master Last known working build on the Garnet supercomputer, tracking branch

HashStack

The HashStack project is a USACE-sponsored collection of known working profiles for a variety of packages in scientific computing, with a focus on those needed for high performance computation of numerical simulations using Python. The branch structure mirrors HashDist.

Branch Purpose Descends From Use
master Development New features go here, sometimes before being tested on every system
stable/cygwin Stable master Last known working profiles on Cygwin, tracking branch
stable/garnet Stable master Last known working profiles on the Garnet supercomputer, tracking branch

HashStack-Private

The ERDC-CM HashStack-Private repository is a private downstream repository of the publicly available HashStack repository. This repository contains packages which are currently not available for public redistribution. ROAMS developers should first consider placing their changes in the public upstream repositories.

Branch Purpose Descends From Use
roams Stable HashStack stable/cygwin New ROAMS packages and profile development goes here.

Proteus

Proteus is a public Python package for rapidly developing computer models and numerical methods. The master branch descends from the public master branches of the HashDist and HashStack repositories. There are a few situations where it is advantageous to build or contribute to other Proteus branches.

Branch Purpose Descends From Use
master Development New features go here, sometimes before being tested on every system
stable/cygwin Stable master Last known working profiles on Cygwin, uses HashDist/HashStack stable/cygwin branches
stable/garnet Stable master Last known working profiles on the Garnet supercomputer, uses HashDist/HashStack stable/garnet branches
roams-hashstack Stable stable/cygwin Uses HashStack-private roams branch.

Test Suite

Proteus has a collection of unit tests to prevent regressions in the code base. Developers should include tests whenever developing new features and add tests whenever a bug in the code is found. To run the test suite, go to the test directory of interest and run the command nosetests . -vv.