Skip to content

How to release

Anya Heider edited this page Oct 21, 2019 · 5 revisions

This is quick on how to publish and ship a new release of eDisGo.

Before release

  1. Check setup.py
    1. Version correct?
    2. Version of depending packages: Are lower and upper limit are correct? Are new versions included? Are all upper version bounds in line with dependencies of eTraGo and eGo?
  2. Update version number in conf.py
  3. Make sure desired changes (PRs) are merged to dev
  4. Check docs
    1. Build docs locally
    2. Remove errors and warnings as far as possible
    3. Check HTML build
  5. What's new
    1. Set release date in "What's new"
    2. Make sure list of changes, bug fixes and new features is complete. Consider to scan issue attached to the milestone that were closed
    3. Add latest "What's new" to What's new documentation

Actual release process

  1. Check the rendering of the README file on the master python setup.py check -r -s

  2. Create a PR from dev to master

  3. Let a reviewer merge it or merge it yourself

  4. Create a release tag on master.

  5. Pull master to get the release tag (If you do not see the tag type 'git fetch'.)

  6. Release via PyPI (if you don't have permissions for this repo, ask someone who does) 2. Make sure you have the latest versions of setuptools and wheel installed:

    python -m pip install --user --upgrade setuptools wheel twine

    1. Now run this command from the same directory where setup.py is located:

      python setup.py sdist bdist_wheel

    2. README - Last check on README file because it will be the first page on PyPi

      python -m twine check dist/*

      If errors occur fix them now and check again. It is NOT possible to fix them after the release.

    3. Run Twine to upload all of the archives under dist to TestPyPI (you need to register at TestPyPI first)

      python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

    4. Before uploading to PyPI you can now test the uploaded package by installing it from TestPyPI and check if everything works correctly (e.g. run an example).

      pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple eDisGo

    5. If everything works as expected you can now upload the new eDisGo version to PyPI.

      python -m twine upload dist/*

After the release

  1. Set version for next release in setup.py of dev
  2. Create "What's new" file for next version
  3. Celebrate! 🎆 🍾 👏
Clone this wiki locally