== Release instructions * Create a release branch: $ git checkout -b release/x.y.z * Update the version in pyproject.toml and fido/__init__.py and make sure the NEWS file has an entry for it, and the correct release date. * Commit the changes, and push the new branch. $ git push -u origin release/x.y.z * Wait for CI to complete, and make sure nothing fails. * Create a signed tag using the version number as name: $ git tag -s -m x.y.z x.y.z * Build the release: $ poetry build * Sign the release: $ gpg --detach-sign -a dist/fido2-x.y.z.tar.gz $ gpg --detach-sign -a dist/fido2-x.y.z-py3-none-any.whl * Upload the release to PyPI: $ poetry publish * Add the .tar.gz, the .whl and .sig files to a new Github release, using the latest NEWS entry as description. * Merge and delete the release branch, and push the tag: $ git checkout main $ git merge --ff release/x.y.z $ git branch -d release/x.y.z $ git push && git push --tags $ git push origin :release/x.y.z * Bump the version number by incrementing the PATCH version and appending -dev.0 in pyproject.toml and fido2/__init__.py and add a new entry (unreleased) to the NEWS file. # pyproject.toml: version = "x.y.q-dev.0" # fido2/__init__.py: __version__ = 'x.y.q-dev.0' * Commit and push the change: $ git commit -a -m "Bump version." && git push