Releasing a new version - python-telegram-bot/python-telegram-bot GitHub Wiki

Releasing a new version

This project adheres to the Semantic Versioning specification by Tom Preston-Werner.

The actual release (i.e. building the distributions and uploading to PyPI) are automated via GitHub actions. What currently needs to be done manually is updating the changelog and version files.

Process

  • Bump version:

    • telegram/_version.py
    • Replace all ocurrences of NEXT.VERSION by the correct version string in the docstrings
    • if the release includes a Bot API update, update README.rst
    • if the release drops a Python version, update README.rst and pyproject.tolm
  • Commit & create a PR

  • Make sure that the chango fragment is created correctly for an internal change. Run chango release --uid vXX.yy and commit the result.

  • If all checks pass, squash-merge with the commit message:

    Bump version to v<VERSION> (#<PR-Number>)

  • Trigger the workflow for releasing to PyPI (click "Run workflow" and select the master branch)

  • Approve the deployment request for PyPI

  • Wait for the GitHub action to finish uploding to PyPI and the GitHub releases page

  • Adjust the new release if necessary:

  • On Readthedocs dashboard check that latest, stable and vXX.YY are built correctly

  • Close milestones for this version.

  • Test in a clean virtualenv that pip install python-telegram-bot work with the new version.

  • If the doc-fixes branch got merged, create a new one.

  • Merge the dev-wiki into the production wiki

Public Announcements

Please use the following channels/groups to announce a new version release:

Channel posts should be a bit more verbose than the plain release notes. E.g. they can

  • list the (non-dev-team) authors, who contributed to the release, maybe even for each PR
  • have a short, informative description of new/changed features
⚠️ **GitHub.com Fallback** ⚠️