diff --git a/CHANGES.md b/CHANGES.md
index 727275fa330ebec4444114fff467fc4a973072d2..bda0d7b8ffa2cde9c7d02c48df3d978eee048942 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,64 @@
+Synapse 0.34.1rc1 (2019-01-08)
+==============================
+
+Features
+--------
+
+- Special-case a support user for use in verifying behaviour of a given server. The support user does not appear in user directory or monthly active user counts. ([\#4141](https://github.com/matrix-org/synapse/issues/4141))
+- Support for serving .well-known files ([\#4262](https://github.com/matrix-org/synapse/issues/4262))
+- Rework SAML2 authentication ([\#4265](https://github.com/matrix-org/synapse/issues/4265), [\#4267](https://github.com/matrix-org/synapse/issues/4267))
+- SAML2 authentication: Initialise user display name from SAML2 data ([\#4272](https://github.com/matrix-org/synapse/issues/4272))
+- Synapse can now have its conditional/extra dependencies installed by pip. This functionality can be used by using `pip install matrix-synapse[feature]`, where feature is a comma separated list with the possible values "email.enable_notifs", "ldap3", "postgres", "saml2", "url_preview", and "test". If you want to install all optional dependencies, you can use "all" instead. ([\#4298](https://github.com/matrix-org/synapse/issues/4298), [\#4325](https://github.com/matrix-org/synapse/issues/4325))
+- Add routes for reading account data. ([\#4303](https://github.com/matrix-org/synapse/issues/4303))
+- Add opt-in support for v2 rooms ([\#4307](https://github.com/matrix-org/synapse/issues/4307))
+- Add a script to generate a clean config file ([\#4315](https://github.com/matrix-org/synapse/issues/4315))
+- Return server data in /login response ([\#4319](https://github.com/matrix-org/synapse/issues/4319))
+
+
+Bugfixes
+--------
+
+- Fix contains_url check to be consistent with other instances in code-base and check that value is an instance of string. ([\#3405](https://github.com/matrix-org/synapse/issues/3405))
+- Fix CAS login when username is not valid in an MXID ([\#4264](https://github.com/matrix-org/synapse/issues/4264))
+- Send CORS headers for /media/config ([\#4279](https://github.com/matrix-org/synapse/issues/4279))
+- Add 'sandbox' to CSP for media reprository ([\#4284](https://github.com/matrix-org/synapse/issues/4284))
+- Make the new landing page prettier. ([\#4294](https://github.com/matrix-org/synapse/issues/4294))
+- Fix deleting E2E room keys when using old SQLite versions. ([\#4295](https://github.com/matrix-org/synapse/issues/4295))
+- The metric synapse_admin_mau:current previously did not update when config.mau_stats_only was set to True ([\#4305](https://github.com/matrix-org/synapse/issues/4305))
+- Fixed per-room account data filters ([\#4309](https://github.com/matrix-org/synapse/issues/4309))
+- Fix indentation in default config ([\#4313](https://github.com/matrix-org/synapse/issues/4313))
+- Fix synapse:latest docker upload ([\#4316](https://github.com/matrix-org/synapse/issues/4316))
+- Fix test_metric.py compatibility with prometheus_client 0.5. Contributed by Maarten de Vries <maarten@de-vri.es>. ([\#4317](https://github.com/matrix-org/synapse/issues/4317))
+- Avoid packaging _trial_temp directory in -py3 debian packages ([\#4326](https://github.com/matrix-org/synapse/issues/4326))
+- Check jinja version for consent resource ([\#4327](https://github.com/matrix-org/synapse/issues/4327))
+- fix NPE in /messages by checking if all events were filtered out ([\#4330](https://github.com/matrix-org/synapse/issues/4330))
+- Fix synchrotron exploding due to being unable to access is_support_user in storage layer ([\#4344](https://github.com/matrix-org/synapse/issues/4344))
+- Fix `python -m synapse.config` on Python 3. ([\#4356](https://github.com/matrix-org/synapse/issues/4356))
+
+
+Deprecations and Removals
+-------------------------
+
+- Remove the deprecated v1/register API on Python 2. It was never ported to Python 3. ([\#4334](https://github.com/matrix-org/synapse/issues/4334))
+
+
+Internal Changes
+----------------
+
+- Getting URL previews of IP addresses no longer fails on Python 3. ([\#4215](https://github.com/matrix-org/synapse/issues/4215))
+- drop undocumented dependency on dateutil ([\#4266](https://github.com/matrix-org/synapse/issues/4266))
+- Update the example systemd config to use a virtualenv ([\#4273](https://github.com/matrix-org/synapse/issues/4273))
+- Update link to kernel DCO guide ([\#4274](https://github.com/matrix-org/synapse/issues/4274))
+- Make isort tox check print diff when it fails ([\#4283](https://github.com/matrix-org/synapse/issues/4283))
+- Log room_id in Unknown room errors ([\#4297](https://github.com/matrix-org/synapse/issues/4297))
+- Documentation improvements for coturn setup. Contributed by Krithin Sitaram. ([\#4333](https://github.com/matrix-org/synapse/issues/4333))
+- Update pull request template to use absolute links ([\#4341](https://github.com/matrix-org/synapse/issues/4341))
+- Update README to not lie about required restart when updating TLS certificates ([\#4343](https://github.com/matrix-org/synapse/issues/4343))
+- Update debian packaging for compatibility with transitional package ([\#4349](https://github.com/matrix-org/synapse/issues/4349))
+- Fix command hint to generate a config file when trying to start without a config file ([\#4353](https://github.com/matrix-org/synapse/issues/4353))
+- Add better logging for unexpected errors while sending transactions ([\#4358](https://github.com/matrix-org/synapse/issues/4358))
+
+
 Synapse 0.34.0 (2018-12-20)
 ===========================
 
diff --git a/changelog.d/3405.bugfix b/changelog.d/3405.bugfix
deleted file mode 100644
index 27f5226b3d234754fae7094b660108fe2c18c4ca..0000000000000000000000000000000000000000
--- a/changelog.d/3405.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix contains_url check to be consistent with other instances in code-base and check that value is an instance of string.
diff --git a/changelog.d/4141.feature b/changelog.d/4141.feature
deleted file mode 100644
index 632d3547cb31403eadcc6311b9ce9fe6ad31ca5c..0000000000000000000000000000000000000000
--- a/changelog.d/4141.feature
+++ /dev/null
@@ -1 +0,0 @@
-Special-case a support user for use in verifying behaviour of a given server. The support user does not appear in user directory or monthly active user counts.
diff --git a/changelog.d/4215.misc b/changelog.d/4215.misc
deleted file mode 100644
index bb90594836a703e8a2437eaf74cd3a89bbcc6d3d..0000000000000000000000000000000000000000
--- a/changelog.d/4215.misc
+++ /dev/null
@@ -1 +0,0 @@
-Getting URL previews of IP addresses no longer fails on Python 3.
diff --git a/changelog.d/4262.feature b/changelog.d/4262.feature
deleted file mode 100644
index 89cfdcab1547af6da60f6f1e2c54d68257c6a67b..0000000000000000000000000000000000000000
--- a/changelog.d/4262.feature
+++ /dev/null
@@ -1 +0,0 @@
-Support for serving .well-known files
diff --git a/changelog.d/4264.bugfix b/changelog.d/4264.bugfix
deleted file mode 100644
index b914026932fb67c04cc645a7a2c3a00f4153d8ce..0000000000000000000000000000000000000000
--- a/changelog.d/4264.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix CAS login when username is not valid in an MXID
diff --git a/changelog.d/4265.feature b/changelog.d/4265.feature
deleted file mode 100644
index da36986e2b0a6ea8711c903fd65ca7ae15872d8c..0000000000000000000000000000000000000000
--- a/changelog.d/4265.feature
+++ /dev/null
@@ -1 +0,0 @@
-Rework SAML2 authentication
diff --git a/changelog.d/4266.misc b/changelog.d/4266.misc
deleted file mode 100644
index 67fbde74840bf7c415243cb079743ef8be5591c5..0000000000000000000000000000000000000000
--- a/changelog.d/4266.misc
+++ /dev/null
@@ -1 +0,0 @@
-drop undocumented dependency on dateutil
diff --git a/changelog.d/4267.feature b/changelog.d/4267.feature
deleted file mode 100644
index da36986e2b0a6ea8711c903fd65ca7ae15872d8c..0000000000000000000000000000000000000000
--- a/changelog.d/4267.feature
+++ /dev/null
@@ -1 +0,0 @@
-Rework SAML2 authentication
diff --git a/changelog.d/4272.feature b/changelog.d/4272.feature
deleted file mode 100644
index 7a8f28695730bd5c6adbbb99cd2e387ee5731625..0000000000000000000000000000000000000000
--- a/changelog.d/4272.feature
+++ /dev/null
@@ -1 +0,0 @@
-SAML2 authentication: Initialise user display name from SAML2 data
diff --git a/changelog.d/4273.misc b/changelog.d/4273.misc
deleted file mode 100644
index 2583372d26273c9ab001403154839344055b17cd..0000000000000000000000000000000000000000
--- a/changelog.d/4273.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update the example systemd config to use a virtualenv
diff --git a/changelog.d/4274.misc b/changelog.d/4274.misc
deleted file mode 100644
index c85fb53b571a62f590bfbbaffe138828b521b7e6..0000000000000000000000000000000000000000
--- a/changelog.d/4274.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update link to kernel DCO guide
diff --git a/changelog.d/4279.bugfix b/changelog.d/4279.bugfix
deleted file mode 100644
index 12de4f44c436b472db1bb03eb7c9feb75212a15a..0000000000000000000000000000000000000000
--- a/changelog.d/4279.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Send CORS headers for /media/config
diff --git a/changelog.d/4283.misc b/changelog.d/4283.misc
deleted file mode 100644
index 21de5eb509c7c7a8a52c09f44a96920054f441d8..0000000000000000000000000000000000000000
--- a/changelog.d/4283.misc
+++ /dev/null
@@ -1 +0,0 @@
-Make isort tox check print diff when it fails
diff --git a/changelog.d/4284.bugfix b/changelog.d/4284.bugfix
deleted file mode 100644
index 4a9478fa2818b3d7b02a4c5d0d263025d69d89a8..0000000000000000000000000000000000000000
--- a/changelog.d/4284.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Add 'sandbox' to CSP for media reprository
diff --git a/changelog.d/4294.bugfix b/changelog.d/4294.bugfix
deleted file mode 100644
index 98114869fc4cc2d19fa4076644484dcb3f823d74..0000000000000000000000000000000000000000
--- a/changelog.d/4294.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Make the new landing page prettier.
diff --git a/changelog.d/4295.bugfix b/changelog.d/4295.bugfix
deleted file mode 100644
index e1603cbcda00fcfeec4a156d44538b846bfbb729..0000000000000000000000000000000000000000
--- a/changelog.d/4295.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix deleting E2E room keys when using old SQLite versions.
diff --git a/changelog.d/4297.misc b/changelog.d/4297.misc
deleted file mode 100644
index 63106e26f66814826387292cb5c26dd8be98bdbb..0000000000000000000000000000000000000000
--- a/changelog.d/4297.misc
+++ /dev/null
@@ -1 +0,0 @@
-Log room_id in Unknown room errors
diff --git a/changelog.d/4298.feature b/changelog.d/4298.feature
deleted file mode 100644
index 05ad70fe72da32aabebe3c8fa96c9c46ef64d107..0000000000000000000000000000000000000000
--- a/changelog.d/4298.feature
+++ /dev/null
@@ -1 +0,0 @@
-Synapse can now have its conditional/extra dependencies installed by pip. This functionality can be used by using `pip install matrix-synapse[feature]`, where feature is a comma separated list with the possible values "email.enable_notifs", "ldap3", "postgres", "saml2", "url_preview", and "test". If you want to install all optional dependencies, you can use "all" instead.
diff --git a/changelog.d/4303.feature b/changelog.d/4303.feature
deleted file mode 100644
index 1a563d4e646fb8f51d159baf57cafd80bd5893a1..0000000000000000000000000000000000000000
--- a/changelog.d/4303.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add routes for reading account data.
diff --git a/changelog.d/4305.bugfix b/changelog.d/4305.bugfix
deleted file mode 100644
index 499fb8207766b1180d9dc8af9c504888fd8b184f..0000000000000000000000000000000000000000
--- a/changelog.d/4305.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-The metric synapse_admin_mau:current previously did not update when config.mau_stats_only was set to True
diff --git a/changelog.d/4307.feature b/changelog.d/4307.feature
deleted file mode 100644
index 314fc031f043565cc8f32a1774198209edcefbaa..0000000000000000000000000000000000000000
--- a/changelog.d/4307.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add opt-in support for v2 rooms
diff --git a/changelog.d/4309.bugfix b/changelog.d/4309.bugfix
deleted file mode 100644
index 93b3a4f30bbe51c36feea25ca6796d73bd13897a..0000000000000000000000000000000000000000
--- a/changelog.d/4309.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixed per-room account data filters
diff --git a/changelog.d/4313.bugfix b/changelog.d/4313.bugfix
deleted file mode 100644
index d10685dd6231c738580d82acc45bb24d84b474b6..0000000000000000000000000000000000000000
--- a/changelog.d/4313.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix indentation in default config
diff --git a/changelog.d/4315.feature b/changelog.d/4315.feature
deleted file mode 100644
index 23e82fd02d93725a1a7f8f0d304737e08cb18eec..0000000000000000000000000000000000000000
--- a/changelog.d/4315.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add a script to generate a clean config file
diff --git a/changelog.d/4316.bugfix b/changelog.d/4316.bugfix
deleted file mode 100644
index bd152dc3717b53c5697a39e406ff3ad9e4eaafbf..0000000000000000000000000000000000000000
--- a/changelog.d/4316.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix synapse:latest docker upload
diff --git a/changelog.d/4317.bugfix b/changelog.d/4317.bugfix
deleted file mode 100644
index 61bad5f2da5512289934555bbead81a47b72cead..0000000000000000000000000000000000000000
--- a/changelog.d/4317.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix test_metric.py compatibility with prometheus_client 0.5. Contributed by Maarten de Vries <maarten@de-vri.es>.
diff --git a/changelog.d/4319.feature b/changelog.d/4319.feature
deleted file mode 100644
index 84221342bbd3a2b23a6ab5409bcf1f85dab69db9..0000000000000000000000000000000000000000
--- a/changelog.d/4319.feature
+++ /dev/null
@@ -1 +0,0 @@
-Return server data in /login response
\ No newline at end of file
diff --git a/changelog.d/4325.feature b/changelog.d/4325.feature
deleted file mode 100644
index 05ad70fe72da32aabebe3c8fa96c9c46ef64d107..0000000000000000000000000000000000000000
--- a/changelog.d/4325.feature
+++ /dev/null
@@ -1 +0,0 @@
-Synapse can now have its conditional/extra dependencies installed by pip. This functionality can be used by using `pip install matrix-synapse[feature]`, where feature is a comma separated list with the possible values "email.enable_notifs", "ldap3", "postgres", "saml2", "url_preview", and "test". If you want to install all optional dependencies, you can use "all" instead.
diff --git a/changelog.d/4326.bugfix b/changelog.d/4326.bugfix
deleted file mode 100644
index acce6266b8bc77a52f7d49ac6d1678871eea1276..0000000000000000000000000000000000000000
--- a/changelog.d/4326.bugfix
+++ /dev/null
@@ -1,2 +0,0 @@
-Avoid packaging _trial_temp directory in -py3 debian packages
-
diff --git a/changelog.d/4327.bugfix b/changelog.d/4327.bugfix
deleted file mode 100644
index 03bf05e05c8a7776f4863676f0be596389450f5a..0000000000000000000000000000000000000000
--- a/changelog.d/4327.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Check jinja version for consent resource
diff --git a/changelog.d/4330.bugfix b/changelog.d/4330.bugfix
deleted file mode 100644
index 666c9022e0bb63a66728f5c34b51f5c8f8d12046..0000000000000000000000000000000000000000
--- a/changelog.d/4330.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-fix NPE in /messages by checking if all events were filtered out
diff --git a/changelog.d/4333.misc b/changelog.d/4333.misc
deleted file mode 100644
index 43f7139a48d90396a087f49c55a9d035528c90ea..0000000000000000000000000000000000000000
--- a/changelog.d/4333.misc
+++ /dev/null
@@ -1 +0,0 @@
-Documentation improvements for coturn setup. Contributed by Krithin Sitaram.
diff --git a/changelog.d/4334.removal b/changelog.d/4334.removal
deleted file mode 100644
index d4b8c56b7dc284546b52b5e0b3b40a9c0f248063..0000000000000000000000000000000000000000
--- a/changelog.d/4334.removal
+++ /dev/null
@@ -1 +0,0 @@
-Remove the deprecated v1/register API on Python 2. It was never ported to Python 3.
diff --git a/changelog.d/4341.misc b/changelog.d/4341.misc
deleted file mode 100644
index 64af9a2c50561abb1083187d5fbfadc09c11bf5e..0000000000000000000000000000000000000000
--- a/changelog.d/4341.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update pull request template to use absolute links
\ No newline at end of file
diff --git a/changelog.d/4343.misc b/changelog.d/4343.misc
deleted file mode 100644
index 65b47171da99a9432e9e3365e295c97f3341abd8..0000000000000000000000000000000000000000
--- a/changelog.d/4343.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update README to not lie about required restart when updating TLS certificates
\ No newline at end of file
diff --git a/changelog.d/4344.bugfix b/changelog.d/4344.bugfix
deleted file mode 100644
index cf9a873db5365dd49de109c28754050f7a028dcb..0000000000000000000000000000000000000000
--- a/changelog.d/4344.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix synchrotron exploding due to being unable to access is_support_user in storage layer
diff --git a/changelog.d/4349.misc b/changelog.d/4349.misc
deleted file mode 100644
index 61bd4439cbf963deb7ddec0188aaf5ab54d4aef4..0000000000000000000000000000000000000000
--- a/changelog.d/4349.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update debian packaging for compatibility with transitional package
\ No newline at end of file
diff --git a/changelog.d/4353.misc b/changelog.d/4353.misc
deleted file mode 100644
index b08bd77f3dd8e973ce7189ea3fb747b627823841..0000000000000000000000000000000000000000
--- a/changelog.d/4353.misc
+++ /dev/null
@@ -1 +0,0 @@
-Fix command hint to generate a config file when trying to start without a config file
diff --git a/changelog.d/4356.bugfix b/changelog.d/4356.bugfix
deleted file mode 100644
index 321eb056520206d1c76b0a2a0857d1a10d603ed8..0000000000000000000000000000000000000000
--- a/changelog.d/4356.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix `python -m synapse.config` on Python 3.
diff --git a/changelog.d/4358.misc b/changelog.d/4358.misc
deleted file mode 100644
index 020dacb5476920be23118e21397469f6b7f4760a..0000000000000000000000000000000000000000
--- a/changelog.d/4358.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add better logging for unexpected errors while sending transactions