Before creating a new release please do a careful consideration about the version number for the new release. We are following Semantic Versioning and PEP440.
-
Install twine for pypi package uploads and update setuptools, pipenv and wheel packages
python3 -m pip install --user --upgrade twine setuptools wheel pipenv
-
Fetch upstream changes and create release branch
git fetch upstream git checkout -b create-new-release upstream/master
-
Open gvmtools/init.py and increment the version number.
-
Update CHANGELOG.md
-
Create a source and wheel distribution
rm -rf dist build python_gvm.egg-info pipenv install pipenv run python setup.py sdist bdist_wheel
-
Create a git commit
git add . git commit -m "Prepare release <version>"
-
Create an account at Test PyPI
-
Upload the archives in dist to Test PyPI
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
-
Check if the package is available at https://test.pypi.org/project/gvm-tools
-
Create a test directory
mkdir gvm-tools-install-test cd gvm-tools-install-test pipenv run pip install --pre -I --extra-index-url https://test.pypi.org/simple/ gvm-tools
-
Check install version with a python script
pipenv run python -c "from gvmtools import get_version; print(get_version())"
-
Remove test environment
pipenv --rm cd .. rm -rf gvm-tools-install-test
-
Create an account at PyPI if not exist already
-
Upload to real PyPI
twine upload dist/*
-
Check if new version is available at https://pypi.org/project/gvm-tools
-
Create a git tag
git tag v<version>
or even signed with your gpg key
git tag -s v<version>
-
Update version in gvmtools/init.py
Use a development version like
(1, 0, 0, 'beta', 1, 'dev', 1)
or(1, 1, 0, 'dev', 1)
-
Create a commit
git commit -m "Update version after <version> release"
-
Push changes and tag to Github
git push --tags upstream master
-
Create a Github release