diff --git a/.github/workflows/release-artifacts.yml b/.github/workflows/release-artifacts.yml
index 5d4a4fe1d6cf8f01cacac47e5ba598932b1beed4..9f0feffd9483903fa7311bffd8ccdfcdfd0968db 100644
--- a/.github/workflows/release-artifacts.yml
+++ b/.github/workflows/release-artifacts.yml
@@ -102,7 +102,7 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-20.04, macos-11]
+        os: [ubuntu-20.04, macos-12]
         arch: [x86_64, aarch64]
         # is_pr is a flag used to exclude certain jobs from the matrix on PRs.
         # It is not read by the rest of the workflow.
@@ -112,9 +112,9 @@ jobs:
         exclude:
           # Don't build macos wheels on PR CI.
           - is_pr: true
-            os: "macos-11"
+            os: "macos-12"
           # Don't build aarch64 wheels on mac.
-          - os: "macos-11"
+          - os: "macos-12"
             arch: aarch64
           # Don't build aarch64 wheels on PR CI.
           - is_pr: true
@@ -130,7 +130,7 @@ jobs:
           python-version: "3.x"
 
       - name: Install cibuildwheel
-        run: python -m pip install cibuildwheel==2.16.2
+        run: python -m pip install cibuildwheel==2.19.1
 
       - name: Set up QEMU to emulate aarch64
         if: matrix.arch == 'aarch64'
diff --git a/CHANGES.md b/CHANGES.md
index 94ee661151029f1f2555d7f5622be2e03aa8d2d3..9060b848531e86c1ad9d47b8d1c422892dea9e43 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,12 @@
+# Synapse 1.109.0 (2024-06-18)
+
+### Internal Changes
+
+- Fix the building of binary wheels for macOS by switching to macOS 12 CI runners. ([\#17319](https://github.com/element-hq/synapse/issues/17319))
+
+
+
+
 # Synapse 1.109.0rc3 (2024-06-17)
 
 ### Bugfixes
diff --git a/debian/changelog b/debian/changelog
index e5b7809bcf9f4c0492dc22c0c812c585f347bdd5..e9b05f8553a52c89da54a0b7a4e0d87ef1004b1c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+matrix-synapse-py3 (1.109.0) stable; urgency=medium
+
+  * New synapse release 1.109.0.
+
+ -- Synapse Packaging team <packages@matrix.org>  Tue, 18 Jun 2024 09:45:15 +0000
+
 matrix-synapse-py3 (1.109.0~rc3) stable; urgency=medium
 
   * New synapse release 1.109.0rc3.
diff --git a/pyproject.toml b/pyproject.toml
index 7567b1de40bfa44f340849062da62dd648efb90a..1485016a5a76e5a2683b21b925cd082e565659e1 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -96,7 +96,7 @@ module-name = "synapse.synapse_rust"
 
 [tool.poetry]
 name = "matrix-synapse"
-version = "1.109.0rc3"
+version = "1.109.0"
 description = "Homeserver for the Matrix decentralised comms protocol"
 authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
 license = "AGPL-3.0-or-later"