diff --git a/CHANGELOG.md b/CHANGELOG.md
index f798c1fa2766..31a4aae3db7f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,73 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
+
+## \[2.24.0\] - 2024-12-20
+
+### Added
+
+- \[CLI\] Added new commands: `project create`, `project delete`, `project ls`
+ ()
+
+- \[SDK\] You can now use `client.projects.remove_by_ids` to remove multiple
+ projects
+ ()
+
+- Support for boolean parameters in annotations actions
+ ()
+
+### Changed
+
+- Improved uniformity of validation frames distribution in honeypot tasks and
+ random honeypot rerolls
+ ()
+
+- \[CLI\] Switched to a new subcommand hierarchy; now CLI subcommands
+ have the form `cvat-cli `
+ ()
+
+- \[CLI\] The output of the `task create`, `task create-from-backup` and
+ `project create` commands is now just the created resource ID,
+ making it machine-readable
+ ()
+
+- /api/events can now be used to receive events from several sources
+ ()
+
+### Deprecated
+
+- \[CLI\] All existing CLI commands of the form `cvat-cli `
+ are now deprecated. Use `cvat-cli task ` instead
+ ()
+
+### Removed
+
+- Automatic calculation of quality reports in tasks
+ ()
+
+### Fixed
+
+- Uploading a skeleton template in configurator does not work
+ ()
+
+- Installation of YOLOv7 on GPU
+ ()
+
+- \[Server API\] Significantly improved preformance of honeypot changes in tasks
+ ()
+- \[Server API\] `PATCH tasks/id/validation_layout` responses now include correct
+ `disabled_frames` and handle simultaneous updates of
+ `disabled_frames` and honeypot frames correctly
+ ()
+
+- Fixed handling of tracks keyframes from deleted frames on export
+ ()
+
+- Exporting datasets could start significantly later than expected, both for 1
+ and several users in the same project/task/job ()
+- Scheduled RQ jobs could not be restarted due to incorrect RQ job status
+ updating and handling ()
+
## \[2.23.1\] - 2024-12-09
diff --git a/changelog.d/20241205_161129_mzhiltso_update_honeypot_selection.md b/changelog.d/20241205_161129_mzhiltso_update_honeypot_selection.md
deleted file mode 100644
index 7be75ebd7577..000000000000
--- a/changelog.d/20241205_161129_mzhiltso_update_honeypot_selection.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Changed
-
-- Improved uniformity of validation frames distribution in honeypot tasks and
- random honeypot rerolls
- ()
diff --git a/changelog.d/20241206_184906_roman_cli_hierarchy.md b/changelog.d/20241206_184906_roman_cli_hierarchy.md
deleted file mode 100644
index 24daab1df1f5..000000000000
--- a/changelog.d/20241206_184906_roman_cli_hierarchy.md
+++ /dev/null
@@ -1,20 +0,0 @@
-### Added
-
-- \[CLI\] Added new commands: `project create`, `project delete`, `project ls`
- ()
-
-- \[SDK\] You can now use `client.projects.remove_by_ids` to remove multiple
- projects
- ()
-
-### Changed
-
-- \[CLI\] Switched to a new subcommand hierarchy; now CLI subcommands
- have the form `cvat-cli `
- ()
-
-### Deprecated
-
-- \[CLI\] All existing CLI commands of the form `cvat-cli `
- are now deprecated. Use `cvat-cli task ` instead
- ()
diff --git a/changelog.d/20241207_024832_mzhiltso_disable_auto_quality_updates.md b/changelog.d/20241207_024832_mzhiltso_disable_auto_quality_updates.md
deleted file mode 100644
index 4ec74a986a78..000000000000
--- a/changelog.d/20241207_024832_mzhiltso_disable_auto_quality_updates.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Removed
-
-- Automatic calculation of quality reports in tasks
- ()
diff --git a/changelog.d/20241209_110126_sekachev.bs_support_boolean.md b/changelog.d/20241209_110126_sekachev.bs_support_boolean.md
deleted file mode 100644
index 4e0e98e1aba2..000000000000
--- a/changelog.d/20241209_110126_sekachev.bs_support_boolean.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Added
-
-- Support for boolean parameters in annotations actions
- ()
diff --git a/changelog.d/20241212_202223_sekachev.bs_fixed_skeleton_upload.md b/changelog.d/20241212_202223_sekachev.bs_fixed_skeleton_upload.md
deleted file mode 100644
index 7b9fb712ce87..000000000000
--- a/changelog.d/20241212_202223_sekachev.bs_fixed_skeleton_upload.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Fixed
-
-- Uploading a skeleton template in configurator does not work
- ()
diff --git a/changelog.d/20241212_212647_sekachev.bs_fixed_serverless_func.md b/changelog.d/20241212_212647_sekachev.bs_fixed_serverless_func.md
deleted file mode 100644
index 68edcaa306c8..000000000000
--- a/changelog.d/20241212_212647_sekachev.bs_fixed_serverless_func.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Fixed
-
-- Installation of YOLOv7 on GPU
- ()
diff --git a/changelog.d/20241213_192726_mzhiltso_optimize_validation_layout_updates.md b/changelog.d/20241213_192726_mzhiltso_optimize_validation_layout_updates.md
deleted file mode 100644
index 413b8b9746e6..000000000000
--- a/changelog.d/20241213_192726_mzhiltso_optimize_validation_layout_updates.md
+++ /dev/null
@@ -1,8 +0,0 @@
-### Fixed
-
-- \[Server API\] Significantly improved preformance of honeypot changes in tasks
- ()
-- \[Server API\] `PATCH tasks/id/validation_layout` responses now include correct
- `disabled_frames` and handle simultaneous updates of
- `disabled_frames` and honeypot frames correctly
- ()
diff --git a/changelog.d/20241216_144316_roman_machine_readable_create.md b/changelog.d/20241216_144316_roman_machine_readable_create.md
deleted file mode 100644
index f85c493ea5a4..000000000000
--- a/changelog.d/20241216_144316_roman_machine_readable_create.md
+++ /dev/null
@@ -1,6 +0,0 @@
-### Changed
-
-- \[CLI\] The output of the `task create`, `task create-from-backup` and
- `project create` commands is now just the created resource ID,
- making it machine-readable
- ()
diff --git a/changelog.d/20241216_210737_dmitrii.lavrukhin_events_endpoint.md b/changelog.d/20241216_210737_dmitrii.lavrukhin_events_endpoint.md
deleted file mode 100644
index c5ecca7be06b..000000000000
--- a/changelog.d/20241216_210737_dmitrii.lavrukhin_events_endpoint.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Changed
-
-- /api/events can now be used to receive events from several sources
- ()
diff --git a/changelog.d/20241216_211239_dmitrii.lavrukhin_deleted_track_keyframe.md b/changelog.d/20241216_211239_dmitrii.lavrukhin_deleted_track_keyframe.md
deleted file mode 100644
index 7310b2d7bb81..000000000000
--- a/changelog.d/20241216_211239_dmitrii.lavrukhin_deleted_track_keyframe.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### Fixed
-
-- Fixed handling of tracks keyframes from deleted frames on export
- ()
diff --git a/changelog.d/20241218_120228_maria_fix_export_job_lock_releasing.md b/changelog.d/20241218_120228_maria_fix_export_job_lock_releasing.md
deleted file mode 100644
index 28115fe7f6c5..000000000000
--- a/changelog.d/20241218_120228_maria_fix_export_job_lock_releasing.md
+++ /dev/null
@@ -1,6 +0,0 @@
-### Fixed
-
-- Exporting datasets could start significantly later than expected, both for 1
- and several users in the same project/task/job ()
-- Scheduled RQ jobs could not be restarted due to incorrect RQ job status
- updating and handling ()
diff --git a/cvat-cli/requirements/base.txt b/cvat-cli/requirements/base.txt
index ed0e7619253b..94b064e0ace5 100644
--- a/cvat-cli/requirements/base.txt
+++ b/cvat-cli/requirements/base.txt
@@ -1,3 +1,3 @@
-cvat-sdk~=2.23.2
+cvat-sdk~=2.24.1
Pillow>=10.3.0
setuptools>=70.0.0 # not directly required, pinned by Snyk to avoid a vulnerability
diff --git a/cvat-cli/src/cvat_cli/version.py b/cvat-cli/src/cvat_cli/version.py
index a8db20fc3a49..c176a6b233ec 100644
--- a/cvat-cli/src/cvat_cli/version.py
+++ b/cvat-cli/src/cvat_cli/version.py
@@ -1 +1 @@
-VERSION = "2.23.2"
+VERSION = "2.24.1"
diff --git a/cvat-sdk/gen/generate.sh b/cvat-sdk/gen/generate.sh
index 1131ef70d1c9..939ac9d65b44 100755
--- a/cvat-sdk/gen/generate.sh
+++ b/cvat-sdk/gen/generate.sh
@@ -8,7 +8,7 @@ set -e
GENERATOR_VERSION="v6.0.1"
-VERSION="2.23.2"
+VERSION="2.24.1"
LIB_NAME="cvat_sdk"
LAYER1_LIB_NAME="${LIB_NAME}/api_client"
DST_DIR="$(cd "$(dirname -- "$0")/.." && pwd)"
diff --git a/cvat/__init__.py b/cvat/__init__.py
index 8ebb57409985..cd11fa1758cc 100644
--- a/cvat/__init__.py
+++ b/cvat/__init__.py
@@ -4,6 +4,6 @@
from cvat.utils.version import get_version
-VERSION = (2, 23, 2, "alpha", 0)
+VERSION = (2, 24, 1, "alpha", 0)
__version__ = get_version(VERSION)
diff --git a/cvat/schema.yml b/cvat/schema.yml
index 38e74d7936e0..8af068ecc8b2 100644
--- a/cvat/schema.yml
+++ b/cvat/schema.yml
@@ -1,7 +1,7 @@
openapi: 3.0.3
info:
title: CVAT REST API
- version: 2.23.2
+ version: 2.24.1
description: REST API for Computer Vision Annotation Tool (CVAT)
termsOfService: https://www.google.com/policies/terms/
contact: