Skip to content

Latest commit

 

History

History
89 lines (59 loc) · 3.1 KB

release_process.rst

File metadata and controls

89 lines (59 loc) · 3.1 KB

Production Release Process

The workflow below is targeted at releasing production ready code to PyPI. This workflow assumes that the current branch is up-to-date with desired changes and the code is validated to work for end users who are working with this project in production.

  1. First you will need to know the username and password for the account you want to use to release to PyPI shared_accounts.

  2. You will need to make sure that you are on the master branch, your working directory is clean and up to date.

  3. Decide if you are going to increment the major, minor, or patch version. You can refer to semver to help you make that decision.

  4. Verify that the pre-requisites for running integration tests are satisfied. (See the "Executing Integration Tests" section)

  5. Use the release-major, release-minor, or release-patch.

    make release-minor
    
  1. The task will stop and prompt you for you PyPI username and password if you dont have these set in your .pypirc file.

  2. Once the task has successfully completed you need to push the tag and commit.

    git push origin && git push origin refs/tags/<tagname>
    
  3. Create a release on GitHub. (GitHub release)

Development Build Release Process

The workflow below is targeted at releasing 'dev' builds to PyPI. The purpose of this workflow is to put experimental or release candidate builds onto PyPI in order to test other projects that are dependent on this one.

  1. First you will need to know the username and password for the account you want to use to release to PyPI shared_accounts.

  2. You will need to make sure that you are on your working directory is clean and up to date and you're on the correct branch that contains the experimental/non-production code.

  3. Decide if you are going to increment the major, minor, or patch version. You can refer to semver to help you make that decision.

  4. Use the bump-major, bump-minor, bump-patch or bump-build to move the version forward.

    make bump-minor
    
  5. Build the experimental/non-production package.

    make build
    
  6. Publish the experimental/non-production package to PyPI.

    make publish
    
  7. If you need to make updates to the experimental build it is suggested to bump the build version, build and re-publish.

    make bump-build
    make build
    make publish
    
  8. Once you're satisfied that the changes are ready to be released to production use the make release target.

    make release
    
  9. Once the task has successfully completed you need to push the tag and commit.

    git push origin && git push origin refs/tags/<tagname>
    
  10. Create a release on GitHub. (GitHub release)