diff --git a/CHANGES.md b/CHANGES.md
index dbb21d4c762e7fa875feadf10f29c9440e68e263..b45eccf024681048aed057a14886487f47495ff5 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,69 @@
+Synapse 1.15.0rc1 (2020-06-09)
+==============================
+
+Features
+--------
+
+- Advertise support for Client-Server API r0.6.0 and remove related unstable feature flags. ([\#6585](https://github.com/matrix-org/synapse/issues/6585))
+- Add an option to disable autojoining rooms for guest accounts. ([\#6637](https://github.com/matrix-org/synapse/issues/6637))
+- For SAML authentication, add the ability to pass email addresses to be added to new users' accounts via SAML attributes. Contributed by Christopher Cooper. ([\#7385](https://github.com/matrix-org/synapse/issues/7385))
+- Add admin APIs to allow server admins to manage users' devices. Contributed by @dklimpel. ([\#7481](https://github.com/matrix-org/synapse/issues/7481))
+- Add support for generating thumbnails for WebP images. Previously, users would see an empty box instead of preview image. ([\#7586](https://github.com/matrix-org/synapse/issues/7586))
+- Support the standardized `m.login.sso` user-interactive authentication flow. ([\#7630](https://github.com/matrix-org/synapse/issues/7630))
+
+
+Bugfixes
+--------
+
+- Allow new users to be registered via the admin API even if the monthly active user limit has been reached. Contributed by @dkimpel. ([\#7263](https://github.com/matrix-org/synapse/issues/7263))
+- Fix email notifications not being enabled for new users when created via the Admin API. ([\#7267](https://github.com/matrix-org/synapse/issues/7267))
+- Fix str placeholders in an instance of `PrepareDatabaseException`. Introduced in Synapse v1.8.0. ([\#7575](https://github.com/matrix-org/synapse/issues/7575))
+- Fix a bug in automatic user creation during first time login with `m.login.jwt`. Regression in v1.6.0. Contributed by @olof. ([\#7585](https://github.com/matrix-org/synapse/issues/7585))
+- Fix a bug causing the cross-signing keys to be ignored when resyncing a device list. ([\#7594](https://github.com/matrix-org/synapse/issues/7594))
+- Fix metrics failing when there is a large number of active background processes. ([\#7597](https://github.com/matrix-org/synapse/issues/7597))
+- Fix bug where returning rooms for a group would fail if it included a room that the server was not in. ([\#7599](https://github.com/matrix-org/synapse/issues/7599))
+- Fix duplicate key violation when persisting read markers. ([\#7607](https://github.com/matrix-org/synapse/issues/7607))
+- Prevent an entire iteration of the device list resync loop from failing if one server responds with a malformed result. ([\#7609](https://github.com/matrix-org/synapse/issues/7609))
+- Fix exceptions when fetching events from a remote host fails. ([\#7622](https://github.com/matrix-org/synapse/issues/7622))
+- Make `synctl restart` start synapse if it wasn't running. ([\#7624](https://github.com/matrix-org/synapse/issues/7624))
+- Pass device information through to the login endpoint when using the login fallback. ([\#7629](https://github.com/matrix-org/synapse/issues/7629))
+- Advertise the `m.login.token` login flow when OpenID Connect is enabled. ([\#7631](https://github.com/matrix-org/synapse/issues/7631))
+- Fix bug in account data replication stream. ([\#7656](https://github.com/matrix-org/synapse/issues/7656))
+
+
+Improved Documentation
+----------------------
+
+- Update the OpenBSD installation instructions. ([\#7587](https://github.com/matrix-org/synapse/issues/7587))
+- Advertise Python 3.8 support in `setup.py`. ([\#7602](https://github.com/matrix-org/synapse/issues/7602))
+- Add a link to `#synapse:matrix.org` in the troubleshooting section of the README. ([\#7603](https://github.com/matrix-org/synapse/issues/7603))
+- Clarifications to the admin api documentation. ([\#7647](https://github.com/matrix-org/synapse/issues/7647))
+
+
+Internal Changes
+----------------
+
+- Convert the identity handler to async/await. ([\#7561](https://github.com/matrix-org/synapse/issues/7561))
+- Improve query performance for fetching state from a PostgreSQL database. ([\#7567](https://github.com/matrix-org/synapse/issues/7567))
+- Speed up processing of federation stream RDATA rows. ([\#7584](https://github.com/matrix-org/synapse/issues/7584))
+- Add comment to systemd example to show postgresql dependency. ([\#7591](https://github.com/matrix-org/synapse/issues/7591))
+- Refactor `Ratelimiter` to limit the amount of expensive config value accesses. ([\#7595](https://github.com/matrix-org/synapse/issues/7595))
+- Convert groups handlers to async/await. ([\#7600](https://github.com/matrix-org/synapse/issues/7600))
+- Clean up exception handling in `SAML2ResponseResource`. ([\#7614](https://github.com/matrix-org/synapse/issues/7614))
+- Check that all asynchronous tasks succeed and general cleanup of `MonthlyActiveUsersTestCase` and `TestMauLimit`. ([\#7619](https://github.com/matrix-org/synapse/issues/7619))
+- Convert `get_user_id_by_threepid` to async/await. ([\#7620](https://github.com/matrix-org/synapse/issues/7620))
+- Switch to upstream `dh-virtualenv` rather than our fork for Debian package builds. ([\#7621](https://github.com/matrix-org/synapse/issues/7621))
+- Update CI scripts to check the number in the newsfile fragment. ([\#7623](https://github.com/matrix-org/synapse/issues/7623))
+- Check if the localpart of a Matrix ID is reserved for guest users earlier in the registration flow, as well as when responding to requests to `/register/available`. ([\#7625](https://github.com/matrix-org/synapse/issues/7625))
+- Minor cleanups to OpenID Connect integration. ([\#7628](https://github.com/matrix-org/synapse/issues/7628))
+- Attempt to fix flaky test: `PhoneHomeStatsTestCase.test_performance_100`. ([\#7634](https://github.com/matrix-org/synapse/issues/7634))
+- Fix typos of `m.olm.curve25519-aes-sha2` and `m.megolm.v1.aes-sha2` in comments, test files. ([\#7637](https://github.com/matrix-org/synapse/issues/7637))
+- Convert user directory, state deltas, and stats handlers to async/await. ([\#7640](https://github.com/matrix-org/synapse/issues/7640))
+- Remove some unused constants. ([\#7644](https://github.com/matrix-org/synapse/issues/7644))
+- Fix type information on `assert_*_is_admin` methods. ([\#7645](https://github.com/matrix-org/synapse/issues/7645))
+- Convert registration handler to async/await. ([\#7649](https://github.com/matrix-org/synapse/issues/7649))
+
+
 Synapse 1.14.0 (2020-05-28)
 ===========================
 
diff --git a/changelog.d/6585.feature b/changelog.d/6585.feature
deleted file mode 100644
index ab2a85374ea3ee6d356cfc970bb92886a76e22ef..0000000000000000000000000000000000000000
--- a/changelog.d/6585.feature
+++ /dev/null
@@ -1 +0,0 @@
-Advertise support for Client-Server API r0.6.0 and remove related unstable feature flags.
\ No newline at end of file
diff --git a/changelog.d/6637.feature b/changelog.d/6637.feature
deleted file mode 100644
index 5228ebc1e5c8130149e7c24df7a7457847fae80c..0000000000000000000000000000000000000000
--- a/changelog.d/6637.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add an option to disable autojoining rooms for guest accounts.
diff --git a/changelog.d/7263.bugfix b/changelog.d/7263.bugfix
deleted file mode 100644
index 0b4739261ca10fb7437b9e330464efc5ddb91a9c..0000000000000000000000000000000000000000
--- a/changelog.d/7263.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Allow new users to be registered via the admin API even if the monthly active user limit has been reached. Contributed by @dkimpel.
diff --git a/changelog.d/7267.bugfix b/changelog.d/7267.bugfix
deleted file mode 100644
index 0af316c1a2351f0638a743d0cdf8410195499f9a..0000000000000000000000000000000000000000
--- a/changelog.d/7267.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix email notifications not being enabled for new users when created via the Admin API.
diff --git a/changelog.d/7385.feature b/changelog.d/7385.feature
deleted file mode 100644
index 9d8fb2311ac2a1cdedaf2268b0158ab7058d8a49..0000000000000000000000000000000000000000
--- a/changelog.d/7385.feature
+++ /dev/null
@@ -1 +0,0 @@
-For SAML authentication, add the ability to pass email addresses to be added to new users' accounts via SAML attributes. Contributed by Christopher Cooper.
diff --git a/changelog.d/7481.feature b/changelog.d/7481.feature
deleted file mode 100644
index f167f3632c147c264da4bc139803e86c718a2d22..0000000000000000000000000000000000000000
--- a/changelog.d/7481.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add admin APIs to allow server admins to manage users' devices. Contributed by @dklimpel.
diff --git a/changelog.d/7561.misc b/changelog.d/7561.misc
deleted file mode 100644
index 448dbd569978c9314cd8f9af02edd7e9cd13f7f7..0000000000000000000000000000000000000000
--- a/changelog.d/7561.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert the identity handler to async/await.
diff --git a/changelog.d/7567.misc b/changelog.d/7567.misc
deleted file mode 100644
index b086d5d02616cc6cf0a9f2943bb9d37e2f5ffebe..0000000000000000000000000000000000000000
--- a/changelog.d/7567.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve query performance for fetching state from a PostgreSQL database.
diff --git a/changelog.d/7575.bugfix b/changelog.d/7575.bugfix
deleted file mode 100644
index 0ab5516eb35074a324fd9d0413c768bba02ad692..0000000000000000000000000000000000000000
--- a/changelog.d/7575.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix str placeholders in an instance of `PrepareDatabaseException`. Introduced in Synapse v1.8.0.
diff --git a/changelog.d/7584.misc b/changelog.d/7584.misc
deleted file mode 100644
index 55d1689f77ce9d2278e34b9ab06772e9e5cade7a..0000000000000000000000000000000000000000
--- a/changelog.d/7584.misc
+++ /dev/null
@@ -1 +0,0 @@
-Speed up processing of federation stream RDATA rows.
diff --git a/changelog.d/7585.bugfix b/changelog.d/7585.bugfix
deleted file mode 100644
index 263295599d245512f0f864e86b56cde3085d6078..0000000000000000000000000000000000000000
--- a/changelog.d/7585.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug in automatic user creation during first time login with `m.login.jwt`. Regression in v1.6.0. Contributed by @olof.
diff --git a/changelog.d/7586.feature b/changelog.d/7586.feature
deleted file mode 100644
index ef0231d823ff4e7fca00f5dfc8f0189c30e553c3..0000000000000000000000000000000000000000
--- a/changelog.d/7586.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add support for generating thumbnails for WebP images. Previously, users would see an empty box instead of preview image.
diff --git a/changelog.d/7587.doc b/changelog.d/7587.doc
deleted file mode 100644
index ec4a43043678da6c3024afad55e4cffb5ac2a9fa..0000000000000000000000000000000000000000
--- a/changelog.d/7587.doc
+++ /dev/null
@@ -1 +0,0 @@
-Update the OpenBSD installation instructions.
\ No newline at end of file
diff --git a/changelog.d/7591.misc b/changelog.d/7591.misc
deleted file mode 100644
index 17785b1f21ba7409ee2d529b310080292a171a05..0000000000000000000000000000000000000000
--- a/changelog.d/7591.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add comment to systemd example to show postgresql dependency.
diff --git a/changelog.d/7594.bugfix b/changelog.d/7594.bugfix
deleted file mode 100644
index f0c067e1844767a7be0dced80255103405c90acf..0000000000000000000000000000000000000000
--- a/changelog.d/7594.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a bug causing the cross-signing keys to be ignored when resyncing a device list.
diff --git a/changelog.d/7595.misc b/changelog.d/7595.misc
deleted file mode 100644
index 7a0646b1a3fe0abbef0d41bc48c2df98d3f886f6..0000000000000000000000000000000000000000
--- a/changelog.d/7595.misc
+++ /dev/null
@@ -1 +0,0 @@
-Refactor `Ratelimiter` to limit the amount of expensive config value accesses.
diff --git a/changelog.d/7597.bugfix b/changelog.d/7597.bugfix
deleted file mode 100644
index e2ff951915f2f381cf0988908bf4a366abe7badb..0000000000000000000000000000000000000000
--- a/changelog.d/7597.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix metrics failing when there is a large number of active background processes.
diff --git a/changelog.d/7599.bugfix b/changelog.d/7599.bugfix
deleted file mode 100644
index deefe5680f3f912801bea473f4f956220cc3fda4..0000000000000000000000000000000000000000
--- a/changelog.d/7599.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug where returning rooms for a group would fail if it included a room that the server was not in.
diff --git a/changelog.d/7600.misc b/changelog.d/7600.misc
deleted file mode 100644
index 3c2affbe6f88da7146d8d7d664bc071e36648055..0000000000000000000000000000000000000000
--- a/changelog.d/7600.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert groups handlers to async/await.
diff --git a/changelog.d/7602.doc b/changelog.d/7602.doc
deleted file mode 100644
index 09039353dbf0d44827994a49eb91ef9113166693..0000000000000000000000000000000000000000
--- a/changelog.d/7602.doc
+++ /dev/null
@@ -1 +0,0 @@
-Advertise Python 3.8 support in `setup.py`.
diff --git a/changelog.d/7603.doc b/changelog.d/7603.doc
deleted file mode 100644
index e450888d4b50ce2fa30a956f4a4fdc4476d14650..0000000000000000000000000000000000000000
--- a/changelog.d/7603.doc
+++ /dev/null
@@ -1 +0,0 @@
-Add a link to `#synapse:matrix.org` in the troubleshooting section of the README.
diff --git a/changelog.d/7607.bugfix b/changelog.d/7607.bugfix
deleted file mode 100644
index 04b22e5ffe8f71d3104b9532e2d79694658618de..0000000000000000000000000000000000000000
--- a/changelog.d/7607.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix duplicate key violation when persisting read markers.
diff --git a/changelog.d/7609.bugfix b/changelog.d/7609.bugfix
deleted file mode 100644
index e2eceeef0ca8f067adeb69e301ccf30403e6d856..0000000000000000000000000000000000000000
--- a/changelog.d/7609.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Prevent an entire iteration of the device list resync loop from failing if one server responds with a malformed result.
diff --git a/changelog.d/7614.misc b/changelog.d/7614.misc
deleted file mode 100644
index f0e24f9f61b6f5fe6952a3ca536543f902788b3a..0000000000000000000000000000000000000000
--- a/changelog.d/7614.misc
+++ /dev/null
@@ -1 +0,0 @@
-Clean up exception handling in `SAML2ResponseResource`.
diff --git a/changelog.d/7619.misc b/changelog.d/7619.misc
deleted file mode 100644
index 23a8b30b1946c7f508a548842529a988dba02ba0..0000000000000000000000000000000000000000
--- a/changelog.d/7619.misc
+++ /dev/null
@@ -1 +0,0 @@
-Check that all asynchronous tasks succeed and general cleanup of `MonthlyActiveUsersTestCase` and `TestMauLimit`.
diff --git a/changelog.d/7620.misc b/changelog.d/7620.misc
deleted file mode 100644
index f8357ee3b61f3ae9676d5d5ad5ab59ddc226c715..0000000000000000000000000000000000000000
--- a/changelog.d/7620.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert `get_user_id_by_threepid` to async/await.
\ No newline at end of file
diff --git a/changelog.d/7621.misc b/changelog.d/7621.misc
deleted file mode 100644
index 032a7de6e6786b5284a4566869ed72d742ea5bd2..0000000000000000000000000000000000000000
--- a/changelog.d/7621.misc
+++ /dev/null
@@ -1 +0,0 @@
-Switch to upstream `dh-virtualenv` rather than our fork for Debian package builds.
diff --git a/changelog.d/7622.bugfix b/changelog.d/7622.bugfix
deleted file mode 100644
index bcb82f7b0b8e46c144126c76f6745dc25b822b97..0000000000000000000000000000000000000000
--- a/changelog.d/7622.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix exceptions when fetching events from a remote host fails.
diff --git a/changelog.d/7623.misc b/changelog.d/7623.misc
deleted file mode 100644
index 34a6f6a6a25f7951fc423196a1550c67a3df2c50..0000000000000000000000000000000000000000
--- a/changelog.d/7623.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update CI scripts to check the number in the newsfile fragment.
diff --git a/changelog.d/7624.bugfix b/changelog.d/7624.bugfix
deleted file mode 100644
index ce55b2cc3d10b51536c1696d8ad8694f464307c0..0000000000000000000000000000000000000000
--- a/changelog.d/7624.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Make `synctl restart` start synapse if it wasn't running.
diff --git a/changelog.d/7625.misc b/changelog.d/7625.misc
deleted file mode 100644
index 4c61d8d99f15a0817bb5dfb728e5491d84eaf2b0..0000000000000000000000000000000000000000
--- a/changelog.d/7625.misc
+++ /dev/null
@@ -1 +0,0 @@
-Check if the localpart of a Matrix ID is reserved for guest users earlier in the registration flow, as well as when responding to requests to `/register/available`.
diff --git a/changelog.d/7628.misc b/changelog.d/7628.misc
deleted file mode 100644
index 74007450fbfcba5f60ffb3c7c3c8307542bd52ce..0000000000000000000000000000000000000000
--- a/changelog.d/7628.misc
+++ /dev/null
@@ -1 +0,0 @@
-Minor cleanups to OpenID Connect integration.
diff --git a/changelog.d/7629.bugfix b/changelog.d/7629.bugfix
deleted file mode 100644
index 0debd580c5299bc4da4fdbfc6b2bbba89e55879d..0000000000000000000000000000000000000000
--- a/changelog.d/7629.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Pass device information through to the login endpoint when using the login fallback.
diff --git a/changelog.d/7630.feature b/changelog.d/7630.feature
deleted file mode 100644
index cce31fc881de0f83b87385509c5b700b43d74dba..0000000000000000000000000000000000000000
--- a/changelog.d/7630.feature
+++ /dev/null
@@ -1 +0,0 @@
-Support the standardized `m.login.sso` user-interactive authentication flow.
diff --git a/changelog.d/7631.bugfix b/changelog.d/7631.bugfix
deleted file mode 100644
index 7d74266d9abaf0a28da864f27b740ddfb825c84e..0000000000000000000000000000000000000000
--- a/changelog.d/7631.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Advertise the `m.login.token` login flow when OpenID Connect is enabled.
diff --git a/changelog.d/7634.misc b/changelog.d/7634.misc
deleted file mode 100644
index 50dc6df02ef09cef2e041eeb04966bb67a8a27ee..0000000000000000000000000000000000000000
--- a/changelog.d/7634.misc
+++ /dev/null
@@ -1 +0,0 @@
-Attempt to fix flaky test: `PhoneHomeStatsTestCase.test_performance_100`.
diff --git a/changelog.d/7637.misc b/changelog.d/7637.misc
deleted file mode 100644
index 90d41fa775cf90c929e1f97dee90118862b05d40..0000000000000000000000000000000000000000
--- a/changelog.d/7637.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix typos of `m.olm.curve25519-aes-sha2` and `m.megolm.v1.aes-sha2` in comments, test files.
\ No newline at end of file
diff --git a/changelog.d/7640.misc b/changelog.d/7640.misc
deleted file mode 100644
index 55edc1c78151c81b336a437749d2258939a55f8f..0000000000000000000000000000000000000000
--- a/changelog.d/7640.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert user directory, state deltas, and stats handlers to async/await.
diff --git a/changelog.d/7644.misc b/changelog.d/7644.misc
deleted file mode 100644
index 0f45141bcc9883b6ab1e11f053cc548ff9ed2628..0000000000000000000000000000000000000000
--- a/changelog.d/7644.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove some unused constants.
diff --git a/changelog.d/7645.misc b/changelog.d/7645.misc
deleted file mode 100644
index e7f0dc89c98c5dc907bf1d7be75dac87cca32031..0000000000000000000000000000000000000000
--- a/changelog.d/7645.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix type information on `assert_*_is_admin` methods.
diff --git a/changelog.d/7647.doc b/changelog.d/7647.doc
deleted file mode 100644
index ae4a60f0af7bb9763d67e541da28fd96d3825b04..0000000000000000000000000000000000000000
--- a/changelog.d/7647.doc
+++ /dev/null
@@ -1 +0,0 @@
-Clarifications to the admin api documentation.
diff --git a/changelog.d/7649.misc b/changelog.d/7649.misc
deleted file mode 100644
index 8a26c8b3b7cc6526ef8a5359998a19cc33b5dc5c..0000000000000000000000000000000000000000
--- a/changelog.d/7649.misc
+++ /dev/null
@@ -1 +0,0 @@
-Convert registration handler to async/await.
diff --git a/changelog.d/7656.bugfix b/changelog.d/7656.bugfix
deleted file mode 100644
index 1aeddb5fb99d76e24e8d7eccf82c558e5ffbe072..0000000000000000000000000000000000000000
--- a/changelog.d/7656.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix bug in account data replication stream.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index f0105d3e2f97b5cc0bf9270781c95bed402381d1..39c3a3ba4db1bf85d985c33cfb606e8be91329d1 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -36,7 +36,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.14.0"
+__version__ = "1.15.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