diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 19d245df1f7b6a66ce458b014a7ace4a5ea9f4a9..a474deec5d69854e52698c6d888d5b83a18f9800 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,8 +6,8 @@ All notable changes to this project will be documented in this file.
 The format is based on `Keep a Changelog`_,
 and this project adheres to `Semantic Versioning`_.
 
-Unreleased
-----------
+`2.9`_ - 2022-05-25
+-------------------
 
 Added
 ~~~~~
@@ -39,7 +39,7 @@ Changed
 * [Dev] ActionForm now returns a proper return value from the executed action
 * Pin version of javascript dependencies
 
-2.8.1`_ - 2022-03-13
+`2.8.1`_ - 2022-03-13
 --------------------
 
 Changed
@@ -826,3 +826,4 @@ Fixed
 .. _2.7.4: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.7.4
 .. _2.8: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8
 .. _2.8.1: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.8.1
+.. _2.9: https://edugit.org/AlekSIS/Official/AlekSIS/-/tags/2.9
diff --git a/docs/conf.py b/docs/conf.py
index dc58a3b9a1acc1ecb89552e27e33a4c66dd48c96..e528cd660b3c6a443f93a01880153264c6b4dcee 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -29,9 +29,9 @@ copyright = "2019-2022 The AlekSIS team"
 author = "The AlekSIS Team"
 
 # The short X.Y version
-version = "2.8"
+version = "2.9"
 # The full version, including alpha/beta/rc tags
-release = "2.8.2.dev0"
+release = "2.9"
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/pyproject.toml b/pyproject.toml
index d186fedd46cd899cebbf8fd8201838956a963e4c..18c05ccac281870ef5eee983b6bd0e58d7b73d9b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "AlekSIS-Core"
-version = "2.8.2.dev0"
+version = "2.9"
 packages = [
     { include = "aleksis" }
 ]