diff --git a/CHANGES.md b/CHANGES.md
index ff84a556ad..27483532d0 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,10 +1,27 @@
-Synapse 1.31.0rc1 (2021-03-30)
-==============================
+Synapse 1.31.0 (2021-04-06)
+===========================
-**Note:** As announced in v1.25.0, and in line with the deprecation policy for platform dependencies, this is the last release to support Python 3.5 and PostgreSQL 9.5. Future versions of Synapse will require Python 3.6+ and PostgreSQL 9.6+.
+**Note:** As announced in v1.25.0, and in line with the deprecation policy for platform dependencies, this is the last release to support Python 3.5 and PostgreSQL 9.5. Future versions of Synapse will require Python 3.6+ and PostgreSQL 9.6+, as per our [deprecation policy](docs/deprecation_policy.md).
This is also the last release that the Synapse team will be publishing packages for Debian Stretch and Ubuntu Xenial.
+
+Improved Documentation
+----------------------
+
+- Add a document describing the deprecation policy for platform dependencies. ([\#9723](https://github.com/matrix-org/synapse/issues/9723))
+
+
+Internal Changes
+----------------
+
+- Revert using `dmypy run` in lint script. ([\#9720](https://github.com/matrix-org/synapse/issues/9720))
+- Pin flake8-bugbear's version. ([\#9734](https://github.com/matrix-org/synapse/issues/9734))
+
+
+Synapse 1.31.0rc1 (2021-03-30)
+==============================
+
Features
--------
diff --git a/changelog.d/9720.misc b/changelog.d/9720.misc
deleted file mode 100644
index 9dd0bc9cff..0000000000
--- a/changelog.d/9720.misc
+++ /dev/null
@@ -1 +0,0 @@
-Revert using `dmypy run` in lint script.
diff --git a/changelog.d/9723.doc b/changelog.d/9723.doc
deleted file mode 100644
index 2bfc9a4ca6..0000000000
--- a/changelog.d/9723.doc
+++ /dev/null
@@ -1 +0,0 @@
-Add a document describing the deprecation policy for platform dependencies.
diff --git a/changelog.d/9734.misc b/changelog.d/9734.misc
deleted file mode 100644
index 20ed9a06a9..0000000000
--- a/changelog.d/9734.misc
+++ /dev/null
@@ -1 +0,0 @@
-Pin flake8-bugbear's version.
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
index 18dc04cd82..09602ff54b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.31.0) stable; urgency=medium
+
+ * New synapse release 1.31.0.
+
+ -- Synapse Packaging team <packages@matrix.org> Tue, 06 Apr 2021 13:08:29 +0100
+
matrix-synapse-py3 (1.30.1) stable; urgency=medium
* New synapse release 1.30.1.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 419299bf01..1d2883acf6 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -48,7 +48,7 @@ try:
except ImportError:
pass
-__version__ = "1.31.0rc1"
+__version__ = "1.31.0"
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
# We import here so that we don't have to install a bunch of deps when
|