diff --git a/CHANGES.md b/CHANGES.md
index ef8595694..76c5ad6b2 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -9,6 +9,10 @@ creating a new release entry be sure to copy & paste the span tag with the
updated. Only the first match gets replaced, so it's fine to leave the old
ones in. -->
+## 2.4.0 (Released 2025-01-08)
+
+No significant changes. Released for consistency with Cylc release cycle.
+
## 2.3.2 (Released 2024-11-11)
### Fixes
diff --git a/metomi/rose/__init__.py b/metomi/rose/__init__.py
index 9f357664f..ff202275f 100644
--- a/metomi/rose/__init__.py
+++ b/metomi/rose/__init__.py
@@ -144,4 +144,4 @@
# Paths in the Rose distribution.
FILEPATH_README = "README.md"
-__version__ = "2.4.0.dev"
+__version__ = "2.4.0"