diff --git a/CHANGES.md b/CHANGES.md
index ba45fe0156400b7f485bfcf55c77fb563251c266..bcc834021041587f582ef267fb627949d94f078e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,63 @@
+# Synapse 1.118.0 (2024-10-29)
+
+No significant changes since 1.118.0rc1.
+
+### Python 3.8 support will be dropped in the next release
+
+Python 3.8 is now [end-of-life](https://devguide.python.org/versions/). As per our [Deprecation Policy for Platform Dependencies](https://element-hq.github.io/synapse/latest/deprecation_policy.html#policy), Synapse will be dropping support for Python 3.8 in the next release; Synapse 1.119.0.
+
+Synapse 1.118.x will be the final release to support Python 3.8. If you are running Synapse with Python 3.8, please upgrade before the 1.119.0 release, due in less than one month.
+
+### Python 3.13 and PostgreSQL 17 support
+
+On the other end of the spectrum, Synapse 1.118.0 is the first release to support [Python 3.13](https://www.python.org/downloads/release/python-3130/)! [PostgreSQL 17](https://www.postgresql.org/about/news/postgresql-17-released-2936/) is also supported as of this release.
+
+
+# Synapse 1.118.0rc1 (2024-10-22)
+
+### Features
+
+- Added the `display_name_claim` option to the JWT configuration. This option allows specifying the claim key that contains the user's display name in the JWT payload. ([\#17708](https://github.com/element-hq/synapse/issues/17708))
+- Implement [MSC4210](https://github.com/matrix-org/matrix-spec-proposals/pull/4210): Remove legacy mentions. Contributed by @tulir @ Beeper. ([\#17783](https://github.com/element-hq/synapse/issues/17783))
+
+### Bugfixes
+
+- Fix saving of PNG thumbnails, when the original image is in the CMYK color space. ([\#17736](https://github.com/element-hq/synapse/issues/17736))
+- Fix bug with sliding sync where the server would not return state that was added to the `required_state` config. ([\#17785](https://github.com/element-hq/synapse/issues/17785), [\#17805](https://github.com/element-hq/synapse/issues/17805))
+- Fix a bug in [MSC4186](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) Sliding Sync that would cause rooms to stay forgotten and hidden even after rejoining. ([\#17835](https://github.com/element-hq/synapse/issues/17835))
+
+### Improved Documentation
+
+- Clarify when the `user_may_invite` and `user_may_send_3pid_invite` module callbacks are called. ([\#17627](https://github.com/element-hq/synapse/issues/17627))
+- Correct documentation to refer to the `--config-path` argument instead of `--config-file`. ([\#17802](https://github.com/element-hq/synapse/issues/17802))
+- Fix typo in `target_cache_memory_usage` docs. ([\#17825](https://github.com/element-hq/synapse/issues/17825))
+
+### Internal Changes
+
+- Slight optimization when fetching state/events for Sliding Sync. ([\#17718](https://github.com/element-hq/synapse/issues/17718))
+- Add Python 3.13 and Postgres 17 to the test matrix. ([\#17752](https://github.com/element-hq/synapse/issues/17752))
+- Test github token before running release script steps. ([\#17803](https://github.com/element-hq/synapse/issues/17803))
+- Build debian packages for new Ubuntu versions, and stop building for no longer supported versions. ([\#17824](https://github.com/element-hq/synapse/issues/17824))
+- Enable the `.org.matrix.msc4028.encrypted_event` push rule by default in accordance with [MSC4028](https://github.com/matrix-org/matrix-spec-proposals/pull/4028). Note that the corresponding experimental feature must still be switched on for this push rule to have any effect. ([\#17826](https://github.com/element-hq/synapse/issues/17826))
+- Fix some typing issues uncovered by upgrading mypy to 1.11.x. ([\#17842](https://github.com/element-hq/synapse/issues/17842))
+
+
+
+### Updates to locked dependencies
+
+* Bump mypy from 1.10.1 to 1.11.2. ([\#17842](https://github.com/element-hq/synapse/issues/17842))
+* Bump mypy-zope from 1.0.5 to 1.0.7. ([\#17827](https://github.com/element-hq/synapse/issues/17827))
+* Bump phonenumbers from 8.13.46 to 8.13.47. ([\#17797](https://github.com/element-hq/synapse/issues/17797))
+* Bump psycopg2 from 2.9.9 to 2.9.10. ([\#17843](https://github.com/element-hq/synapse/issues/17843))
+* Bump ruff from 0.6.8 to 0.6.9. ([\#17794](https://github.com/element-hq/synapse/issues/17794))
+* Bump sentry-sdk from 2.14.0 to 2.15.0. ([\#17795](https://github.com/element-hq/synapse/issues/17795))
+* Bump sentry-sdk from 2.15.0 to 2.16.0. ([\#17829](https://github.com/element-hq/synapse/issues/17829))
+* Bump sentry-sdk from 2.16.0 to 2.17.0. ([\#17844](https://github.com/element-hq/synapse/issues/17844))
+* Bump sigstore/cosign-installer from 3.6.0 to 3.7.0. ([\#17798](https://github.com/element-hq/synapse/issues/17798))
+* Bump tomli from 2.0.1 to 2.0.2. ([\#17796](https://github.com/element-hq/synapse/issues/17796))
+* Bump types-requests from 2.32.0.20240914 to 2.32.0.20241016. ([\#17841](https://github.com/element-hq/synapse/issues/17841))
+* Bump types-setuptools from 75.1.0.20240917 to 75.1.0.20241014. ([\#17828](https://github.com/element-hq/synapse/issues/17828))
+
 # Synapse 1.117.0 (2024-10-15)
 
 No significant changes since 1.117.0rc1.
diff --git a/changelog.d/17627.doc b/changelog.d/17627.doc
deleted file mode 100644
index 487a0aea0dac80d8f51ed6e736a90645a07aa5eb..0000000000000000000000000000000000000000
--- a/changelog.d/17627.doc
+++ /dev/null
@@ -1 +0,0 @@
-Clarify when the `user_may_invite` and `user_may_send_3pid_invite` module callbacks are called.
\ No newline at end of file
diff --git a/changelog.d/17708.feature b/changelog.d/17708.feature
deleted file mode 100644
index 90ec810f50da890a7ce9de7fe229b2399f4c1db9..0000000000000000000000000000000000000000
--- a/changelog.d/17708.feature
+++ /dev/null
@@ -1 +0,0 @@
-Added the `display_name_claim` option to the JWT configuration. This option allows specifying the claim key that contains the user's display name in the JWT payload.
\ No newline at end of file
diff --git a/changelog.d/17718.misc b/changelog.d/17718.misc
deleted file mode 100644
index ea73a03f537c737b19f3dac6f5f0aa926172897d..0000000000000000000000000000000000000000
--- a/changelog.d/17718.misc
+++ /dev/null
@@ -1 +0,0 @@
-Slight optimization when fetching state/events for Sliding Sync.
diff --git a/changelog.d/17736.bugfix b/changelog.d/17736.bugfix
deleted file mode 100644
index 0d3fd06962ceaddd2d24cc9d4f8c75373332849d..0000000000000000000000000000000000000000
--- a/changelog.d/17736.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix saving of PNG thumbnails, when the original image is in the CMYK color space.
diff --git a/changelog.d/17752.misc b/changelog.d/17752.misc
deleted file mode 100644
index f9f01a424203471644a3997cadcd94eec7998739..0000000000000000000000000000000000000000
--- a/changelog.d/17752.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add Python 3.13 and Postgres 17 to the test matrix.
diff --git a/changelog.d/17783.feature b/changelog.d/17783.feature
deleted file mode 100644
index ce8c2164185ccaa992cc53425d17f952bdf298a6..0000000000000000000000000000000000000000
--- a/changelog.d/17783.feature
+++ /dev/null
@@ -1 +0,0 @@
-Implement [MSC4210](https://github.com/matrix-org/matrix-spec-proposals/pull/4210): Remove legacy mentions. Contributed by @tulir @ Beeper.
diff --git a/changelog.d/17785.bugfix b/changelog.d/17785.bugfix
deleted file mode 100644
index df2898f54e3694d91cc0999b5517da2611532693..0000000000000000000000000000000000000000
--- a/changelog.d/17785.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug with sliding sync where the server would not return state that was added to the `required_state` config.
diff --git a/changelog.d/17802.doc b/changelog.d/17802.doc
deleted file mode 100644
index 72e653d3c4a4481fc87d1e32c204e2c4d44804ac..0000000000000000000000000000000000000000
--- a/changelog.d/17802.doc
+++ /dev/null
@@ -1 +0,0 @@
-Correct documentation to refer to the `--config-path` argument instead of `--config-file`.
diff --git a/changelog.d/17803.misc b/changelog.d/17803.misc
deleted file mode 100644
index a267df8b83cdb27f79366ef058ea4744eeae28ca..0000000000000000000000000000000000000000
--- a/changelog.d/17803.misc
+++ /dev/null
@@ -1 +0,0 @@
-Test github token before running release script steps.
diff --git a/changelog.d/17805.bugfix b/changelog.d/17805.bugfix
deleted file mode 100644
index df2898f54e3694d91cc0999b5517da2611532693..0000000000000000000000000000000000000000
--- a/changelog.d/17805.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug with sliding sync where the server would not return state that was added to the `required_state` config.
diff --git a/changelog.d/17824.misc b/changelog.d/17824.misc
deleted file mode 100644
index 22574f00ec3928ed7fb27869d0f799da233737cb..0000000000000000000000000000000000000000
--- a/changelog.d/17824.misc
+++ /dev/null
@@ -1 +0,0 @@
-Build debian packages for new Ubuntu versions, and stop building for no longer supported versions.
diff --git a/changelog.d/17825.doc b/changelog.d/17825.doc
deleted file mode 100644
index ee43667417588a6618e62ae01c864d7edcaa9941..0000000000000000000000000000000000000000
--- a/changelog.d/17825.doc
+++ /dev/null
@@ -1 +0,0 @@
-Fix typo in `target_cache_memory_usage` docs.
\ No newline at end of file
diff --git a/changelog.d/17826.misc b/changelog.d/17826.misc
deleted file mode 100644
index 9148c96a0d4e5bc55d1e70aa174a236629954907..0000000000000000000000000000000000000000
--- a/changelog.d/17826.misc
+++ /dev/null
@@ -1 +0,0 @@
-Enable the `.org.matrix.msc4028.encrypted_event` push rule by default in accordance with [MSC4028](https://github.com/matrix-org/matrix-spec-proposals/pull/4028). Note that the corresponding experimental feature must still be switched on for this push rule to have any effect.
\ No newline at end of file
diff --git a/changelog.d/17835.bugfix b/changelog.d/17835.bugfix
deleted file mode 100644
index b970598c35467e097655370a5b28355d1be2dc0b..0000000000000000000000000000000000000000
--- a/changelog.d/17835.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug in [MSC4186](https://github.com/matrix-org/matrix-spec-proposals/pull/4186) Sliding Sync that would cause rooms to stay forgotten and hidden even after rejoining.
diff --git a/changelog.d/17842.misc b/changelog.d/17842.misc
deleted file mode 100644
index 78af706c31b50a464c7ea2f765a646d04d97a06f..0000000000000000000000000000000000000000
--- a/changelog.d/17842.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix some typing issues uncovered by upgrading mypy to 1.11.x.
diff --git a/debian/changelog b/debian/changelog
index 1995fbf6f63e11a31124649ac3cd1b191134f062..384887888fba5cd3581a9949c6f05af97fd25001 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+matrix-synapse-py3 (1.118.0) stable; urgency=medium
+
+  * New Synapse release 1.118.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Tue, 29 Oct 2024 15:29:53 +0100
+
+matrix-synapse-py3 (1.118.0~rc1) stable; urgency=medium
+
+  * New Synapse release 1.118.0rc1.
+
+ -- Synapse Packaging team <packages@matrix.org>  Tue, 22 Oct 2024 11:48:14 +0100
+
 matrix-synapse-py3 (1.117.0) stable; urgency=medium
 
   * New Synapse release 1.117.0.
diff --git a/pyproject.toml b/pyproject.toml
index 658771a89afd96dda10fb43cf63c829d45f97b9f..5af9a4145bfcc51482415bf8ff6d974355555f9c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -97,7 +97,7 @@ module-name = "synapse.synapse_rust"
 
 [tool.poetry]
 name = "matrix-synapse"
-version = "1.117.0"
+version = "1.118.0"
 description = "Homeserver for the Matrix decentralised comms protocol"
 authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
 license = "AGPL-3.0-or-later"