Skip to content

Release Procedure

Hyungro Lee edited this page May 19, 2020 · 9 revisions
  • Release Manager: HL

Regular release schedule

  • 1st Tuesday of the month

Preconditions for Release:

  1. If the release is a milestone release: no open tickets for the milestone
  2. Travis CI on devel is passing (http://ci.radical-project.org/job/radical.entk.devel/branch/devel/)
  3. PyPI maintainer
  4. Repo maintainer (admin: https://github.com/orgs/radical-cybertools/teams/admin)

Release process; regular

  1. Define a new version export ENTK_RELEASE_VERSION="1.0.1" (replace 1.0.1 accordingly)
  2. Create a branch from the latest master: e.g. git checkout master; git pull; git checkout -b release/$ENTK_RELEASE_VERSION
  3. Update the version file: echo $ENTK_RELEASE_VERSION > VERSION
  4. Make modifications to the branch: followed by merging devel git merge devel (make sure to pull devel before)
  5. Update release notes: $EDITOR CHANGES.md
  6. Commit and push: git commit -a; git push origin release/$ENTK_RELEASE_VERSION
  7. Create pull-request of release branch to the master (base): https://github.com/radical-cybertools/radical.entk/pulls
  8. Wait on and/or nudge other developers to review and test
  9. If not approved, GOTO 3

Release process; hotfix

  1. Define a new version export ENTK_RELEASE_VERSION="1.0.1" (replace 1.0.1 accordingly)
  2. Create a branch from the latest master: e.g. git checkout master; git pull; git checkout -b hotfix/issue_123
  3. Update version echo $ENTK_RELEASE_VERSION > VERSION
  4. Make modifications to the branch: either by $EDITOR or git cherry-pick abcsuperdupercommit890 (The latter is preferred)
  5. Update release notes: $EDITOR CHANGES.md
  6. Commit and push: git commit -a; git push hotfix/issue_123
  7. Create pull-request of hotfix branch to the master(base): https://github.com/radical-cybertools/radical.entk/pulls
  8. Wait on and/or nudge other developers to review and test
  9. If not approved, GOTO 3

Publishing a release

  1. If approved, move to master branch and pull in the merged content: git checkout master, then git pull
  2. Create tag: git tag -a v$ENTK_RELEASE_VERSION -m "release v$ENTK_RELEASE_VERSION" (v prefix is added here)
  3. Push tag to GitHub: git push --tags
  4. Release on PyPI: python setup.py sdist; twine upload --skip-existing dist/radical.entk-$ENTK_RELEASE_VERSION.tar.gz
  5. Verify PyPI version on: https://pypi.python.org/pypi/radical.entk

Post Release

  1. Merge master into devel branch: git checkout devel; git merge master; git push origin devel
  2. Merge devel into all open development branches: for b in $branches; do git checkout $b; git merge master; done
  3. Delete the branch for the release e.g. release/$ENTK_RELEASE_VERSION or hotfix/issue_123

Release history