- Ensure
MANIFEST.in
, metadata, trove classifiers and Readme/docs are up to date - Check import (
import ivaldi; ivaldi.__version__
) and if present, run tests - Close Github milestone (if open)
- Check
git status
then ensure repo is up to date:git sync
(git fetch upstream && git pull upstream master && git push origin master
) - Ensure any untracked local files are eliminated:
git clean -xfdi
- Update version in
ivaldi/_version.py
to release version andCHANGELOG.md
as necessary - Commit changes:
git commit -am "Release Ivaldi version X.Y.Z"
- Activate the appropriate venv/Conda env:
source env/bin/activate
orconda activate ENV_NAME
- Update packaging packages:
conda install wheel setuptools pip
(if conda env) orpip install --upgrade setuptools wheel
(otherwise) - Build source and wheel distributions:
python setup.py sdist bdist_wheel
- Install/update Twine if uploading to PyPI:
conda install twine
orpip install --upgrade twine
- Upload to TestPyPI first (if uploading to PyPI)
python -m twine --repository-url https://test.pypi.org/legacy/ upload dist/*
(note: legacy is current API) - In a clean venv/conda env, test download/install:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ivaldi
(if PyPI) orpip install .
(otherwise) - In test env, check import (
import ivaldi; ivaldi.__version__
) and run tests - Upload to live PyPI (if uploading to PyPI):
python -m twine upload dist/*
- Tag release:
git tag -a vX.Y.Z -m "Ivaldi version X.Y.Z"
- Clean release files:
git clean -xfd
- If new minor version, create release branch
vX.Y.x
to maintain deployed version - If new minor version, in
master
branch updateivaldi/_version.py`; increment minor and add
dev0`` - Commit change back to dev mode on
master
:git commit -am "Begin development of version X.Y.x"
- Push changes upstream and to user repo:
git push upstream master --follow-tags && git push origin master