diff --git a/.bumpversion.cfg b/.bumpversion.cfg
index dae4be2f4..93934786e 100644
--- a/.bumpversion.cfg
+++ b/.bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
-current_version = 1.15.5
+current_version = 1.16.0
commit = True
tag = True
tag_name = {new_version}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7f670f994..322cd801e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
+## 1.16.0
+### Fixed
+- Avoid potentially empty `
` on the profile page.
+
+### Changed
+- Upgraded minimal webauthn dependency to 2.0 (which also removes a deprecation
+ warning) (#634, #701). Note the ``pydantic`` dependency was removed in
+ webauthn 2.
+- Logout example uses POST method to match recent Django behavior.
+- Updated translations.
+
+### Added
+- Support confirmation for Django 5.0 and Python 3.12.
+- A new `main_form_content` template block on login template allows for easier
+ overridability.
+
## 1.15.5
### Fixed
- Include transitively replaced migrations in phonenumber migration.
diff --git a/docs/conf.py b/docs/conf.py
index df684b9e6..7329bb197 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -59,7 +59,7 @@
#
# The full version, including alpha/beta/rc tags.
-release = '1.15.5'
+release = '1.16.0'
# The short X.Y version.
version = '.'.join(release.split('.')[0:2])
diff --git a/setup.py b/setup.py
index 183ca6a8b..2c345c0a9 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@
setup(
name='django-two-factor-auth',
- version='1.15.5',
+ version='1.16.0',
description='Complete Two-Factor Authentication for Django',
long_description=open('README.rst', encoding='utf-8').read(),
author='Bouke Haarsma',