From 0751bba88021b745c1a0ab7198efd279756c9a3c Mon Sep 17 00:00:00 2001 From: Davide Pesavento Date: Sat, 27 Jul 2024 20:20:24 -0400 Subject: [PATCH] Prepare release 0.9.0 Refs: #5323 Change-Id: Ifd67ae391221916679e79b7a321163792ca3af95 --- .jenkins.d/00-deps.sh | 1 + docs/doxygen.conf.in | 34 ------- docs/release-notes.rst | 2 +- docs/release-notes/release-notes-0.9.0.rst | 112 +++++++++++++++++++++ docs/releases.rst | 33 +++--- wscript | 2 +- 6 files changed, 136 insertions(+), 48 deletions(-) create mode 100644 docs/release-notes/release-notes-0.9.0.rst diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh index 0128e2618..b0e54a086 100755 --- a/.jenkins.d/00-deps.sh +++ b/.jenkins.d/00-deps.sh @@ -35,6 +35,7 @@ esac 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 afcd3312b..67c4978b7 100644 --- a/docs/doxygen.conf.in +++ b/docs/doxygen.conf.in @@ -1171,15 +1171,6 @@ HTML_COLORSTYLE_SAT = 0 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_HIDE_INDICES = NO 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 @@ HAVE_DOT = @HAVE_DOT@ 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 1b8eeecf8..1455a303c 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 000000000..895e71894 --- /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 `__ + - `named-data/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 19af1f991..d942796b3 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 @@ All ndn-cxx Releases release-notes/* -* **ndn-cxx version 0.8.1** - (:doc:`Release Notes `, `Documentation `__) +* **ndn-cxx version 0.9.0** + \| :doc:`Release Notes ` + \| `GitHub `__ + \| `Source download `__ + (`checksum `__) + \| `Documentation `__ - `src (git) `__, - `src (tarball) `__ (`checksum `__) +* **ndn-cxx version 0.8.1** + \| :doc:`Release Notes ` + \| `GitHub `__ + \| `Source download `__ + (`checksum `__) + \| `Documentation `__ * **ndn-cxx version 0.8.0** - (:doc:`Release Notes `, `Documentation `__) - - `src (git) `__, - `src (tarball) `__ (`checksum `__) + \| :doc:`Release Notes ` + \| `GitHub `__ + \| `Source download `__ + (`checksum `__) + \| `Documentation `__ * **ndn-cxx version 0.7.1** (:doc:`Release Notes `, `Documentation `__) @@ -72,13 +81,13 @@ All ndn-cxx Releases `src (tarball) `__ (`checksum `__) * **ndn-cxx version 0.5.1** - (:doc:`Release Notes `, `Documentation `__) + (:doc:`Release Notes `) `src (git) `__, `src (tarball) `__ (`checksum `__) * **ndn-cxx version 0.5.0** - (:doc:`Release Notes `, `Documentation `__) + (:doc:`Release Notes `) `src (git) `__, `src (tarball) `__ (`checksum `__) diff --git a/wscript b/wscript index 0f0ea01c6..1e1834431 100644 --- a/wscript +++ b/wscript @@ -4,7 +4,7 @@ import os import subprocess from waflib import Context, Logs, Utils -VERSION = '0.8.1' +VERSION = '0.9.0' APPNAME = 'ndn-cxx' GIT_TAG_PREFIX = 'ndn-cxx-'