- 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 statusthen 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.pyto release version andCHANGELOG.mdas necessary - Commit changes:
git commit -am "Release Ivaldi version X.Y.Z" - Activate the appropriate venv/Conda env:
source env/bin/activateorconda 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 twineorpip 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.xto maintain deployed version - If new minor version, in
masterbranch updateivaldi/_version.py`; increment minor and adddev0`` - 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