diff --git a/CHANGELOG.md b/CHANGELOG.md
index f1b3b911f0f823c6552aca416edeed449058b973..e1db0395c4ff1765ea0df768b878d7c808b2e5a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,28 @@
+4.0.0 (2023-09-15)
+==================
+
+Bugfixes
+--------
+
+- Prefer server-level display names when available. ([\#888](https://github.com/matrix-org/matrix-appservice-discord/issues/888))
+- Update matrix-appservice-bridge to use a non-deprecated method of authenticating to a homeserver. Fixes #896. ([\#897](https://github.com/matrix-org/matrix-appservice-discord/issues/897))
+- Let file logs correctly ignore modules matching `"logging.files[*].disabled"` in the configuration file. ([\#902](https://github.com/matrix-org/matrix-appservice-discord/issues/902))
+
+
+Deprecations and Removals
+-------------------------
+
+- Node.JS 16 is now unsupported, please upgrade to Node.JS 18 or later. Node.JS 18 is now used for Docker. ([\#897](https://github.com/matrix-org/matrix-appservice-discord/issues/897))
+
+
+Internal Changes
+----------------
+
+- Update the package registry for better-discord.js, and use its latest release. ([\#898](https://github.com/matrix-org/matrix-appservice-discord/issues/898))
+- Modify the "start" and "debug" package scripts to not trigger a TypeScript build, and to accept a user-supplied command line option for the path to the bridge configuration file. ([\#900](https://github.com/matrix-org/matrix-appservice-discord/issues/900))
+- Update the GitHub action used for checking pull requests for sign-off status. ([\#901](https://github.com/matrix-org/matrix-appservice-discord/issues/901))
+
+
 3.1.1 (2022-11-10)
 ==================
 
diff --git a/changelog.d/888.bugfix b/changelog.d/888.bugfix
deleted file mode 100644
index dbb1c3b33cd31cbb5adda0132d869b60e4dfc5a7..0000000000000000000000000000000000000000
--- a/changelog.d/888.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Prefer server-level display names when available.
diff --git a/changelog.d/897.bugfix b/changelog.d/897.bugfix
deleted file mode 100644
index 1111acf0c2598496f78c7eb95cb836def97057ba..0000000000000000000000000000000000000000
--- a/changelog.d/897.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Update matrix-appservice-bridge to use a non-deprecated method of authenticating to a homeserver. Fixes #896.
diff --git a/changelog.d/897.removal b/changelog.d/897.removal
deleted file mode 100644
index 55a0192879da2a6228b978bcecd33bbd216841a4..0000000000000000000000000000000000000000
--- a/changelog.d/897.removal
+++ /dev/null
@@ -1 +0,0 @@
-Node.JS 16 is now unsupported, please upgrade to Node.JS 18 or later. Node.JS 18 is now used for Docker.
diff --git a/changelog.d/898.misc b/changelog.d/898.misc
deleted file mode 100644
index 4649dbbd80526436fa17f47a3fcb8486e98f4ef8..0000000000000000000000000000000000000000
--- a/changelog.d/898.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update the package registry for better-discord.js, and use its latest release.
diff --git a/changelog.d/900.misc b/changelog.d/900.misc
deleted file mode 100644
index 75ccd705be30a628c26c04fc63fbd7f6933a56d8..0000000000000000000000000000000000000000
--- a/changelog.d/900.misc
+++ /dev/null
@@ -1 +0,0 @@
-Modify the "start" and "debug" package scripts to not trigger a TypeScript build, and to accept a user-supplied command line option for the path to the bridge configuration file.
diff --git a/changelog.d/901.misc b/changelog.d/901.misc
deleted file mode 100644
index 21357c39ef9a622b6de916f35c4c8cc03a389631..0000000000000000000000000000000000000000
--- a/changelog.d/901.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update the GitHub action used for checking pull requests for sign-off status.
diff --git a/changelog.d/902.bugfix b/changelog.d/902.bugfix
deleted file mode 100644
index b93fa650c3a7b19feecb80ffd8f7487445e9fa9a..0000000000000000000000000000000000000000
--- a/changelog.d/902.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Let file logs correctly ignore modules matching "logging.files[*].disabled" in the configuration file.
diff --git a/package.json b/package.json
index 86f4c72d36925bfdb7a67da431048d0550a13dc9..f2ea8a3d924d0085a95d83f0a9351760b0b0b4e5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "matrix-appservice-discord",
-  "version": "3.1.1",
+  "version": "4.0.0",
   "description": "A bridge between Matrix and Discord",
   "main": "discordas.js",
   "engines": {