diff --git a/CHANGES.md b/CHANGES.md
index 81333097aeb171bb050c00a62976a95bc0ef9959..0a87f5cd42a7f2199af91a16e4ec9a2c6680f70c 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,102 @@
+Synapse 1.54.0rc1 (2022-03-02)
+==============================
+
+Please note that this will be the last release of Synapse that is compatible with Mjolnir 1.3.1 and earlier.
+Administrators of servers which have the Mjolnir module installed are advised to upgrade Mjolnir to version 1.3.2 or later.
+
+
+Features
+--------
+
+- Add support for [MSC3202](https://github.com/matrix-org/matrix-doc/pull/3202): sending one-time key counts and fallback key usage states to Application Services. ([\#11617](https://github.com/matrix-org/synapse/issues/11617))
+- Improve the generated URL previews for some web pages. Contributed by @AndrewRyanChama. ([\#11985](https://github.com/matrix-org/synapse/issues/11985))
+- Track cache invalidations in Prometheus metrics, as already happens for cache eviction based on size or time. ([\#12000](https://github.com/matrix-org/synapse/issues/12000))
+- Implement experimental support for [MSC3720](https://github.com/matrix-org/matrix-doc/pull/3720) (account status endpoints). ([\#12001](https://github.com/matrix-org/synapse/issues/12001), [\#12067](https://github.com/matrix-org/synapse/issues/12067))
+- Enable modules to set a custom display name when registering a user. ([\#12009](https://github.com/matrix-org/synapse/issues/12009))
+- Advertise Matrix 1.1 and 1.2 support on `/_matrix/client/versions`. ([\#12020](https://github.com/matrix-org/synapse/issues/12020), ([\#12022](https://github.com/matrix-org/synapse/issues/12022))
+- Support only the stable identifier for [MSC3069](https://github.com/matrix-org/matrix-doc/pull/3069)'s `is_guest` on `/_matrix/client/v3/account/whoami`. ([\#12021](https://github.com/matrix-org/synapse/issues/12021))
+- Use room version 9 as the default room version (per [MSC3589](https://github.com/matrix-org/matrix-doc/pull/3589)). ([\#12058](https://github.com/matrix-org/synapse/issues/12058))
+- Add module callbacks to react to user deactivation status changes (i.e. deactivations and reactivations) and profile updates. ([\#12062](https://github.com/matrix-org/synapse/issues/12062))
+
+
+Bugfixes
+--------
+
+- Fix a bug introduced in Synapse 1.48.0 where an edit of the latest event in a thread would not be properly applied to the thread summary. ([\#11992](https://github.com/matrix-org/synapse/issues/11992))
+- Fix long-standing bug where the `get_rooms_for_user` cache was not correctly invalidated for remote users when the server left a room. ([\#11999](https://github.com/matrix-org/synapse/issues/11999))
+- Fix a 500 error with Postgres when looking backwards with the [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030) `/timestamp_to_event?dir=b` endpoint. ([\#12024](https://github.com/matrix-org/synapse/issues/12024))
+- Properly fix a long-standing bug where wrong data could be inserted into the `event_search` table when using SQLite. This could block running `synapse_port_db` with an `argument of type 'int' is not iterable` error. This bug was partially fixed by a change in Synapse 1.44.0. ([\#12037](https://github.com/matrix-org/synapse/issues/12037))
+- Fix slow performance of `/logout` in some cases where refresh tokens are in use. The slowness existed since the initial implementation of refresh tokens in version 1.38.0. ([\#12056](https://github.com/matrix-org/synapse/issues/12056))
+- Fix a long-standing bug where Synapse would make additional failing requests over federation for missing data. ([\#12077](https://github.com/matrix-org/synapse/issues/12077))
+- Fix occasional `Unhandled error in Deferred` error message. ([\#12089](https://github.com/matrix-org/synapse/issues/12089))
+- Fix a bug introduced in Synapse 1.51.0 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`. ([\#12098](https://github.com/matrix-org/synapse/issues/12098))
+- Fix a long-standing bug which could cause push notifications to malfunction if `use_frozen_dicts` was set in the configuration. ([\#12100](https://github.com/matrix-org/synapse/issues/12100))
+- Fix an extremely rare, long-standing bug in `ReadWriteLock` that would cause an error when a newly unblocked writer completes instantly. ([\#12105](https://github.com/matrix-org/synapse/issues/12105))
+- Make a `POST` to `/rooms/<room_id>/receipt/m.read/<event_id>` only trigger a push notification if the count of unread messages is different to the one in the last successfully sent push. This reduces server load and load on the receiving device. ([\#11835](https://github.com/matrix-org/synapse/issues/11835))
+
+
+Updates to the Docker image
+---------------------------
+
+- The Docker image no longer automatically creates a temporary volume at `/data`. This is not expected to affect normal usage. ([\#11997](https://github.com/matrix-org/synapse/issues/11997))
+- Use Python 3.9 in Docker images by default. ([\#12112](https://github.com/matrix-org/synapse/issues/12112))
+
+
+Improved Documentation
+----------------------
+
+- Document support for the `to_device`, `account_data`, `receipts`, and `presence` stream writers for workers. ([\#11599](https://github.com/matrix-org/synapse/issues/11599))
+- Explain the meaning of spam checker callbacks' return values. ([\#12003](https://github.com/matrix-org/synapse/issues/12003))
+- Clarify information about external Identity Provider IDs. ([\#12004](https://github.com/matrix-org/synapse/issues/12004))
+
+
+Deprecations and Removals
+-------------------------
+
+- Deprecate using `synctl` with the config option `synctl_cache_factor` and print a warning if a user still uses this option. ([\#11865](https://github.com/matrix-org/synapse/issues/11865))
+- Remove support for the legacy structured logging configuration (please see the the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#legacy-structured-logging-configuration-removal) if you are using `structured: true` in the Synapse configuration). ([\#12008](https://github.com/matrix-org/synapse/issues/12008))
+- Drop support for [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283) unstable flags now that the stable flags are supported. ([\#12018](https://github.com/matrix-org/synapse/issues/12018))
+- Remove the unstable `/spaces` endpoint from [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946). ([\#12073](https://github.com/matrix-org/synapse/issues/12073))
+
+
+Internal Changes
+----------------
+
+- Make the `get_room_version` method use `get_room_version_id` to benefit from caching. ([\#11808](https://github.com/matrix-org/synapse/issues/11808))
+- Remove unnecessary condition on knock -> leave auth rule check. ([\#11900](https://github.com/matrix-org/synapse/issues/11900))
+- Add tests for device list changes between local users. ([\#11972](https://github.com/matrix-org/synapse/issues/11972))
+- Optimise calculating `device_list` changes in `/sync`. ([\#11974](https://github.com/matrix-org/synapse/issues/11974))
+- Add missing type hints to storage classes. ([\#11984](https://github.com/matrix-org/synapse/issues/11984))
+- Refactor the search code for improved readability. ([\#11991](https://github.com/matrix-org/synapse/issues/11991))
+- Move common deduplication code down into `_auth_and_persist_outliers`. ([\#11994](https://github.com/matrix-org/synapse/issues/11994))
+- Limit concurrent joins from applications services. ([\#11996](https://github.com/matrix-org/synapse/issues/11996))
+- Preparation for faster-room-join work: when parsing the `send_join` response, get the `m.room.create` event from `state`, not `auth_chain`. ([\#12005](https://github.com/matrix-org/synapse/issues/12005), [\#12039](https://github.com/matrix-org/synapse/issues/12039))
+- Preparation for faster-room-join work: parse MSC3706 fields in send_join response. ([\#12011](https://github.com/matrix-org/synapse/issues/12011))
+- Preparation for faster-room-join work: persist information on which events and rooms have partial state to the database. ([\#12012](https://github.com/matrix-org/synapse/issues/12012))
+- Preparation for faster-room-join work: Support for calling `/federation/v1/state` on a remote server. ([\#12013](https://github.com/matrix-org/synapse/issues/12013))
+- Configure `tox` to use `venv` rather than `virtualenv`. ([\#12015](https://github.com/matrix-org/synapse/issues/12015))
+- Fix bug in `StateFilter.return_expanded()` and add some tests. ([\#12016](https://github.com/matrix-org/synapse/issues/12016))
+- Use Matrix v1.1 endpoints (`/_matrix/client/v3/auth/...`) in fallback auth HTML forms. ([\#12019](https://github.com/matrix-org/synapse/issues/12019))
+- Update the `olddeps` CI job to use an old version of `markupsafe`. ([\#12025](https://github.com/matrix-org/synapse/issues/12025))
+- Upgrade Mypy to version 0.931. ([\#12030](https://github.com/matrix-org/synapse/issues/12030))
+- Remove legacy `HomeServer.get_datastore()`. ([\#12031](https://github.com/matrix-org/synapse/issues/12031), [\#12070](https://github.com/matrix-org/synapse/issues/12070))
+- Minor typing fixes. ([\#12034](https://github.com/matrix-org/synapse/issues/12034), [\#12069](https://github.com/matrix-org/synapse/issues/12069))
+- After joining a room, create a dedicated logcontext to process the queued events. ([\#12041](https://github.com/matrix-org/synapse/issues/12041))
+- Tidy up GitHub Actions config which builds distributions for PyPI. ([\#12051](https://github.com/matrix-org/synapse/issues/12051))
+- Move configuration out of `setup.cfg`. ([\#12052](https://github.com/matrix-org/synapse/issues/12052), [\#12059](https://github.com/matrix-org/synapse/issues/12059))
+- Fix error message when a worker process fails to talk to another worker process. ([\#12060](https://github.com/matrix-org/synapse/issues/12060))
+- Fix using the `complement.sh` script without specifying a directory or a branch. Contributed by Nico on behalf of Famedly. ([\#12063](https://github.com/matrix-org/synapse/issues/12063))
+- Add type hints to `tests/rest/client`. ([\#12066](https://github.com/matrix-org/synapse/issues/12066), [\#12072](https://github.com/matrix-org/synapse/issues/12072), [\#12084](https://github.com/matrix-org/synapse/issues/12084), [\#12094](https://github.com/matrix-org/synapse/issues/12094))
+- Add some logging to `/sync` to try and track down #11916. ([\#12068](https://github.com/matrix-org/synapse/issues/12068))
+- Inspect application dependencies using `importlib.metadata` or its backport. ([\#12088](https://github.com/matrix-org/synapse/issues/12088))
+- Use `assertEqual` instead of the deprecated `assertEquals` in test code. ([\#12092](https://github.com/matrix-org/synapse/issues/12092))
+- Move experimental support for [MSC3440](https://github.com/matrix-org/matrix-doc/pull/3440) to `/versions`. ([\#12099](https://github.com/matrix-org/synapse/issues/12099))
+- Add `stop_cancellation` utility function to stop `Deferred`s from being cancelled. ([\#12106](https://github.com/matrix-org/synapse/issues/12106))
+- Improve exception handling for concurrent execution. ([\#12109](https://github.com/matrix-org/synapse/issues/12109))
+- Advertise support for Python 3.10 in packaging files. ([\#12111](https://github.com/matrix-org/synapse/issues/12111))
+- Move CI checks out of tox, to facilitate a move to using poetry. ([\#12119](https://github.com/matrix-org/synapse/issues/12119))
+
+
 Synapse 1.53.0 (2022-02-22)
 ===========================
 
diff --git a/changelog.d/11599.doc b/changelog.d/11599.doc
deleted file mode 100644
index f07cfbef4e4c02de45c9739e02c295f58f9dd5cd..0000000000000000000000000000000000000000
--- a/changelog.d/11599.doc
+++ /dev/null
@@ -1 +0,0 @@
-Document support for the `to_device`, `account_data`, `receipts`, and `presence` stream writers for workers.
diff --git a/changelog.d/11617.feature b/changelog.d/11617.feature
deleted file mode 100644
index cf03f00e7c4d77bedd90a761e2e276661f9571d4..0000000000000000000000000000000000000000
--- a/changelog.d/11617.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services.
\ No newline at end of file
diff --git a/changelog.d/11808.misc b/changelog.d/11808.misc
deleted file mode 100644
index cdc5fc75b75b6da1cd7104cdc2d3e4c57b4b3da0..0000000000000000000000000000000000000000
--- a/changelog.d/11808.misc
+++ /dev/null
@@ -1 +0,0 @@
-Make method `get_room_version` use cached `get_room_version_id`.
diff --git a/changelog.d/11835.feature b/changelog.d/11835.feature
deleted file mode 100644
index 7cee39b08c714ae8e9e3c71d1d79827d7d59aa33..0000000000000000000000000000000000000000
--- a/changelog.d/11835.feature
+++ /dev/null
@@ -1 +0,0 @@
-Make a `POST` to `/rooms/<room_id>/receipt/m.read/<event_id>` only trigger a push notification if the count of unread messages is different to the one in the last successfully sent push.
diff --git a/changelog.d/11865.removal b/changelog.d/11865.removal
deleted file mode 100644
index 9fcabfc7200eeb64c4c686644a79ec550f11278d..0000000000000000000000000000000000000000
--- a/changelog.d/11865.removal
+++ /dev/null
@@ -1 +0,0 @@
-Deprecate using `synctl` with the config option `synctl_cache_factor` and print a warning if a user still uses this option.
diff --git a/changelog.d/11900.misc b/changelog.d/11900.misc
deleted file mode 100644
index edd2852fd49f26c4519f03ef67539f2bf024f1fc..0000000000000000000000000000000000000000
--- a/changelog.d/11900.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove unnecessary condition on knock->leave auth rule check.
\ No newline at end of file
diff --git a/changelog.d/11972.misc b/changelog.d/11972.misc
deleted file mode 100644
index 29c38bfd82558a79643a6548693aba844bb4e4aa..0000000000000000000000000000000000000000
--- a/changelog.d/11972.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add tests for device list changes between local users.
\ No newline at end of file
diff --git a/changelog.d/11974.misc b/changelog.d/11974.misc
deleted file mode 100644
index 1debad2361ee3f996dd055bb10e239f6e776248e..0000000000000000000000000000000000000000
--- a/changelog.d/11974.misc
+++ /dev/null
@@ -1 +0,0 @@
-Optimise calculating device_list changes in `/sync`.
diff --git a/changelog.d/11984.misc b/changelog.d/11984.misc
deleted file mode 100644
index 8e405b92267408485277d2d8779f12f85dc2018a..0000000000000000000000000000000000000000
--- a/changelog.d/11984.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add missing type hints to storage classes.
\ No newline at end of file
diff --git a/changelog.d/11985.feature b/changelog.d/11985.feature
deleted file mode 100644
index 120d888a4914a5d91b55d0519b3e6ac01ab30b30..0000000000000000000000000000000000000000
--- a/changelog.d/11985.feature
+++ /dev/null
@@ -1 +0,0 @@
-Fetch images when previewing Twitter URLs. Contributed by @AndrewRyanChama.
diff --git a/changelog.d/11991.misc b/changelog.d/11991.misc
deleted file mode 100644
index 34a3b3a6b9df88fec0f1cbb08ed7ddf7307bb823..0000000000000000000000000000000000000000
--- a/changelog.d/11991.misc
+++ /dev/null
@@ -1 +0,0 @@
-Refactor the search code for improved readability.
diff --git a/changelog.d/11992.bugfix b/changelog.d/11992.bugfix
deleted file mode 100644
index f73c86bb2598e2c2d69b5200e7de76ec2d37b41e..0000000000000000000000000000000000000000
--- a/changelog.d/11992.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in Synapse v1.48.0 where an edit of the latest event in a thread would not be properly applied to the thread summary.
diff --git a/changelog.d/11994.misc b/changelog.d/11994.misc
deleted file mode 100644
index d64297dd78f07d1681598cec76361350e583acb8..0000000000000000000000000000000000000000
--- a/changelog.d/11994.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move common deduplication code down into `_auth_and_persist_outliers`.
diff --git a/changelog.d/11996.misc b/changelog.d/11996.misc
deleted file mode 100644
index 6c675fd1931cef79cf9c80778561622907985ded..0000000000000000000000000000000000000000
--- a/changelog.d/11996.misc
+++ /dev/null
@@ -1 +0,0 @@
-Limit concurrent joins from applications services.
\ No newline at end of file
diff --git a/changelog.d/11997.docker b/changelog.d/11997.docker
deleted file mode 100644
index 1b3271457eee8218c45c568b716ddd98d0fd2ff4..0000000000000000000000000000000000000000
--- a/changelog.d/11997.docker
+++ /dev/null
@@ -1 +0,0 @@
-The docker image no longer automatically creates a temporary volume at `/data`. This is not expected to affect normal usage.
diff --git a/changelog.d/11999.bugfix b/changelog.d/11999.bugfix
deleted file mode 100644
index fd8409590002d276f21aff19029f746344e78aa2..0000000000000000000000000000000000000000
--- a/changelog.d/11999.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix long standing bug where `get_rooms_for_user` was not correctly invalidated for remote users when the server left a room.
diff --git a/changelog.d/12000.feature b/changelog.d/12000.feature
deleted file mode 100644
index 246cc87f0bde13d285e4b9a38389b856118bd47d..0000000000000000000000000000000000000000
--- a/changelog.d/12000.feature
+++ /dev/null
@@ -1 +0,0 @@
-Track cache invalidations in Prometheus metrics, as already happens for cache eviction based on size or time.
diff --git a/changelog.d/12001.feature b/changelog.d/12001.feature
deleted file mode 100644
index dc1153c49ef4369bf749ba544a75ced8ef5d1ef0..0000000000000000000000000000000000000000
--- a/changelog.d/12001.feature
+++ /dev/null
@@ -1 +0,0 @@
-Implement experimental support for [MSC3720](https://github.com/matrix-org/matrix-doc/pull/3720) (account status endpoints).
diff --git a/changelog.d/12003.doc b/changelog.d/12003.doc
deleted file mode 100644
index 1ac8163559f2546e33df215dc3ef2543cd178e77..0000000000000000000000000000000000000000
--- a/changelog.d/12003.doc
+++ /dev/null
@@ -1 +0,0 @@
-Explain the meaning of spam checker callbacks' return values.
diff --git a/changelog.d/12004.doc b/changelog.d/12004.doc
deleted file mode 100644
index 0b4baef2103578f6469cc462869bb576e1626ff4..0000000000000000000000000000000000000000
--- a/changelog.d/12004.doc
+++ /dev/null
@@ -1 +0,0 @@
-Clarify information about external Identity Provider IDs.
diff --git a/changelog.d/12005.misc b/changelog.d/12005.misc
deleted file mode 100644
index 45e21dbe59534cf2e06221de76d541aed3fd00a0..0000000000000000000000000000000000000000
--- a/changelog.d/12005.misc
+++ /dev/null
@@ -1 +0,0 @@
-Preparation for faster-room-join work: when parsing the `send_join` response, get the `m.room.create` event from `state`, not `auth_chain`.
diff --git a/changelog.d/12008.removal b/changelog.d/12008.removal
deleted file mode 100644
index 57599d9ee955d751407512f7c452903131e60ecc..0000000000000000000000000000000000000000
--- a/changelog.d/12008.removal
+++ /dev/null
@@ -1 +0,0 @@
-Remove support for the legacy structured logging configuration (please see the the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#legacy-structured-logging-configuration-removal) if you are using `structured: true` in the Synapse configuration).
diff --git a/changelog.d/12009.feature b/changelog.d/12009.feature
deleted file mode 100644
index c8a531481ec3fcb8e0106db1a404532d3ce0cacf..0000000000000000000000000000000000000000
--- a/changelog.d/12009.feature
+++ /dev/null
@@ -1 +0,0 @@
-Enable modules to set a custom display name when registering a user.
diff --git a/changelog.d/12011.misc b/changelog.d/12011.misc
deleted file mode 100644
index 258b0e389f6c24ad83115a334bdcdb086ff2e73e..0000000000000000000000000000000000000000
--- a/changelog.d/12011.misc
+++ /dev/null
@@ -1 +0,0 @@
-Preparation for faster-room-join work: parse msc3706 fields in send_join response.
diff --git a/changelog.d/12012.misc b/changelog.d/12012.misc
deleted file mode 100644
index a473f41e7856b9ee3eb71e85a69a0b2ec67aec12..0000000000000000000000000000000000000000
--- a/changelog.d/12012.misc
+++ /dev/null
@@ -1 +0,0 @@
-Preparation for faster-room-join work: persist information on which events and rooms have partial state to the database.
diff --git a/changelog.d/12013.misc b/changelog.d/12013.misc
deleted file mode 100644
index c0fca8dccbae7d7fde24ddbeb9cb99404e25fd5e..0000000000000000000000000000000000000000
--- a/changelog.d/12013.misc
+++ /dev/null
@@ -1 +0,0 @@
-Preparation for faster-room-join work: Support for calling `/federation/v1/state` on a remote server.
diff --git a/changelog.d/12015.misc b/changelog.d/12015.misc
deleted file mode 100644
index 3aa32ab4cf7859e44596fd1659d60b1ee15a201b..0000000000000000000000000000000000000000
--- a/changelog.d/12015.misc
+++ /dev/null
@@ -1 +0,0 @@
-Configure `tox` to use `venv` rather than `virtualenv`.
diff --git a/changelog.d/12016.misc b/changelog.d/12016.misc
deleted file mode 100644
index 8856ef46a9131cd7fb6b395cd687be73dcf48a9e..0000000000000000000000000000000000000000
--- a/changelog.d/12016.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug in `StateFilter.return_expanded()` and add some tests.
\ No newline at end of file
diff --git a/changelog.d/12018.removal b/changelog.d/12018.removal
deleted file mode 100644
index e940b62228acebfc59aea63490806f4cff9e61c1..0000000000000000000000000000000000000000
--- a/changelog.d/12018.removal
+++ /dev/null
@@ -1 +0,0 @@
-Drop support for [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283) unstable flags now that the stable flags are supported.
diff --git a/changelog.d/12019.misc b/changelog.d/12019.misc
deleted file mode 100644
index b2186320ead4d4edca5f14e17e348d02e6289a78..0000000000000000000000000000000000000000
--- a/changelog.d/12019.misc
+++ /dev/null
@@ -1 +0,0 @@
-Use Matrix v1.1 endpoints (`/_matrix/client/v3/auth/...`) in fallback auth HTML forms.
\ No newline at end of file
diff --git a/changelog.d/12020.feature b/changelog.d/12020.feature
deleted file mode 100644
index 1ac9d2060e2a8598763ecabb6b8aefcf0e958b5f..0000000000000000000000000000000000000000
--- a/changelog.d/12020.feature
+++ /dev/null
@@ -1 +0,0 @@
-Advertise Matrix 1.1 support on `/_matrix/client/versions`.
\ No newline at end of file
diff --git a/changelog.d/12021.feature b/changelog.d/12021.feature
deleted file mode 100644
index 01378df8ca625a1f4977dcee278c96c6536ca05f..0000000000000000000000000000000000000000
--- a/changelog.d/12021.feature
+++ /dev/null
@@ -1 +0,0 @@
-Support only the stable identifier for [MSC3069](https://github.com/matrix-org/matrix-doc/pull/3069)'s `is_guest` on `/_matrix/client/v3/account/whoami`.
\ No newline at end of file
diff --git a/changelog.d/12022.feature b/changelog.d/12022.feature
deleted file mode 100644
index 188fb125705a1d2fbf4995241c21bbdab9cc4dbb..0000000000000000000000000000000000000000
--- a/changelog.d/12022.feature
+++ /dev/null
@@ -1 +0,0 @@
-Advertise Matrix 1.2 support on `/_matrix/client/versions`.
\ No newline at end of file
diff --git a/changelog.d/12024.bugfix b/changelog.d/12024.bugfix
deleted file mode 100644
index 59bcdb93a57fa25ad1af81c4ddc9255dac69a376..0000000000000000000000000000000000000000
--- a/changelog.d/12024.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix 500 error with Postgres when looking backwards with the [MSC3030](https://github.com/matrix-org/matrix-doc/pull/3030) `/timestamp_to_event?dir=b` endpoint.
diff --git a/changelog.d/12025.misc b/changelog.d/12025.misc
deleted file mode 100644
index d9475a7718817d471d8bfde68b3e99a4c2765b5b..0000000000000000000000000000000000000000
--- a/changelog.d/12025.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update the `olddeps` CI job to use an old version of `markupsafe`.
diff --git a/changelog.d/12030.misc b/changelog.d/12030.misc
deleted file mode 100644
index 607ee97ce60ef31cab675aee2c5201b052ee43f8..0000000000000000000000000000000000000000
--- a/changelog.d/12030.misc
+++ /dev/null
@@ -1 +0,0 @@
-Upgrade mypy to version 0.931.
diff --git a/changelog.d/12031.misc b/changelog.d/12031.misc
deleted file mode 100644
index d4bedc6b97cbf730bbd99a110c564f5d25046715..0000000000000000000000000000000000000000
--- a/changelog.d/12031.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove legacy `HomeServer.get_datastore()`.
diff --git a/changelog.d/12034.misc b/changelog.d/12034.misc
deleted file mode 100644
index 8374a63220d18999b4f38f1a9a139ba507fe88f9..0000000000000000000000000000000000000000
--- a/changelog.d/12034.misc
+++ /dev/null
@@ -1 +0,0 @@
-Minor typing fixes.
diff --git a/changelog.d/12037.bugfix b/changelog.d/12037.bugfix
deleted file mode 100644
index 9295cb4dc0d9522bbe43a861b9398200a8f67aa7..0000000000000000000000000000000000000000
--- a/changelog.d/12037.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Properly fix a long-standing bug where wrong data could be inserted in the `event_search` table when using sqlite. This could block running `synapse_port_db` with an "argument of type 'int' is not iterable" error. This bug was partially fixed by a change in Synapse 1.44.0.
diff --git a/changelog.d/12039.misc b/changelog.d/12039.misc
deleted file mode 100644
index 45e21dbe59534cf2e06221de76d541aed3fd00a0..0000000000000000000000000000000000000000
--- a/changelog.d/12039.misc
+++ /dev/null
@@ -1 +0,0 @@
-Preparation for faster-room-join work: when parsing the `send_join` response, get the `m.room.create` event from `state`, not `auth_chain`.
diff --git a/changelog.d/12041.misc b/changelog.d/12041.misc
deleted file mode 100644
index e56dc093def6b53e6ef542432a53a57754a2a175..0000000000000000000000000000000000000000
--- a/changelog.d/12041.misc
+++ /dev/null
@@ -1 +0,0 @@
-After joining a room, create a dedicated logcontext to process the queued events.
diff --git a/changelog.d/12051.misc b/changelog.d/12051.misc
deleted file mode 100644
index 9959191352ad4c35f96e59ba26ae44a6cfcf27f1..0000000000000000000000000000000000000000
--- a/changelog.d/12051.misc
+++ /dev/null
@@ -1 +0,0 @@
-Tidy up GitHub Actions config which builds distributions for PyPI.
\ No newline at end of file
diff --git a/changelog.d/12052.misc b/changelog.d/12052.misc
deleted file mode 100644
index 11755ae61b9a821bb42bf227afa319d76997bc90..0000000000000000000000000000000000000000
--- a/changelog.d/12052.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move configuration out of `setup.cfg`.
diff --git a/changelog.d/12056.bugfix b/changelog.d/12056.bugfix
deleted file mode 100644
index 210e30c63fed3185d806b659ccf0013a3ac6bfd8..0000000000000000000000000000000000000000
--- a/changelog.d/12056.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix slow performance of `/logout` in some cases where refresh tokens are in use. The slowness existed since the initial implementation of refresh tokens.
\ No newline at end of file
diff --git a/changelog.d/12058.feature b/changelog.d/12058.feature
deleted file mode 100644
index 7b716922299a4fa21b9a7bbaffccc9df8f1180be..0000000000000000000000000000000000000000
--- a/changelog.d/12058.feature
+++ /dev/null
@@ -1 +0,0 @@
-Use room version 9 as the default room version (per [MSC3589](https://github.com/matrix-org/matrix-doc/pull/3589)).
diff --git a/changelog.d/12059.misc b/changelog.d/12059.misc
deleted file mode 100644
index 9ba4759d99de26316b5376e9bf322e81f89f1a1a..0000000000000000000000000000000000000000
--- a/changelog.d/12059.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move configuration out of `setup.cfg`.
\ No newline at end of file
diff --git a/changelog.d/12060.misc b/changelog.d/12060.misc
deleted file mode 100644
index d771e6a1b3932064d32f35fe00f561b0cb08e870..0000000000000000000000000000000000000000
--- a/changelog.d/12060.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix error message when a worker process fails to talk to another worker process.
diff --git a/changelog.d/12062.feature b/changelog.d/12062.feature
deleted file mode 100644
index 46a606709da814907127b10b92958e03099b0583..0000000000000000000000000000000000000000
--- a/changelog.d/12062.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add module callbacks to react to user deactivation status changes (i.e. deactivations and reactivations) and profile updates.
diff --git a/changelog.d/12063.misc b/changelog.d/12063.misc
deleted file mode 100644
index e48c5dd08bd70e48ff0edfc437b371d369050f60..0000000000000000000000000000000000000000
--- a/changelog.d/12063.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix using the complement.sh script without specifying a dir or a branch. Contributed by Nico on behalf of Famedly.
diff --git a/changelog.d/12066.misc b/changelog.d/12066.misc
deleted file mode 100644
index 0360dbd61edcec7ca728c6b0ece95b44062b8084..0000000000000000000000000000000000000000
--- a/changelog.d/12066.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `tests/rest/client`.
diff --git a/changelog.d/12067.feature b/changelog.d/12067.feature
deleted file mode 100644
index dc1153c49ef4369bf749ba544a75ced8ef5d1ef0..0000000000000000000000000000000000000000
--- a/changelog.d/12067.feature
+++ /dev/null
@@ -1 +0,0 @@
-Implement experimental support for [MSC3720](https://github.com/matrix-org/matrix-doc/pull/3720) (account status endpoints).
diff --git a/changelog.d/12068.misc b/changelog.d/12068.misc
deleted file mode 100644
index 72b211e4f55f6751ad44154916ccc7b4ff2280e8..0000000000000000000000000000000000000000
--- a/changelog.d/12068.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add some logging to `/sync` to try and track down #11916.
diff --git a/changelog.d/12069.misc b/changelog.d/12069.misc
deleted file mode 100644
index 8374a63220d18999b4f38f1a9a139ba507fe88f9..0000000000000000000000000000000000000000
--- a/changelog.d/12069.misc
+++ /dev/null
@@ -1 +0,0 @@
-Minor typing fixes.
diff --git a/changelog.d/12070.misc b/changelog.d/12070.misc
deleted file mode 100644
index d4bedc6b97cbf730bbd99a110c564f5d25046715..0000000000000000000000000000000000000000
--- a/changelog.d/12070.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove legacy `HomeServer.get_datastore()`.
diff --git a/changelog.d/12072.misc b/changelog.d/12072.misc
deleted file mode 100644
index 0360dbd61edcec7ca728c6b0ece95b44062b8084..0000000000000000000000000000000000000000
--- a/changelog.d/12072.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `tests/rest/client`.
diff --git a/changelog.d/12073.removal b/changelog.d/12073.removal
deleted file mode 100644
index 1f39792712707a36fd9e8837c10c3b6b86e39274..0000000000000000000000000000000000000000
--- a/changelog.d/12073.removal
+++ /dev/null
@@ -1 +0,0 @@
-Remove the unstable `/spaces` endpoint from [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946).
diff --git a/changelog.d/12077.bugfix b/changelog.d/12077.bugfix
deleted file mode 100644
index 1bce82082dad5cb0e9f518fb45e14c4d62b87856..0000000000000000000000000000000000000000
--- a/changelog.d/12077.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug where Synapse would make additional failing requests over federation for missing data.
diff --git a/changelog.d/12084.misc b/changelog.d/12084.misc
deleted file mode 100644
index 0360dbd61edcec7ca728c6b0ece95b44062b8084..0000000000000000000000000000000000000000
--- a/changelog.d/12084.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `tests/rest/client`.
diff --git a/changelog.d/12088.misc b/changelog.d/12088.misc
deleted file mode 100644
index ce4213650c5ee3512ce01b54ac5763a21f0755e6..0000000000000000000000000000000000000000
--- a/changelog.d/12088.misc
+++ /dev/null
@@ -1 +0,0 @@
-Inspect application dependencies using `importlib.metadata` or its backport.
\ No newline at end of file
diff --git a/changelog.d/12089.bugfix b/changelog.d/12089.bugfix
deleted file mode 100644
index 27172c48280377bdfc54103f77c8ec2fb702284d..0000000000000000000000000000000000000000
--- a/changelog.d/12089.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix occasional 'Unhandled error in Deferred' error message.
diff --git a/changelog.d/12092.misc b/changelog.d/12092.misc
deleted file mode 100644
index 62653d6f8d9ef055ec1f661d6d36e63e4e4ad09a..0000000000000000000000000000000000000000
--- a/changelog.d/12092.misc
+++ /dev/null
@@ -1 +0,0 @@
-User `assertEqual` instead of the deprecated `assertEquals` in test code.
diff --git a/changelog.d/12094.misc b/changelog.d/12094.misc
deleted file mode 100644
index 0360dbd61edcec7ca728c6b0ece95b44062b8084..0000000000000000000000000000000000000000
--- a/changelog.d/12094.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add type hints to `tests/rest/client`.
diff --git a/changelog.d/12098.bugfix b/changelog.d/12098.bugfix
deleted file mode 100644
index 6b696692e33239763a639d6766f14a2403f9bd85..0000000000000000000000000000000000000000
--- a/changelog.d/12098.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in Synapse 1.51.0rc1 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`.
\ No newline at end of file
diff --git a/changelog.d/12099.misc b/changelog.d/12099.misc
deleted file mode 100644
index 0553825dbce4e170ca682be868da8718b920fd36..0000000000000000000000000000000000000000
--- a/changelog.d/12099.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move experimental support for [MSC3440](https://github.com/matrix-org/matrix-doc/pull/3440) to /versions.
diff --git a/changelog.d/12100.bugfix b/changelog.d/12100.bugfix
deleted file mode 100644
index 181095ad992989673c0874397863917ff86bdf9a..0000000000000000000000000000000000000000
--- a/changelog.d/12100.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a long-standing bug which could cause push notifications to malfunction if `use_frozen_dicts` was set in the configuration.
diff --git a/changelog.d/12105.bugfix b/changelog.d/12105.bugfix
deleted file mode 100644
index f42e63e01fb72b7f8405ab877ede06d21dbe9cb0..0000000000000000000000000000000000000000
--- a/changelog.d/12105.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix an extremely rare, long-standing bug in `ReadWriteLock` that would cause an error when a newly unblocked writer completes instantly.
diff --git a/changelog.d/12106.misc b/changelog.d/12106.misc
deleted file mode 100644
index d918e9e3b16dc29a6eba2e5fa6c496494e39156b..0000000000000000000000000000000000000000
--- a/changelog.d/12106.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add `stop_cancellation` utility function to stop `Deferred`s from being cancelled.
diff --git a/changelog.d/12109.misc b/changelog.d/12109.misc
deleted file mode 100644
index 3295e49f43b9388eaa733ef08a2cc138c467bb45..0000000000000000000000000000000000000000
--- a/changelog.d/12109.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve exception handling for concurrent execution.
diff --git a/changelog.d/12111.misc b/changelog.d/12111.misc
deleted file mode 100644
index be84789c9dfcef77a4f5f4c2c1303666ccbfe6b1..0000000000000000000000000000000000000000
--- a/changelog.d/12111.misc
+++ /dev/null
@@ -1 +0,0 @@
-Advertise support for Python 3.10 in packaging files.
\ No newline at end of file
diff --git a/changelog.d/12112.docker b/changelog.d/12112.docker
deleted file mode 100644
index b9e630653d249668e278b1a8a3dd1e76e86ad74c..0000000000000000000000000000000000000000
--- a/changelog.d/12112.docker
+++ /dev/null
@@ -1 +0,0 @@
-Use Python 3.9 in Docker images by default.
\ No newline at end of file
diff --git a/changelog.d/12119.misc b/changelog.d/12119.misc
deleted file mode 100644
index f02d140f387148809d25d083b230acecf9cf5ab9..0000000000000000000000000000000000000000
--- a/changelog.d/12119.misc
+++ /dev/null
@@ -1 +0,0 @@
-Move CI checks out of tox, to facilitate a move to using poetry.
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
index 574930c085cd6831b1b98c966c6da28d6787b119..df3db85b8e77b5e79b2fcfc27fc505141666acd5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.54.0~rc1) stable; urgency=medium
+
+  * New synapse release 1.54.0~rc1.
+
+ -- Synapse Packaging team <packages@matrix.org>  Wed, 02 Mar 2022 10:43:22 +0000
+
 matrix-synapse-py3 (1.53.0) stable; urgency=medium
 
   * New synapse release 1.53.0.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 903f2e815dd9c0889daa492c7f432a3a2c05ffb1..b21e1ed0f342adab5922d480f6097f62829837e1 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -47,7 +47,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.53.0"
+__version__ = "1.54.0rc1"
 
 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