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 gvm/init.py and increment the version number.
-
Update CHANGELOG.md
- Change [unreleased] to new release version
- Add a release date
- Update reference to Github diff
-
Create a source and wheel distribution
rm -rf dist build python_gvm.egg-info python3 setup.py sdist bdist_wheel
-
Create a git commit
git add . git commit -m "Prepare release <version>"
-
Create a pypi configuration file
vim ~/.pypirc
with the following content (Note:
<username>
must be replaced)[distutils] index-servers = pypi testpypi [pypi] username = <username> [testpypi] repository = https://test.pypi.org/legacy/ username = <username>
-
Create an account at Test PyPI
-
Upload the archives in dist to Test PyPI
twine upload -r testpypi dist/*
-
Check if the package is available at https://test.pypi.org/project/python-gvm
-
Create a test directory
mkdir python-gvm-install-test cd python-gvm-install-test pipenv run pip install --pre -I --extra-index-url https://test.pypi.org/simple/ python-gvm
-
Check install version with a python script
pipenv run python -c "from gvm import get_version; print(get_version())"
-
Remove test environment
pipenv --rm cd .. rm -rf python-gvm-install-test
-
Create a release PR
git push origin
Open GitHub and create a PR against https://github.com/greenbone/python-gvm
-
Update after PR is merged
git fetch upstream git rebase upstream/master
-
Create a git tag
git tag v<version>
or even signed with your gpg key
git tag -s v<version>
-
Create final distribution files
rm -rf dist build python_gvm.egg-info python3 setup.py sdist bdist_wheel
-
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/python-gvm
-
Update version in gvm/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