Prepare release 0.9.0
Refs: #5323
Change-Id: Ifd67ae391221916679e79b7a321163792ca3af95
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 0128e26..b0e54a0 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -35,6 +35,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 afcd331..67c4978 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
#---------------------------------------------------------------------------
@@ -2122,23 +2105,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 1b8eeec..1455a30 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,4 +1,4 @@
Release Notes
=============
-.. include:: release-notes/release-notes-0.8.1.rst
+.. include:: release-notes/release-notes-0.9.0.rst
diff --git a/docs/release-notes/release-notes-0.9.0.rst b/docs/release-notes/release-notes-0.9.0.rst
new file mode 100644
index 0000000..895e718
--- /dev/null
+++ b/docs/release-notes/release-notes-0.9.0.rst
@@ -0,0 +1,112 @@
+ndn-cxx version 0.9.0
+---------------------
+
+*Release date: July 28, 2024*
+
+Important changes and new features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- **C++17** is now *required* to build ndn-cxx and when including any of its header files
+
+- 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, two images are currently
+ published to the GitHub container registry:
+
+ - `named-data/ndn-cxx-build <https://github.com/named-data/ndn-cxx/pkgs/container/ndn-cxx-build>`__
+ - `named-data/ndn-cxx-runtime <https://github.com/named-data/ndn-cxx/pkgs/container/ndn-cxx-runtime>`__
+
+ Both images are available for *linux/amd64* and *linux/arm64* platforms.
+
+- The default forwarder socket path for Unix transports changed to ``/run/nfd/nfd.sock`` on Linux
+ and to ``/var/run/nfd/nfd.sock`` on all other platforms (:issue:`5304`)
+
+- On macOS, the default TPM backend is now **tpm-file** (the same as all other platforms)
+
+- :ndn-cxx:`Interest::matchesData` no longer considers ``MustBeFresh`` and ``FreshnessPeriod``
+ (:issue:`5270`)
+
+- Modernized several APIs to use ``std::string_view``
+
+- Added :ndn-cxx:`Interest::setApplicationParameters(std::string_view)` and
+ :ndn-cxx:`Data::setContent(std::string_view)` overloads for convenience
+
+- :ndn-cxx:`SegmentFetcher` gained an option to omit ``MustBeFresh`` from the first Interest sent
+
+- Moved :ndn-cxx:`DummyClientFace`, :ndn-cxx:`Segmenter`, and :ndn-cxx:`SegmentFetcher` to
+ namespace ``ndn``
+
+- Moved all :ndn-cxx:`Signal`-related classes to namespace ``ndn::signal``
+
+Improvements and bug fixes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Check the TLV type when constructing :ndn-cxx:`Name` from :ndn-cxx:`Block`
+
+- Provide relational operators for :ndn-cxx:`FaceUri`, to make it usable as a container key
+
+- Generalize and simplify :ndn-cxx:`time::fromUnixTimestamp` and :ndn-cxx:`time::toUnixTimestamp`
+
+- Prevent overflows in ``InterestLifetime`` and ``FreshnessPeriod`` (:issue:`4997`)
+
+- Make HMAC signing and verification compatible with OpenSSL 3.x (:issue:`5251`)
+
+- Better handling of large dates in :ndn-cxx:`ValidityPeriod` (:issue:`5176`)
+
+- :ndn-cxx:`NetworkMonitor` now ignore AWDL interfaces on macOS (:issue:`5074`)
+
+- Avoid dependency on *boost_program_options* when tools are disabled (:issue:`5210`)
+
+- Add fine-grained options to ``./waf configure`` to enable/disable the compilation of
+ benchmarks, integration tests, and unit tests independently
+
+- 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
+
+Deprecations
+^^^^^^^^^^^^
+
+- ``Face::getIoService()``. Use ``Face::getIoContext()`` instead.
+
+- ``Component::fromEscapedString()``. Use :ndn-cxx:`Component::fromUri` instead.
+
+- TPM unlock and related functionality. This includes ``Tpm::isTpmLocked()``,
+ ``Tpm::unlockTpm()``, ``Tpm::isTerminalMode()``, ``Tpm::setTerminalMode()``,
+ and the ``ndnsec-unlock-tpm`` command-line tool (:issue:`4754`)
+
+Removals
+^^^^^^^^
+
+- ``Block::wire()``. Use :ndn-cxx:`Block::data` instead.
+
+- :ndn-cxx:`Component` constructors that take a raw ``const uint8_t*``. Use the ``span``-based
+ constructors instead.
+
+- ``Component::fromImplicitSha256Digest()`` and ``Component::fromParametersSha256Digest()``
+
+- Previously deprecated overloads of ``Name::append()``
+
+- ``Name::push_back()``. Use :ndn-cxx:`Name::append` instead.
+
+- ``ndn::escape()`` and ``ndn::unescape()`` overloads that take raw strings as ``const char*`` +
+ ``size_t``. Use the corresponding ``std::string_view`` versions instead.
+
+- ``ndn::optional`` and ``ndn::variant``. Use C++17 ``std::optional`` and ``std::variant``
+ directly instead.
+
+- ``ndn::to_string()``. Use the standard C++ function ``std::to_string()`` instead.
+
+- Previously deprecated ``ndnsec`` command aliases (:issue:`5163`)
diff --git a/docs/releases.rst b/docs/releases.rst
index 19af1f9..d942796 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -1,5 +1,5 @@
-All ndn-cxx Releases
-====================
+Release History
+===============
.. toctree::
:glob:
@@ -9,17 +9,26 @@
release-notes/*
-* **ndn-cxx version 0.8.1**
- (:doc:`Release Notes <release-notes/release-notes-0.8.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.8.1/>`__)
+* **ndn-cxx version 0.9.0**
+ \| :doc:`Release Notes <release-notes/release-notes-0.9.0>`
+ \| `GitHub <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.9.0>`__
+ \| `Source download <https://github.com/named-data/ndn-cxx/releases/download/ndn-cxx-0.9.0/ndn-cxx-0.9.0.tar.xz>`__
+ (`checksum <https://github.com/named-data/ndn-cxx/releases/download/ndn-cxx-0.9.0/ndn-cxx-0.9.0.tar.xz.sha256>`__)
+ \| `Documentation <https://docs.named-data.net/ndn-cxx/0.9.0/>`__
- `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.1>`__,
- `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2.sha256>`__)
+* **ndn-cxx version 0.8.1**
+ \| :doc:`Release Notes <release-notes/release-notes-0.8.1>`
+ \| `GitHub <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.1>`__
+ \| `Source download <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2>`__
+ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2.sha256>`__)
+ \| `Documentation <https://docs.named-data.net/ndn-cxx/0.8.1/>`__
* **ndn-cxx version 0.8.0**
- (:doc:`Release Notes <release-notes/release-notes-0.8.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.8.0/>`__)
-
- `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.0>`__,
- `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2.sha256>`__)
+ \| :doc:`Release Notes <release-notes/release-notes-0.8.0>`
+ \| `GitHub <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.0>`__
+ \| `Source download <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2>`__
+ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2.sha256>`__)
+ \| `Documentation <https://docs.named-data.net/ndn-cxx/0.8.0/>`__
* **ndn-cxx version 0.7.1**
(:doc:`Release Notes <release-notes/release-notes-0.7.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.7.1/>`__)
@@ -72,13 +81,13 @@
`src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.0.tar.bz2.sha256>`__)
* **ndn-cxx version 0.5.1**
- (:doc:`Release Notes <release-notes/release-notes-0.5.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.5.1/>`__)
+ (:doc:`Release Notes <release-notes/release-notes-0.5.1>`)
`src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.5.1>`__,
`src (tarball) <https://named-data.net/downloads/ndn-cxx-0.5.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.5.1.tar.bz2.sha256>`__)
* **ndn-cxx version 0.5.0**
- (:doc:`Release Notes <release-notes/release-notes-0.5.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.5.0/>`__)
+ (:doc:`Release Notes <release-notes/release-notes-0.5.0>`)
`src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.5.0>`__,
`src (tarball) <https://named-data.net/downloads/ndn-cxx-0.5.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.5.0.tar.bz2.sha256>`__)
diff --git a/wscript b/wscript
index 0f0ea01..1e18344 100644
--- a/wscript
+++ b/wscript
@@ -4,7 +4,7 @@
import subprocess
from waflib import Context, Logs, Utils
-VERSION = '0.8.1'
+VERSION = '0.9.0'
APPNAME = 'ndn-cxx'
GIT_TAG_PREFIX = 'ndn-cxx-'