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.
To release a new version of QtPy on PyPI:
-
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
-
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 fileloghub -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"
-
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/*
-
Upload distribution packages to PyPI
twine upload dist/*
-
Create release tag
git tag -a vX.Y.Z -m "Release X.Y.Z"
-
Update
__version__
in__init__.py
(add.dev0
and increment minor) -
Create
Back to work
commitgit 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
To release a new version of QtPy on Conda-Forge:
- After the release on PyPI, an automatic PR in the Conda-Forge feedstock repo for QtPy should open. Merging this PR will update the respective Conda-Forge package.