diff --git a/CHANGES.md b/CHANGES.md
index c216d288180c438dbf450d647e2990834554e317..e68d3154abcde0cd5d4f1764c72855e4e77e804a 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,12 @@
+Synapse 1.28.0 (2021-02-25)
+===========================
+
+Internal Changes
+----------------
+
+- Revert change in v1.28.0rc1 to remove the deprecated SAML endpoint. ([\#9474](https://github.com/matrix-org/synapse/issues/9474))
+
+
 Synapse 1.28.0rc1 (2021-02-19)
 ==============================
 
diff --git a/changelog.d/9474.misc b/changelog.d/9474.misc
deleted file mode 100644
index 1b9a235292c7f3dee61e82b333a05364ad0cdb78..0000000000000000000000000000000000000000
--- a/changelog.d/9474.misc
+++ /dev/null
@@ -1 +0,0 @@
-Revert change in v1.28.0rc1 to remove the deprecated SAML endpoint.
diff --git a/debian/changelog b/debian/changelog
index aa83d4e13e83dc10616c15dfee41c918b02cd4ee..642e4d381d2427519d8d3b96db5bf868c659323c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.28.0) stable; urgency=medium
+
+  * New synapse release 1.28.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Thu, 25 Feb 2021 10:21:57 +0000
+
 matrix-synapse-py3 (1.27.0) stable; urgency=medium
 
   [ Dan Callahan ]
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 2e70f46186a40fb724b3513a83b036f4e4a464f1..869e860fb045eeec56e6468ba5143531a33ec9bc 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -48,7 +48,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.28.0rc1"
+__version__ = "1.28.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