Skip to content

Latest commit

 

History

History
115 lines (78 loc) · 3.19 KB

RELEASING.md

File metadata and controls

115 lines (78 loc) · 3.19 KB

Releasing

Releases of globus-compute-sdk and globus-compute-endpoint are always done with a single version number, even when only one package has changes.

The process is partially automated with tools to help along the way.

Prerequisites

You must have the following tools installed and available:

  • git
  • scriv
  • tox

You will also need the following credentials:

  • a configured GPG key in git in order to create signed tags
  • pypi credentials for use with twine (e.g. a token in ~/.pypirc) valid for publishing globus-compute-sdk and globus-compute-endpoint

Alpha releases

  1. Branch off from the main branch to create a release branch (e.g., v.1.1.0):
git checkout -b v1.1.0 main
  1. Bump the version of both packages to a new alpha release (e.g., 1.0.0 -> 1.1.0a0):
$EDITOR compute_sdk/globus_compute_sdk/version.py compute_endpoint/setup.py compute_endpoint/globus_compute_endpoint/version.py
  1. Commit the changes:
git add compute_sdk/globus_compute_sdk/version.py compute_endpoint/setup.py compute_endpoint/globus_compute_endpoint/version.py
git commit -m "Bump versions for alpha release v1.1.0a0"
git push -u origin v1.1.0
  1. Run ./release.sh from the repo root. This script creates a signed tag named after the current version and pushes it to GitHub, then uses the tox release command to push each package to PyPi.

Alpha release bugfixes

  1. Branch off from the release branch to create a new bugfix branch:
git checkout -b some-bugfix v1.1.0
  1. Commit your changes and push to GitHub.
git add .
git commit -m "Fixed X"
git push -u origin some-bugfix
  1. Open a PR in GitHub to merge the bugfix branch into the release branch.

  2. Once the PR is approved and merged, pull the new commits from the remote release branch:

git checkout v1.1.0
git pull
  1. Repeat steps 2 through 4 of the main Alpha releases procedure. Be sure to only bump the alpha version number (e.g., 1.1.0a0 -> 1.1.0a1).

Production releases

  1. Checkout the release branch.
git checkout v1.1.0
  1. Remove the alpha version designation for both packages (e.g., 1.1.0a1 -> 1.1.0):
$EDITOR compute_sdk/globus_compute_sdk/version.py compute_endpoint/setup.py compute_endpoint/globus_compute_endpoint/version.py
  1. Update the changelog:
scriv collect --edit
  1. Commit the changes:
git add changelog.d/ docs/changelog.rst
git add compute_sdk/globus_compute_sdk/version.py compute_endpoint/setup.py compute_endpoint/globus_compute_endpoint/version.py
git commit -m "Bump versions and changelog for release v1.1.0"
git push
  1. Run ./release.sh from the repo root.

  2. Open a PR in GitHub to merge the release branch into main.

    ⚠️ Important: Once approved, merge the PR using the "Merge commit" option. This will ensure that the tagged commits and bug fixes from the release branch are properly added to the main branch.

  3. Create a GitHub release from the tag. See GitHub documentation for instructions.