How to Build a Release

Gregory Jansen edited this page May 7, 2013 · 9 revisions

How to Build a Release

This procedure covers both major and minor releases. Major releases generally come from the master branch, though we have the option of branching for release. Minor releases are performed on a release maintenance branch, such as 3.1.x.

prepare

  1. Go to the master project folder, aka workbench:
    • cd workbench
    • or if no workbench folder has been cloned:
    • git clone git@github.com:UNC-Libraries/Curators-Workbench.git workbench
    • cd workbench
  2. Make sure you are on the correct branch and have no outgoing/incoming changes
    • Do git checkout <branch>, where branch is master or a minor release branch like 3.1.x
    • Do git pull
    • Do git status
  3. Set the email and user name for the local git repository, if not already set
    • git config -l
    • git config user.email <your eclipse commiter email address>
    • git config user.name <your name>
  4. Check license headers
    • mvn license:check
    • vim pom.xml - edit parent POM until license exclusions are up to date
    • mvn license:format - apply license header to remaining files
    • git commit
  5. Update branding:
    • splash image: workbench_plugin/splash.bmp from splash.xcf
    • about text: workbench_plugin/plugin.xml
    • about dialog text: eclipse-repository/workbench.product
  6. Create a local release branch (just creating it, not checking it out yet)
    • git branch workbench-<version>
    • This local branch will not be pushed to the remote repository. It is just a local branch used for this release process.
  7. Update the checked out branch pom files to the next qualified (SNAPSHOT) version.
    • mvn tycho-versions:set-version -DnewVersion=<version+1>.qualifier (updates version in POM and bundle manifests)
    • Update version in eclipse_repository/category.xml
    • git commit -s -a -m "new version <version+1>-SNAPSHOT"
    • git push

deploy and tag

  1. checkout the local release branch you created above

    • git checkout workbench-<version>
  2. update checked out release branch pom files to the release version.

    • `mvn tycho-versions:set-version -DnewVersion= - update version in POMs and manifests.
    • Update version in eclipse_repository/category.xml
  3. commit and tag your changes

    • git commit -s -a -m "new release <release version>"
    • git tag <release version>
  4. deploy the release artifacts to Artifactory

    • mvn clean deploy

promote to GitHub

  1. push the release tag
    • git push origin <release version>

cleanup

  1. remove release branch if you intend to keep the local git repository
    • git checkout <working-branch> - switch back to master or preferred branch
    • git branch -D workbench-<version>