Python packages

A lot of our code is published as Python packages on PyPI.

Development

Make changes to the repository that contains the Python package using the normal GitHub flow.

Bump the version in the repository. You might have to look in:

  • setup.py
  • package/__init__.py
  • docs/conf.py

Release

Use git flow release to publish a new release to GitHub. This will create a new tag which will cause Travis to build.

The .travis.yml file will deploy the package to PyPI as the praekelt.org user.

For many package repositories, there’s another repo prefixed with docker-. For example, junebug and docker-junebug.

pyup.io will make an automatic pull request to the docker- repo to increment the requirements.txt file.

When that pull request is merged, Travis will build a container image and deploy it to Docker Hub as the praekeltorgdeploy user to the praekeltfoundation namespace.

Deployment

Use Mission Control to deploy the Docker Hub image to QA and production.