diff --git a/CHANGES.md b/CHANGES.md
index d71ab4a9d5eb615a78272e084a4d594ba3725329..a435d9c59251ea484e8fefab5e9dbb063c44b9be 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+Synapse 1.47.0 (2021-11-17)
+===========================
+
+No significant changes since 1.47.0rc3.
+
+
 Synapse 1.47.0rc3 (2021-11-16)
 ==============================
 
diff --git a/debian/changelog b/debian/changelog
index 2acd0de3f52467f833b31698e438b27ed43fc52e..ba75d0b2517f24de499ebe27d045cdfd261283d8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.47.0) stable; urgency=medium
+
+  * New synapse release 1.47.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Wed, 17 Nov 2021 13:09:43 +0000
+
 matrix-synapse-py3 (1.47.0~rc3) stable; urgency=medium
 
   * New synapse release 1.47.0~rc3.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 3b5878b9128a12ac21f30a23eb6e95c063479232..aa964afb5e68cc4e6dd035dd3c9f2dc47a59036a 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -47,7 +47,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.47.0rc3"
+__version__ = "1.47.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