Skip to content

Releasing a new version

Noam Meltzer edited this page Jul 25, 2017 · 35 revisions

Releasing a new version

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

Requirements

Packages:

$ pip install -r requirements-dev.txt -r docs/requirements-docs.txt
$ pip install wheel twine

Process

  • Bump version:

    • telegram/__init__.py
    • docs/source/conf.py
  • Log changes to:

    • CHANGES.rst
  • Run tests:

    $ make test
    
  • Build source distribution:

    $ python setup.py sdist bdist_wheel
    
  • Register new version (obsolete, not needed):

    $ python setup.py register
    
  • Upload to PyPI (-s to sign the package with your GnuPG key):

    $ twine upload -s dist/python*
    
  • Commit the version bump and add tag:

    $ git commit -a -m 'Bump version to v<VERSION>'
    $ git push
    
  • Create a new release:

    • Tag version: v<VERSION>
    • Release title: v<VERSION>
    • Description: <logs from CHANGES.rst>
    • Upload the source distribution from pypi as binary attachment + asc (gpg signature) + sha1 (create it yourself).
  • Build documentation:

    $ python setup.py build_sphinx
    
  • Upload documentation (Upload failed (503): backend read error may happen but not really an issue):

    $ python setup.py upload_sphinx
    
  • Close milestones for this version.

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

Public Announcements

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

Clone this wiki locally