release_process.rst 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. Release Process
  2. ~~~~~~~~~~~~~~~
  3. 1. Increment version number in ``cloudbridge/__init__.py`` as per
  4. `semver rules <https://semver.org/>_.
  5. 2. Freeze all library dependencies in ``setup.py``. The version numbers can be
  6. a range with the upper limit being the latest known working version, and the
  7. lowest being the last known working version.
  8. 3. Run all ``tox`` tests.
  9. 4. Add release notes to ``CHANGELOG.rst``. Also add last commit hash to
  10. changelog. List of commits can be obtained using
  11. ``git shortlog <last release hash>..HEAD``
  12. 5. Release to PyPi.
  13. (make sure you have run `pip install wheel`)
  14. First, test release with PyPI staging server as described in:
  15. https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/
  16. Once tested, run:
  17. .. code-block:: bash
  18. # remove stale files or wheel might package them
  19. rm -r build dist
  20. python setup.py sdist upload
  21. python setup.py bdist_wheel upload
  22. 6. Tag release and make a GitHub release.
  23. .. code-block:: bash
  24. git tag -a v1.0.0 -m "Release 1.0.0"
  25. git push --tags
  26. 7. Increment version number in ``cloudbridge/__init__.py`` to ``version-dev``
  27. to indicate the development cycle, commit, and push the changes.