Skip to content

Latest commit

 

History

History
76 lines (58 loc) · 2.37 KB

RELEASE.md

File metadata and controls

76 lines (58 loc) · 2.37 KB

How to make a release

oauthenticator is a package available on PyPI and conda-forge. These are instructions on how to make a release on PyPI. The PyPI release is done automatically by TravisCI when a tag is pushed.

For you to follow along according to these instructions, you need:

Steps to make a release

  1. Checkout main and make sure it is up to date.

    ORIGIN=${ORIGIN:-origin} # set to the canonical remote, e.g. 'upstream' if 'origin' is not the official repo
    git checkout main
    git fetch $ORIGIN main
    git reset --hard $ORIGIN/main
    # WARNING! This next command deletes any untracked files in the repo
    git clean -xfd
  2. Update CHANGELOG.md. Doing this can be made easier with the help of the choldgraf/github-activity utility.

  3. Set the version_info variable in _version.py appropriately and make a commit.

    git add oauthenticator/_version.py
    VERSION=...  # e.g. 1.2.3
    git commit -m "release $VERSION"
    
  4. Reset the version_info variable in _version.py appropriately with an incremented patch version and a dev element, then make a commit.

    git add oauthenticator/_version.py
    git commit -m "back to dev"
    
  5. Push your two commits to main.

    # first push commits without a tags to ensure the
    # commits comes through, because a tag can otherwise
    # be pushed all alone without company of rejected
    # commits, and we want have our tagged release coupled
    # with a specific commit in main
    git push $ORIGIN main
  6. Create a git tag for the pushed release commit and push it.

    git tag -a $VERSION -m $VERSION HEAD~1
    
    # then verify you tagged the right commit
    git log
    
    # then push it
    git push $ORIGIN refs/tags/$VERSION
  7. Following the release to PyPI, an automated PR should arrive to conda-forge/oauthenticator-feedstock, check for the tests to succeed on this PR and then merge it to successfully update the package for conda on the conda-forge channel.