Skip to content

Release Procedure

Matteo Turilli edited this page Jul 25, 2021 · 39 revisions
  • Release Manager: AM

Preconditions for release:

  1. if release is a milestone release: no open tickets for milestone
  2. all tests on devel pass (https://github.com/radical-cybertools/radical.pilot/actions)

Preparing a regular Release

  1. Pull devel: git checkout devel; git pull
  2. Create branch from latest master: e.g. git checkout master; git pull; git checkout -b release/0.1.2
  3. Update version: echo "0.1.2" > VERSION
  4. Make modifications to branch: usually by merging devel git merge devel (make sure to pull devel before)
  5. update version dependencies to radical stack in setup.py
  6. Update release notes: $EDITOR CHANGES.md
  7. Commit and push: git commit -a; git push (make sure there are no unwanted files in the repo)
  8. Create pull-request of release branch to master: https://github.com/radical-cybertools/radical.pilot/pulls
  9. Wait on and/or nudge other developer to review and test
  10. If not approved, GOTO Perform a Release

Preparing a hotfix release

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

Perform a Release

  1. If approved, move to master branch and pull in merged content: git checkout master, then git pull
  2. Create tag: git tag -a v0.1.2 -m "release v0.1.2.3"
  3. Push tag to github: git push --tags
  4. Release on pypi: python setup.py sdist; twine upload --skip-existing dist/radical.xyz-0.1.2.tar.gz
  5. Verify pypi version on: https://pypi.python.org/pypi/radical.xyz
  1. GOTO "Post Release"

Post Release

  1. merge master into devel branch: git checkout devel; git merge master; git push
  2. merge devel into all open development branches: for b in $branches; do git checkout $b; git merge master; done

Testing twine and pypi release

  1. Register at https://test.pypi.org/
  2. Create the test release: python setup.py sdist
  3. Upload your test release to test.pypi: twine upload -r testpypi --skip-existing dist/radical.xyz-0.1.2.tar.gz
  4. Check/test your release. More information at https://packaging.python.org/guides/using-testpypi/
Clone this wiki locally