diff --git a/CHANGES.md b/CHANGES.md
index b512d9ff3f4a352e789730e043f1d9d5f9cc2a9d..6533249281452916293fb1c1cda852be483507e6 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+Synapse 1.39.0 (2021-07-29)
+===========================
+
+No significant changes.
+
+
 Synapse 1.39.0rc3 (2021-07-28)
 ==============================
 
@@ -19,10 +25,7 @@ Internal Changes
 Synapse 1.39.0rc2 (2021-07-22)
 ==============================
 
-Bugfixes
---------
-
-- Always include `device_one_time_keys_count` key in `/sync` response to work around a bug in Element Android that broke encryption for new devices. ([\#10457](https://github.com/matrix-org/synapse/issues/10457))
+This release also includes the changes in v1.38.1.
 
 
 Internal Changes
diff --git a/debian/changelog b/debian/changelog
index 4944e5571413404fb278c3a9f2dd22a150af5373..c8e6fa15fe227c5ceab0b190364a6411a7f5e467 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.39.0) stable; urgency=medium
+
+  * New synapse release 1.39.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Thu, 29 Jul 2021 09:59:00 +0100
+
 matrix-synapse-py3 (1.39.0~rc3) stable; urgency=medium
 
   * New synapse release 1.39.0~rc3.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index c9a445c8fe47969742d6f1b52e7400c8398fdff3..5da6c924fcecc32091e5a9f30a6ed57a6efaf00e 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -47,7 +47,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.39.0rc3"
+__version__ = "1.39.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