diff --git a/CHANGES.md b/CHANGES.md
index 1a5ff136c8..e7c2416238 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,36 @@
+# Synapse 1.150.0rc1 (2026-03-17)
+
+## Features
+
+- Add experimental support for the [MSC4370](https://github.com/matrix-org/matrix-spec-proposals/pull/4370) Federation API `GET /extremities` endpoint. ([\#19314](https://github.com/element-hq/synapse/issues/19314))
+- [MSC4140: Cancellable delayed events](https://github.com/matrix-org/matrix-spec-proposals/pull/4140): When persisting a delayed event to the timeline, include its `delay_id` in the event's `unsigned` section in `/sync` responses to the event sender. ([\#19479](https://github.com/element-hq/synapse/issues/19479))
+- Expose [MSC4354 Sticky Events](https://github.com/matrix-org/matrix-spec-proposals/pull/4354) over the legacy (v3) /sync API. ([\#19487](https://github.com/element-hq/synapse/issues/19487))
+- When Matrix Authentication Service (MAS) integration is enabled, allow MAS to set the user locked status in Synapse. ([\#19554](https://github.com/element-hq/synapse/issues/19554))
+
+## Bugfixes
+
+- Fix `Build and push complement image` CI job pointing to non-existent image. ([\#19523](https://github.com/element-hq/synapse/issues/19523))
+- Fix a bug introduced in v1.26.0 that caused deactivated, erased users to not be removed from the user directory. ([\#19542](https://github.com/element-hq/synapse/issues/19542))
+
+## Improved Documentation
+
+- In the Admin API documentation, always express path parameters as `/` instead of as `/$param`. ([\#19307](https://github.com/element-hq/synapse/issues/19307))
+- Update docs to clarify `outbound_federation_restricted_to` can also be used with the [Secure Border Gateway (SBG)](https://element.io/en/server-suite/secure-border-gateways). ([\#19517](https://github.com/element-hq/synapse/issues/19517))
+- Unify Complement developer docs. ([\#19518](https://github.com/element-hq/synapse/issues/19518))
+
+## Internal Changes
+
+- Put membership updates in a background resumable task when changing the avatar or the display name. ([\#19311](https://github.com/element-hq/synapse/issues/19311))
+- Add in-repo Complement test to sanity check Synapse version matches git checkout (testing what we think we are). ([\#19476](https://github.com/element-hq/synapse/issues/19476))
+- Migrate `dev` dependencies to [PEP 735](https://peps.python.org/pep-0735/) dependency groups. ([\#19490](https://github.com/element-hq/synapse/issues/19490))
+- Remove the optional `systemd-python` dependency and the `systemd` extra on the `synapse` package. ([\#19491](https://github.com/element-hq/synapse/issues/19491))
+- Avoid re-computing the event ID when cloning events. ([\#19527](https://github.com/element-hq/synapse/issues/19527))
+- Allow caching of the `/versions` and `/auth_metadata` public endpoints. ([\#19530](https://github.com/element-hq/synapse/issues/19530))
+- Add a few labels to the number groupings in the `Processed request` logs. ([\#19548](https://github.com/element-hq/synapse/issues/19548))
+
+
+
+
# Synapse 1.149.1 (2026-03-11)
## Internal Changes
diff --git a/changelog.d/19307.doc b/changelog.d/19307.doc
deleted file mode 100644
index a27e97f3d0..0000000000
--- a/changelog.d/19307.doc
+++ /dev/null
@@ -1 +0,0 @@
-In the Admin API documentation, always express path parameters as `/` instead of as `/$param`.
diff --git a/changelog.d/19311.misc b/changelog.d/19311.misc
deleted file mode 100644
index 66ec86c02d..0000000000
--- a/changelog.d/19311.misc
+++ /dev/null
@@ -1 +0,0 @@
-Put membership updates in a background resumable task when changing the avatar or the display name.
diff --git a/changelog.d/19314.feature b/changelog.d/19314.feature
deleted file mode 100644
index fd2893c577..0000000000
--- a/changelog.d/19314.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add experimental support for the [MSC4370](https://github.com/matrix-org/matrix-spec-proposals/pull/4370) Federation API `GET /extremities` endpoint.
\ No newline at end of file
diff --git a/changelog.d/19476.misc b/changelog.d/19476.misc
deleted file mode 100644
index c1869911a4..0000000000
--- a/changelog.d/19476.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add in-repo Complement test to sanity check Synapse version matches git checkout (testing what we think we are).
diff --git a/changelog.d/19479.feature b/changelog.d/19479.feature
deleted file mode 100644
index 3e7e8bd6ff..0000000000
--- a/changelog.d/19479.feature
+++ /dev/null
@@ -1 +0,0 @@
-[MSC4140: Cancellable delayed events](https://github.com/matrix-org/matrix-spec-proposals/pull/4140): When persisting a delayed event to the timeline, include its `delay_id` in the event's `unsigned` section in `/sync` responses to the event sender.
diff --git a/changelog.d/19487.feature b/changelog.d/19487.feature
deleted file mode 100644
index 4eb1d8f261..0000000000
--- a/changelog.d/19487.feature
+++ /dev/null
@@ -1 +0,0 @@
-Expose [MSC4354 Sticky Events](https://github.com/matrix-org/matrix-spec-proposals/pull/4354) over the legacy (v3) /sync API.
\ No newline at end of file
diff --git a/changelog.d/19490.misc b/changelog.d/19490.misc
deleted file mode 100644
index 924197a1cb..0000000000
--- a/changelog.d/19490.misc
+++ /dev/null
@@ -1 +0,0 @@
-Migrate `dev` dependencies to [PEP 735](https://peps.python.org/pep-0735/) dependency groups.
diff --git a/changelog.d/19491.misc b/changelog.d/19491.misc
deleted file mode 100644
index 62b0ddddc2..0000000000
--- a/changelog.d/19491.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove the optional `systemd-python` dependency and the `systemd` extra on the `synapse` package.
diff --git a/changelog.d/19517.doc b/changelog.d/19517.doc
deleted file mode 100644
index 778c14c6aa..0000000000
--- a/changelog.d/19517.doc
+++ /dev/null
@@ -1 +0,0 @@
-Update docs to clarify `outbound_federation_restricted_to` can also be used with the [Secure Border Gateway (SBG)](https://element.io/en/server-suite/secure-border-gateways).
diff --git a/changelog.d/19518.doc b/changelog.d/19518.doc
deleted file mode 100644
index 5de867c8d7..0000000000
--- a/changelog.d/19518.doc
+++ /dev/null
@@ -1 +0,0 @@
-Unify Complement developer docs.
diff --git a/changelog.d/19523.bugfix b/changelog.d/19523.bugfix
deleted file mode 100644
index e9f53c61ba..0000000000
--- a/changelog.d/19523.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix `Build and push complement image` CI job pointing to non-existent image.
diff --git a/changelog.d/19527.misc b/changelog.d/19527.misc
deleted file mode 100644
index c349af286b..0000000000
--- a/changelog.d/19527.misc
+++ /dev/null
@@ -1 +0,0 @@
-Avoid re-computing the event ID when cloning events.
diff --git a/changelog.d/19530.misc b/changelog.d/19530.misc
deleted file mode 100644
index 9e5bc0fe04..0000000000
--- a/changelog.d/19530.misc
+++ /dev/null
@@ -1 +0,0 @@
-Allow caching of the `/versions` and `/auth_metadata` public endpoints.
diff --git a/changelog.d/19542.bugfix b/changelog.d/19542.bugfix
deleted file mode 100644
index ab72504335..0000000000
--- a/changelog.d/19542.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug introduced in v1.26.0 that caused deactivated, erased users to not be removed from the user directory.
\ No newline at end of file
diff --git a/changelog.d/19548.misc b/changelog.d/19548.misc
deleted file mode 100644
index eed4d5d8e2..0000000000
--- a/changelog.d/19548.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add a few labels to the number groupings in the `Processed request` logs.
diff --git a/changelog.d/19554.feature b/changelog.d/19554.feature
deleted file mode 100644
index d30d3da1f6..0000000000
--- a/changelog.d/19554.feature
+++ /dev/null
@@ -1 +0,0 @@
-When Matrix Authentication Service (MAS) integration is enabled, allow MAS to set the user locked status in Synapse.
\ No newline at end of file
diff --git a/debian/changelog b/debian/changelog
index 1a21a105b8..55af4c22b5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,13 @@
-matrix-synapse-py3 (1.149.1+nmu1) UNRELEASED; urgency=medium
+matrix-synapse-py3 (1.150.0~rc1) stable; urgency=medium
+ [ Quentin Gliech ]
* Change how the systemd journald integration is installed.
* Update Poetry used at build time to 2.2.1.
- -- Quentin Gliech Fri, 20 Feb 2026 19:19:51 +0100
+ [ Synapse Packaging team ]
+ * New synapse release 1.150.0rc1.
+
+ -- Synapse Packaging team Tue, 17 Mar 2026 14:56:35 +0000
matrix-synapse-py3 (1.149.1) stable; urgency=medium
diff --git a/pyproject.toml b/pyproject.toml
index f655a1ef8b..adb9993aae 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "matrix-synapse"
-version = "1.149.1"
+version = "1.150.0rc1"
description = "Homeserver for the Matrix decentralised comms protocol"
readme = "README.rst"
authors = [
diff --git a/schema/synapse-config.schema.yaml b/schema/synapse-config.schema.yaml
index 3a61a4c6fc..dbf7d7acb7 100644
--- a/schema/synapse-config.schema.yaml
+++ b/schema/synapse-config.schema.yaml
@@ -1,5 +1,5 @@
$schema: https://element-hq.github.io/synapse/latest/schema/v1/meta.schema.json
-$id: https://element-hq.github.io/synapse/schema/synapse/v1.149/synapse-config.schema.json
+$id: https://element-hq.github.io/synapse/schema/synapse/v1.150/synapse-config.schema.json
type: object
properties:
modules: