Skip to content

Latest commit

 

History

History
114 lines (67 loc) · 2.12 KB

RELEASE.md

File metadata and controls

114 lines (67 loc) · 2.12 KB

Release Procedure

In the commands below, replace X.Y.Z with the release version when needed.

Note: We use pip instead of conda here even on Conda installs, to ensure we always get the latest upstream versions of the build dependencies.

PyPI

To release a new version of QtPy on PyPI:

Prepare

  • Close GitHub milestone and ensure all issues are resolved/moved

  • Update local repo

    git restore . && git switch master && git pull upstream master
  • Clean local repo

    git clean -xfdi

Commit

  • Install/upgrade Loghub

    pip install --upgrade loghub
  • Update CHANGELOG.md using Loghub to generate the list of issues and PRs merged to add at the top of the file

    loghub -m vX.Y.Z spyder-ide/qtpy
  • Update __version__ in __init__.py (set release version, remove .dev0)

  • Create release commit

    git commit -am "Release X.Y.Z"

Build

  • Update the packaging stack

    python -m pip install --upgrade pip
    pip install --upgrade --upgrade-strategy eager build setuptools twine wheel
  • Build source distribution and wheel

    python -bb -X dev -W error -m build
  • Check distribution archives

    twine check --strict dist/*

Release

  • Upload distribution packages to PyPI

    twine upload dist/*
  • Create release tag

    git tag -a vX.Y.Z -m "Release X.Y.Z"

Finalize

  • Update __version__ in __init__.py (add .dev0 and increment minor)

  • Create Back to work commit

    git commit -am "Back to work"
  • Push new release commits and tags to master

    git push upstream master --follow-tags
  • Create a GitHub release from the tag

Conda-Forge

To release a new version of QtPy on Conda-Forge: