Tagging a release

  • Create a new directory for the new tag
    mkdir lardev-< version >
    cd lardev-< version >
  • Create an mrb development area corresponding to the base release of larsoft
    export MRB_PROJECT=larsoft
    mrb newDev -v < larsoft version > -q < qualifiers >
    source localproducts*/setup
  • Check out sbndcode and sbndutil
    cd $MRB_SOURCE
    mrb g sbndcode
    mrb g sbndutil
  • Make sure local copies of develop and master are up to date with origin for each package
    cd $MRB_SOURCE/< package >
    git checkout develop
    git pull
    git checkout master
    git pull
  • Use git flow to create a release branch in your local repo (automatically from head of develop) for each package
    git flow release start < version >
  • Checked out branch is now release/< version >.
  • Change any files that include the version number of the package being tagged and the version numbers of dependent products. Files to edit:
    • $MRB_SOURCE/sbndcode/ups/product_deps
    • $MRB_SOURCE/sbndutil/ups/product_deps
  • Do a full install and then test build
    mrb i -j4
    mrb t -j4
  • Fix any issues and repeat until it works
  • Commit updates to your local repository for each package
    cd $MRB_SOURCE/< package >
    git commit -a
  • Finish the release branch (once for sbndcode and once for sbndutil):
    • Merge to master and develop
    • Creates a tag on the master branch
    • Deletes the release branch
    • Checks out the develop branch
      git flow release finish
  • You will be asked to write some commit messages, leave the first and third as they are, for the second put "Version < version > "
  • Push everything to origin (once for sbndcode and once for sbndutil)
    git push origin develop master
    git push --tags