setup local environment
python3 -m venv pytest-env
source pytest-env/bin/activateInstall required tools
pip install setuptools wheel setuptools-git-versioning build twine pip-tools toml path
pip install --upgrade setuptools_scm
pip install --upgrade twine
pip listgit workflow update
VERSION=1.2.22
git status
git tag $VERSION
git push origin --tags
git add pyproject.toml
git add .gitignore
git add *.py
git add *.md
git add src/*
git commit -m "new release"
git push` manual quick update
VERSION=1.2.21
git status
git tag $VERSION
git push origin --tags
git add pyproject.toml
git add .gitignore
git add *.py
git add *.md
git add src/*
git commit -m "new release"
git push
python -m setuptools_git_versioning
rm -rf build dist *.egg-info
python -m build
python -m twine upload dist/*git tag 1.2.8
git push origin --tagsVERSION
python -m setuptools_git_versioningupdate requirements
pip-compile pyproject.tomlpip-syncClean
rm -rf build dist *.egg-infoBuild the Package with debug
python -m build --wheel -nBuild the Package
python -m buildPublish to PyPI
python -m twine upload dist/*Here's an updated GitHub Actions workflow to include the script execution:
py generate_init.py -p src/pyfunc_configpy -m buildtwine check dist/*test before publish
twine upload -r testpypi dist/*publish
twine upload dist/* The idea of semantic versioning (or SemVer) is to use 3-part version numbers, major.minor.patch, where the project author increments:
major when they make incompatible API changes,
minor when they add functionality in a backwards-compatible manner, and
patch, when they make backwards-compatible bug fixes.