Prepare release 24.07

Refs: #5323
Change-Id: Ia42962bc937083a67b8be84bbcba09c76f1afaa1
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index ad3828e..f12feaa 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -37,6 +37,7 @@
 set -x
 
 if [[ $ID == macos ]]; then
+    export HOMEBREW_NO_ENV_HINTS=1
     if [[ -n $GITHUB_ACTIONS ]]; then
         export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
     fi
diff --git a/docs/doxygen.conf.in b/docs/doxygen.conf.in
index 43cc9fe..d723c0f 100644
--- a/docs/doxygen.conf.in
+++ b/docs/doxygen.conf.in
@@ -1171,15 +1171,6 @@
 
 HTML_COLORSTYLE_GAMMA  = 91
 
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP         = NO
-
 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
 # documentation will contain sections that can be hidden and shown after the
 # page has loaded.
@@ -1747,14 +1738,6 @@
 
 LATEX_BIB_STYLE        = plain
 
-# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_TIMESTAMP        = NO
-
 #---------------------------------------------------------------------------
 # Configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -2123,23 +2106,6 @@
 
 DOT_NUM_THREADS        = 0
 
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE           = 10
-
 # By default doxygen will tell dot to use the default font as specified with
 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
 # the path where dot can find it using this tag.
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 374bf1a..e39ac9c 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,4 +1,4 @@
 Release Notes
 =============
 
-.. include:: release-notes/release-notes-22.12.rst
+.. include:: release-notes/release-notes-24.07.rst
diff --git a/docs/release-notes/release-notes-24.07.rst b/docs/release-notes/release-notes-24.07.rst
new file mode 100644
index 0000000..cccc160
--- /dev/null
+++ b/docs/release-notes/release-notes-24.07.rst
@@ -0,0 +1,63 @@
+NFD version 24.07
+-----------------
+
+*Release date: July 28, 2024*
+
+Important changes and new features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- The build dependencies 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 is *required* on all platforms
+
+- Ubuntu 24.04 (Noble), Debian 12 (Bookworm), and macOS 14 (Sonoma) are now officially supported
+
+- Added an official Dockerfile to the repository. From this Dockerfile, the following images are
+  currently published to the GitHub container registry:
+
+  - `named-data/nfd <https://github.com/named-data/NFD/pkgs/container/nfd>`__
+  - `named-data/nfd-autoreg <https://github.com/named-data/NFD/pkgs/container/nfd-autoreg>`__
+  - `named-data/nfd-status-http-server <https://github.com/named-data/NFD/pkgs/container/nfd-status-http-server>`__
+
+  All images are available for *linux/amd64* and *linux/arm64* platforms.
+
+- The default Unix socket path changed to ``/run/nfd/nfd.sock`` on Linux and to
+  ``/var/run/nfd/nfd.sock`` on all other platforms (:issue:`5304`)
+
+- Introduced a new strategy trigger :nfd:`onInterestLoop <Strategy::onInterestLoop>` that is
+  invoked when a duplicate Interest is received. The default behavior (sending a Nack packet)
+  remains unchanged except for the Multicast strategy, which will now suppress the Nack
+  transmission in this case (:issue:`5278`)
+
+- Multiple updates to the ASF forwarding strategy to more closely adhere to the behavior
+  described in the published technical report (:issue:`5310`)
+
+- The ASF strategy gained support for Nack propagation (:issue:`5311`)
+
+- The default port number of ``nfd-status-http-server`` changed to 6380
+
+Improvements and bug fixes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Several stability improvements in the face system, especially around error handling in
+  multicast faces and :nfd:`UnixStreamChannel` (:issue:`5030`, :issue:`5297`)
+
+- Refactor and improve logging in forwarding core and strategies (:issue:`5262`, :issue:`5267`)
+
+- Fix missing increment of ``nOutNacks`` counter when sending a Nack from ``onInterestLoop``
+
+- Optimize the removal of PIT in-records
+
+- Move RIB unit tests into ``unit-tests-daemon`` and eliminate the ``unit-tests-rib`` binary
+
+- Fix building the documentation with Python 3.12 (:issue:`5298`)
+
+- Reduce amount of debugging information produced in compiled binaries by default (:issue:`5279`)
+
+- Update waf build system to version 2.0.27
+
+- Various code cleanups, modernizations, and documentation improvements
diff --git a/docs/releases.rst b/docs/releases.rst
index 8afd0e1..e5b0d0c 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -9,17 +9,26 @@
 
    release-notes/*
 
-* **NFD version 22.12**
-  (:doc:`Release Notes <release-notes/release-notes-22.12>`, `Documentation <https://docs.named-data.net/NFD/22.12/>`__)
+* **NFD version 24.07**
+  \| :doc:`Release Notes <release-notes/release-notes-24.07>`
+  \| `GitHub <https://github.com/named-data/NFD/releases/tag/NFD-24.07>`__
+  \| `Source download <https://github.com/named-data/NFD/releases/download/NFD-24.07/nfd-24.07.tar.xz>`__
+  (`checksum <https://github.com/named-data/NFD/releases/download/NFD-24.07/nfd-24.07.tar.xz.sha256>`__)
+  \| `Documentation <https://docs.named-data.net/NFD/24.07/>`__
 
-  `src (git) <https://github.com/named-data/NFD/releases/tag/NFD-22.12>`__,
-  `src (tarball) <https://named-data.net/downloads/nfd-22.12.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-22.12.tar.bz2.sha256>`__)
+* **NFD version 22.12**
+  \| :doc:`Release Notes <release-notes/release-notes-22.12>`
+  \| `GitHub <https://github.com/named-data/NFD/releases/tag/NFD-22.12>`__
+  \| `Source download <https://named-data.net/downloads/nfd-22.12.tar.bz2>`__
+  (`checksum <https://named-data.net/downloads/nfd-22.12.tar.bz2.sha256>`__)
+  \| `Documentation <https://docs.named-data.net/NFD/22.12/>`__
 
 * **NFD version 22.02**
-  (:doc:`Release Notes <release-notes/release-notes-22.02>`, `Documentation <https://docs.named-data.net/NFD/22.02/>`__)
-
-  `src (git) <https://github.com/named-data/NFD/releases/tag/NFD-22.02>`__,
-  `src (tarball) <https://named-data.net/downloads/nfd-22.02.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-22.02.tar.bz2.sha256>`__)
+  \| :doc:`Release Notes <release-notes/release-notes-22.02>`
+  \| `GitHub <https://github.com/named-data/NFD/releases/tag/NFD-22.02>`__
+  \| `Source download <https://named-data.net/downloads/nfd-22.02.tar.bz2>`__
+  (`checksum <https://named-data.net/downloads/nfd-22.02.tar.bz2.sha256>`__)
+  \| `Documentation <https://docs.named-data.net/NFD/22.02/>`__
 
 * **NFD version 0.7.1**
   (:doc:`Release Notes <release-notes/release-notes-0.7.1>`, `Documentation <https://docs.named-data.net/NFD/0.7.1/>`__)
@@ -76,13 +85,13 @@
   `src (tarball) <https://named-data.net/downloads/nfd-0.6.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-0.6.0.tar.bz2.sha256>`__)
 
 * **NFD version 0.5.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.5.1>`, `Documentation <https://docs.named-data.net/NFD/0.5.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.5.1>`)
 
   `src (git) <https://github.com/named-data/NFD/releases/tag/NFD-0.5.1>`__,
   `src (tarball) <https://named-data.net/downloads/nfd-0.5.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-0.5.1.tar.bz2.sha256>`__)
 
 * **NFD version 0.5.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.5.0>`, `Documentation <https://docs.named-data.net/NFD/0.5.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.5.0>`)
 
   `src (git) <https://github.com/named-data/NFD/releases/tag/NFD-0.5.0>`__,
   `src (tarball) <https://named-data.net/downloads/nfd-0.5.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/nfd-0.5.0.tar.bz2.sha256>`__)
diff --git a/wscript b/wscript
index daaaa96..45f8b22 100644
--- a/wscript
+++ b/wscript
@@ -27,7 +27,7 @@
 import subprocess
 from waflib import Context, Logs, Utils
 
-VERSION = '22.12'
+VERSION = '24.07'
 APPNAME = 'nfd'
 GIT_TAG_PREFIX = 'NFD-'
 
@@ -99,7 +99,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)
 
     if not conf.options.without_systemd: