diff --git a/CHANGES.md b/CHANGES.md
index dfdd8aa68a3b28478b6bfaa37cd3032de6f578b9..f94886950141a2c48ee19e82a727805651bd1276 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+Synapse 1.21.0 (2020-10-12)
+===========================
+
+No significant changes since v1.21.0rc3.
+
+
 Synapse 1.21.0rc3 (2020-10-08)
 ==============================
 
diff --git a/debian/changelog b/debian/changelog
index 264ef9ce7cc3fe9b4dc06993ecdbabf230cac618..a08782f587dac771c434a89dee0c299d0859ebcb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.21.0) stable; urgency=medium
+
+  * New synapse release 1.21.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Mon, 12 Oct 2020 15:47:44 +0100
+
 matrix-synapse-py3 (1.20.1) stable; urgency=medium
 
   * New synapse release 1.20.1.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index a86dc07ddc9d848fcf9fc1a7322b62521158aa78..57f818125a81b371644b2adc71161d2ebb55ea41 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -48,7 +48,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.21.0rc3"
+__version__ = "1.21.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