Using the Repository - ababaian/serratus GitHub Wiki
Serratus requires git
for version control and to manage contributions from many authors.
To clone the serratus
repository locally, run:
git clone https://github.com/ababaian/serratus.git
serratus/
βββ bin # Binaries and executable tools/modules
βββ containers # Container make files and scripts for production
βββ data # For _local_ storage of data (.gitignore)
βββ doc # Documentation files
βββ img # Visual assets and workflow diagrams
βββ local # For _local_ storage of files (.gitignore)
βββ notebook # Shared electronic lab-notebook and associated data files.
βββ packer # Creating standardized node images (AMI)
βββ src # Source code for modules/tools used in Serratus
βββ terraform # Cloud resource definitions for cluster
βββ CONTRIBUTING.md
βββ LICENSE
βββ README.md
This project is managed by the GitFlow pattern of git-branching. The only difference is that master/origin
is for development and there is a seperate production
branch for tagged versions being deployed until version 1.0.
The main or master
branch is the development backbone. This is the operational code with completed experiments. You should not "push" directly to master
but instead issue a "pull request" to merge your work
βββ 0.1.4 βββ 0.1.5 # Tagged release used in production
master/originββββββββββββββββββ.. # master/origin : Production Ready Serratus
βββ suzyββββββββ β β β # Suzy's experimental working branch
βββββββgui-devβββββββ β β # Frank is working on the GUI feature
hotfixββββ # Suzy issues a tested hotfix to production
In git
there are independent working copies of the code-base called branches. Each contributor works on his/her own branch, and this does not interact with other branches.
# Create a development branch called `suzy` to run an experiment
git branch sally
# Move to your branch
git checkout sally
For Running an Experiment you should work on your own branch named with your initials/id.
If you're developing a feature for integration into the Serratus
codebase, you should name your branch <feature_your_developing>-dev
or <name>-dev
if it's multiple things.
Now you can modify any of the files in your local serratus/
, when you're ready to save your work (say I modified serratus/docker/Dockerfile
)
Stage your changes:
git add docker/Dockerfile
Check the status of what changes are staged and what is not staged:
git status
Commit your changes to version control:
git commit -m "Short description of what these changes accomplished"
End of the work-day, back-up your changes to the online GitHub repository:
git pull # download others changes from the online repo
git push # upload your changes to the online repo
Create a Pull Request when you've finished a larger unit of work, like completing a feature. Your branch changes can be combined with the master
branch and into production code.