diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 1f0ebcc..d537ed0 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,4 +1,4 @@
 Release Notes
 =============
 
-.. include:: release-notes/release-notes-0.7.0.rst
+.. include:: release-notes/release-notes-24.08.rst
diff --git a/docs/release-notes/release-notes-24.08.rst b/docs/release-notes/release-notes-24.08.rst
new file mode 100644
index 0000000..5bcc74d
--- /dev/null
+++ b/docs/release-notes/release-notes-24.08.rst
@@ -0,0 +1,49 @@
+NLSR version 24.08
+------------------
+
+*Release date: August 12, 2024*
+
+Notable changes
+^^^^^^^^^^^^^^^
+
+- We have moved over to the `CalVer <https://calver.org/>`__ versioning scheme to maintain
+  consistency with NFD going forward: 24.08 is the successor to 0.7.0
+
+- The minimum build requirements have been increased as follows:
+
+  - GCC >= 9.3 or Clang >= 7.0 are strongly *recommended* on Linux; GCC 8.x is also known
+    to work but is not officially supported
+  - Xcode 13 or later is *recommended* on macOS; older versions may still work but are not
+    officially supported
+  - Boost >= 1.71.0 and ndn-cxx >= 0.9.0 are *required* on all platforms
+
+- Added Dockerfile for NLSR. A prebuilt image for *linux/amd64* and *linux/arm64* platforms
+  is available on the `GitHub container registry <https://github.com/named-data/NLSR/pkgs/container/nlsr>`__
+
+Improvements
+^^^^^^^^^^^^
+
+- Defined equality operator for LSA classes and simplified LSA-related code in
+  :nlsr:`NamePrefixList` (:issue:`4094`)
+- Standardized on ``operator<<`` in LSA classes for printing rather than ``toString`` (:issue:`5308`)
+- Introduced use of Boost ``bimap`` and ``multi_array`` classes to simplify implementation of
+  :nlsr:`NameMap` and link-state calculations for :nlsr:`RoutingTable` respectively (:issue:`5308`)
+- Removed forward dependency on :nlsr:`ConfParameter` in :nlsr:`SyncLogicHandler` (:issue:`4208`)
+- Split routing calculator code from main class to separate files
+  with shared header to allow for transparent changes to routing code
+- Additional miscellaneous refactoring
+- Update waf build system to version 2.0.27
+- Fix building the documentation with Python 3.12 (:issue:`5298`)
+- Various miscellaneous improvements to build and CI scripts
+
+Bug fixes
+^^^^^^^^^
+
+- Prevent crashes if received segment lacks KeyLocator when LSDB is trying
+  to fetch a certificate
+- Prevent issues from dereferencing empty optional when link state calculator
+  was passed a non-existent source node (:issue:`5308`)
+- Hello data freshness has been dropped to 0 seconds; this prevents issues where Hellos can
+  be cached and cause delays in detecting link failures in certain cases (:issue:`5265`)
+- Removed dead links to tarballs in docs
+- Various adjustments to match ndn-cxx namespace changes
diff --git a/docs/releases.rst b/docs/releases.rst
index 54523c1..c0a3d3c 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -9,6 +9,13 @@
 
    release-notes/*
 
+* **NLSR version 24.08**
+  \| :doc:`Release Notes <release-notes/release-notes-24.08>`
+  \| `GitHub <https://github.com/named-data/NLSR/releases/tag/NLSR-24.08>`__
+  \| `Source download <https://github.com/named-data/NLSR/releases/download/NLSR-24.08/nlsr-24.08.tar.xz>`__
+  (`checksum <https://github.com/named-data/NLSR/releases/download/NLSR-24.08/nlsr-24.08.tar.xz.sha256>`__)
+  \| `Documentation <https://docs.named-data.net/NLSR/24.08/>`__
+
 * **NLSR version 0.7.0**
   (:doc:`Release Notes <release-notes/release-notes-0.7.0>`,
   `GitHub <https://github.com/named-data/NLSR/releases/tag/NLSR-0.7.0>`__,
diff --git a/src/conf-parameter.hpp b/src/conf-parameter.hpp
index 40eb7dd..70f5a65 100644
--- a/src/conf-parameter.hpp
+++ b/src/conf-parameter.hpp
@@ -531,7 +531,7 @@
 
 PUBLIC_WITH_TESTS_ELSE_PRIVATE:
   // must be incremented when breaking changes are made to sync
-  static constexpr uint64_t SYNC_VERSION = 11;
+  static constexpr uint64_t SYNC_VERSION = 12;
 
   AdjacencyList m_adjl;
   NamePrefixList m_npl;
diff --git a/src/version.hpp.in b/src/version.hpp.in
index 62b9936..b334b40 100644
--- a/src/version.hpp.in
+++ b/src/version.hpp.in
@@ -23,21 +23,13 @@
 
 namespace nlsr {
 
-/** NLSR version follows Semantic Versioning 2.0.0 specification
- *  http://semver.org/
- */
+// NLSR version version follows Calendar Versioning (https://calver.org/)
+// based on the year and month of the release, followed by an optional "patch" number,
+// i.e., `YY.0M[.MICRO (integer without a leading zero)]` using CalVer notation.
 
 // To change version number, modify VERSION variable in top-level wscript.
 
-/** \brief NLSR version represented as an integer
- *
- *  MAJOR*1000000 + MINOR*1000 + PATCH
- */
-#define NLSR_VERSION @VERSION@
-
-/** \brief NLSR version represented as a string
- *
- *  MAJOR.MINOR.PATCH
+/** \brief NLSR version represented as a string in the CalVer format
  */
 #define NLSR_VERSION_STRING "@VERSION_STRING@"
 
@@ -51,19 +43,12 @@
  *
  * When NLSR is built not from git, NLSR_VERSION_BUILD_STRING equals NLSR_VERSION_STRING
  *
- * MAJOR.MINOR.PATCH(-release-candidate-tag)(-(number-of-commits-since-tag)-COMMIT-HASH)
+ * YY.0M[.MICRO](-release-candidate-tag)(-(number-of-commits-since-tag)-COMMIT-HASH)
  *
- * Example, 0.1.0-rc1-1-g5c86570
+ * Example: 20.01.1-rc1-1-g5c86570
  */
 #define NLSR_VERSION_BUILD_STRING "@VERSION_BUILD@"
 
-/// MAJOR version
-#define NLSR_VERSION_MAJOR @VERSION_MAJOR@
-/// MINOR version
-#define NLSR_VERSION_MINOR @VERSION_MINOR@
-/// PATCH version
-#define NLSR_VERSION_PATCH @VERSION_PATCH@
-
 } // namespace nlsr
 
 #endif // NLSR_VERSION_HPP
diff --git a/wscript b/wscript
index f070b74..fbadf9f 100644
--- a/wscript
+++ b/wscript
@@ -23,7 +23,7 @@
 import subprocess
 from waflib import Context, Logs, Utils
 
-VERSION = '0.7.0'
+VERSION = '24.08'
 APPNAME = 'nlsr'
 GIT_TAG_PREFIX = 'NLSR-'
 
@@ -69,7 +69,7 @@
     conf.find_program(['pkgconf', 'pkg-config'], var='PKGCONFIG')
 
     pkg_config_path = os.environ.get('PKG_CONFIG_PATH', f'{conf.env.LIBDIR}/pkgconfig')
-    conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.8.1', '--cflags', '--libs'],
+    conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.9.0', '--cflags', '--libs'],
                    uselib_store='NDN_CXX', pkg_config_path=pkg_config_path)
 
     conf.check_boost(lib='filesystem', mt=True)
@@ -82,11 +82,11 @@
         conf.check_boost(lib='unit_test_framework', mt=True, uselib_store='BOOST_TESTS')
 
     if conf.options.with_chronosync:
-        conf.check_cfg(package='ChronoSync', args=['ChronoSync >= 0.5.5', '--cflags', '--libs'],
+        conf.check_cfg(package='ChronoSync', args=['ChronoSync >= 0.5.6', '--cflags', '--libs'],
                        uselib_store='CHRONOSYNC', pkg_config_path=pkg_config_path)
 
     if conf.options.with_psync:
-        conf.check_cfg(package='PSync', args=['PSync >= 0.4.0', '--cflags', '--libs'],
+        conf.check_cfg(package='PSync', args=['PSync >= 0.5.0', '--cflags', '--libs'],
                        uselib_store='PSYNC', pkg_config_path=pkg_config_path)
 
     if conf.options.with_svs:
@@ -123,13 +123,7 @@
         target='src/version.hpp',
         install_path=None,
         VERSION_STRING=VERSION_BASE,
-        VERSION_BUILD=VERSION,
-        VERSION=int(VERSION_SPLIT[0]) * 1000000 +
-                int(VERSION_SPLIT[1]) * 1000 +
-                int(VERSION_SPLIT[2]),
-        VERSION_MAJOR=VERSION_SPLIT[0],
-        VERSION_MINOR=VERSION_SPLIT[1],
-        VERSION_PATCH=VERSION_SPLIT[2])
+        VERSION_BUILD=VERSION)
 
     bld.objects(
         target='nlsr-objects',
