Skip to content

Developer Overview For BatCommon development we use the git flow model and the fundamental tenet is that the develop branch should never be behind the master branch. Therefore, all the rules for contributing to cdmsbats apply to BatCommon as well. The git flow model is a branching strategy that allow a wide array of development and bug fixes while keeping the master branch working and ready for deployment.

It is recommended to use the helper program git flow-avh to help you work correctly in the git-flow model. The helper program provides short-hand commands that help enforce this branching model; a cheat sheet outlining git flow commands is at https://danielkummer.github.io/git-flow-cheatsheet/.

Prerequisites

Developers working on cdmsbats will need to be proficient in the following git skills - even for someone not making releases:

  • The git flow model.
  • Making a branch, and understanding the difference between branching off master and branching off develop.
  • Merging upstream changes.
  • Resolving merge conflicts.
  • If you are working on files inside BatCommon or IOLibrary, you will need to be familiar with git submodules.

Developers of any code should commit all files necessary to recreate their work. If you are unsure how to commit the necessary files (or changes to files) within the existing repository, contact the repository maintainers or Amy Roberts to determine a solution. To find help with using git, please ask for help in the git-help slack channel. You may also refer to this introductory guide to git.

Contribution policy

The most recent contribution policy/instructions for SuperCDMS developers is available in this page.

A more detailed documentation of the code itself can be found here. Further, here is a presentation from a past analysis workshop that details some technical information and instructions on code writing.