We are using git flow to manage releases on the daq software. You can read some basic instructions on git flow here: http://danielkummer.github.io/git-flow-cheatsheet.
If you need to make a release, follow these instructions.
Against common wisdom, due to a conflict of link and runtime ganglia libraries, evidently, you need to build the release not on uboonedaq-evb, as good practice would otherwise dictate, but on ubdaq-prod-evb. Else, the build will seem fine, but run will fail to start data taking. (EC, 10-Sep-2016.)
- Make sure you have set up git flow in your work area.
- Set up git flow via
- In your working area, do
git flow init(if you've made any changes to the code dont forget to commit them before this stage)
- At the prompt "Branch name for production releases: [master]", type in
- At the prompt "Branch name for 'next release' development: [develop]", type in
- For all other prompts, use the defaults by just pressing 'Enter'.
- Set up git flow via
- Make sure you are up to date in your master and production branches (via a 'git pull' in each of those).
git flow release start vX_YY_ZZwhere X_YY_ZZ is the next version number you anticipate using. This will create a new release branch for you based on your master branch.
- At a minimum, in this release branch you should be sure to update the
ups/product_depsfile to have the right (new) version number. You can merge in other commits if you need to (but hopefully those were already in master).
- When finished with your changes, build and install, and make sure you have the new product in your installation area. Run some tests to make sure it works.
- With everything done and working, do
git flow release finish vX_YY_ZZ. Please put in as helpful of a message as possible that describes the new version.
- Copy the built product into the products area:
cp -r <your_insall_area>/vX_YY_ZZ /uboonenew/<products_area>
cp -r <your_insall_area>/vX_YY_ZZ.version /uboonenew/<products_area>
- Now push the code and new tag up to the main repository:
git push origin master production
git push --tags
- Now rsync to the production machines.
rsync -avz -e ssh -K /uboonenew/<products_area>/vX_YY_ZZ* products@ubdaq-prod-ws01:/uboonenew/<products_area>
- And declare the new version as "current" on the machines. Do this on the production machine.
ups declare -c <product_name> vX_YY_ZZ -qe7:debug
And, you're done!