Prepare release 0.8.1
Refs: #5250
Change-Id: I99931c1300cd752554aea764e9688d027b5de29e
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b551e45..f328d39 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -53,7 +53,7 @@
- os: macos-12
xcode: '13.4'
- os: macos-12
- xcode: '14.1'
+ xcode: '14.2'
steps:
- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 9b1e073..c114f8d 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -21,7 +21,7 @@
if [[ $ID == macos ]]; then
if [[ -n $GITHUB_ACTIONS ]]; then
- export HOMEBREW_NO_INSTALL_UPGRADE=1
+ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
fi
brew update
brew install --formula "${FORMULAE[@]}"
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 536e3d3..f159fde 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -145,9 +145,9 @@
flags = super(GccBasicFlags, self).getDebugFlags(conf)
flags['CXXFLAGS'] += ['-Og',
'-g3',
- '-pedantic',
'-Wall',
'-Wextra',
+ '-Wpedantic',
'-Werror',
'-Wcatch-value=2',
'-Wextra-semi',
@@ -163,9 +163,9 @@
flags = super(GccBasicFlags, self).getOptimizedFlags(conf)
flags['CXXFLAGS'] += ['-O2',
'-g',
- '-pedantic',
'-Wall',
'-Wextra',
+ '-Wpedantic',
'-Wcatch-value=2',
'-Wextra-semi',
'-Wnon-virtual-dtor',
diff --git a/AUTHORS.md b/AUTHORS.md
index 13919c0..7c66d96 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -1,8 +1,8 @@
# ndn-cxx Authors
-The following lists maintainers, primary developers, and all much-appreciated contributors to ndn-cxx in alphabetic order.
+The following lists maintainers, primary developers, and all much-appreciated contributors to ndn-cxx in alphabetical order.
The specific contributions of individual authors can be obtained from the git history of the [official ndn-cxx repository](https://github.com/named-data/ndn-cxx).
-If you would like to become a contributor to the official repository, please follow the recommendations in https://github.com/named-data/.github/blob/master/CONTRIBUTING.md.
+If you would like to become a contributor to the official repository, please follow the recommendations in <https://github.com/named-data/.github/blob/master/CONTRIBUTING.md>.
* Sepehr Abdous <https://sepehrabdous.github.io>
* ***(Maintainer)*** Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev>
@@ -23,7 +23,7 @@
* Xiaoke Jiang <http://netarchlab.tsinghua.edu.cn/~shock>
* Marcin Juszkiewicz <https://marcin.juszkiewicz.com.pl>
* Luca Keidel <https://lucakeidel.de>
-* Spencer Lee <https://wwsw.linkedin.com/in/spenlee>
+* Spencer Lee <https://www.linkedin.com/in/spenlee>
* Vince Lehman <http://vslehman.com>
* Yanbiao Li <https://www.linkedin.com/pub/yanbiao-li/24/7a1/4ba>
* Teng Liang <https://cs.arizona.edu/~philoliang>
@@ -39,7 +39,7 @@
* Arthi Padmanabhan <https://github.com/arthipadmanabhan>
* Ju Pan <https://cs-jupan.com>
* João Pereira <http://website.jpereira.co.uk>
-* Davide Pesavento <https://github.com/Pesa>
+* ***(Maintainer)*** Davide Pesavento <https://github.com/Pesa>
* José Quevedo <http://atnog.av.it.pt/members/jquevedo>
* Md Ashiqur Rahman <https://ashiqrahman.com>
* Niv Sardi <http://core.evilgiggle.com>
diff --git a/COPYING.md b/COPYING.md
index c428a4c..bdcb0e3 100644
--- a/COPYING.md
+++ b/COPYING.md
@@ -26,18 +26,16 @@
- The waf build system is licensed under the terms of the
[BSD license](https://github.com/named-data/ndn-cxx/blob/master/waf)
-
The ndn-cxx library also relies on other third-party software with a GPL-incompatible
free software license. The following libraries fall into the category of "System
Libraries" under the GPL license definitions and are used in accordance with the GPL
license exception for "System Libraries":
-- (macOS platform only) The macOS Security Framework is licensed under the
+- *(macOS platform only)* The macOS Security Framework is licensed under the
[Apple Public Source License 2.0](https://opensource.apple.com/apsl)
-
The LGPL and GPL licenses are provided below in this file. For more information
-about these licenses, see https://www.gnu.org/licenses/
+about these licenses, see <https://www.gnu.org/licenses/>
--------------------------------------------------------------------------------
diff --git a/README.md b/README.md
index 1a06ea7..0a0dfcd 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,11 @@
+<div align="center">
+
+[<img alt height="70" src="docs/named_data_theme/static/ndn-logo.svg"/>](https://named-data.net/)
+
# ndn-cxx: NDN C++ library with eXperimental eXtensions
+</div>
+
[![CI](https://github.com/named-data/ndn-cxx/actions/workflows/ci.yml/badge.svg)](https://github.com/named-data/ndn-cxx/actions/workflows/ci.yml)
[![Docs](https://github.com/named-data/ndn-cxx/actions/workflows/docs.yml/badge.svg)](https://github.com/named-data/ndn-cxx/actions/workflows/docs.yml)
![Language](https://img.shields.io/badge/C%2B%2B-14-blue)
@@ -9,15 +15,16 @@
that can be used to write various NDN applications. The library is currently being
used by the following projects:
-* [NFD - NDN Forwarding Daemon](https://github.com/named-data/NFD)
-* [NLSR - Named-data Link-State Routing protocol](https://github.com/named-data/NLSR)
-* [ndn-tools - Essential NDN command-line tools](https://github.com/named-data/ndn-tools)
-* [repo-ng - Next generation NDN repository](https://github.com/named-data/repo-ng)
-* [ChronoSync - Sync library for multi-user real-time applications](https://github.com/named-data/ChronoSync)
-* [PSync - Partial and full synchronization library](https://github.com/named-data/PSync)
-* [ndn-traffic-generator - Traffic generator for NDN](https://github.com/named-data/ndn-traffic-generator)
-* [NAC - Name-based Access Control](https://github.com/named-data/name-based-access-control)
-* [NDNS - Domain Name Service for NDN](https://github.com/named-data/ndns)
+* [**NFD** - NDN Forwarding Daemon](https://github.com/named-data/NFD)
+* [**NLSR** - Named-data Link-State Routing protocol](https://github.com/named-data/NLSR)
+* [**ndn-tools** - Essential NDN command-line tools](https://github.com/named-data/ndn-tools)
+* [**ndn-svs** - State Vector Sync library](https://github.com/named-data/ndn-svs)
+* [**PSync** - Partial and full Sync library](https://github.com/named-data/PSync)
+* [**ChronoSync** - Sync library for distributed real-time applications *(deprecated)*](https://github.com/named-data/ChronoSync)
+* [**NAC** - Name-based Access Control library](https://github.com/named-data/name-based-access-control)
+* [**NDNCERT** - NDN certificate management protocol](https://github.com/named-data/ndncert)
+* [**repo-ng** - NDN repository implementation in C++ *(deprecated)*](https://github.com/named-data/repo-ng)
+* [**ndn-traffic-generator** - Simple NDN traffic generator](https://github.com/named-data/ndn-traffic-generator)
## Documentation
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
deleted file mode 120000
index ab3c752..0000000
--- a/RELEASE_NOTES.rst
+++ /dev/null
@@ -1 +0,0 @@
-docs/release-notes-latest.rst
\ No newline at end of file
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index 30dadaf..d1493dd 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -7,14 +7,10 @@
ndn-cxx is built against a continuous integration system and has been tested on the
following platforms:
-- Ubuntu 18.04
-- Ubuntu 20.04
-- Ubuntu 22.04
+- Ubuntu 18.04 / 20.04 / 22.04
- Debian 11
- CentOS Stream 9
-- macOS 10.15
-- macOS 11
-- macOS 12
+- macOS 10.15 / 11 / 12 / 13
ndn-cxx is known to work on the following platforms, although they are not officially
supported:
@@ -316,5 +312,5 @@
.. code-block:: sh
- CXXFLAGS="-O1 -g3" ./waf configure --debug --with-tests
- ...
+ CXXFLAGS="-O1 -g3 -Wall" ./waf configure --debug --with-tests
+ ./waf
diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst
deleted file mode 100644
index 04e2f84..0000000
--- a/docs/RELEASE_NOTES.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Release Notes
-=============
-
-.. include:: release-notes-latest.rst
diff --git a/docs/index.rst b/docs/index.rst
index 97bf2e4..3af74fe 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,26 +1,6 @@
ndn-cxx: NDN C++ library with eXperimental eXtensions
=====================================================
-**ndn-cxx** is a C++14 library implementing Named Data Networking (NDN) primitives
-that can be used to write various NDN applications. The library is currently being
-used by the following projects:
-
-* `NFD - NDN Forwarding Daemon <https://github.com/named-data/NFD>`_
-* `NLSR - Named-data Link-State Routing protocol <https://github.com/named-data/NLSR>`_
-* `ndn-tools - Essential NDN command-line tools <https://github.com/named-data/ndn-tools>`_
-* `repo-ng - Next generation of NDN repository <https://github.com/named-data/repo-ng>`_
-* `ChronoSync - Sync library for multiuser realtime applications <https://github.com/named-data/ChronoSync>`_
-* `PSync - Partial and full synchronization library <https://github.com/named-data/PSync>`_
-* `ndn-traffic-generator - Traffic generator for NDN <https://github.com/named-data/ndn-traffic-generator>`_
-* `NAC - Name-based Access Control <https://github.com/named-data/name-based-access-control>`_
-* `NDNS - Domain Name Service for NDN <https://github.com/named-data/ndns>`_
-
-Please submit any bugs or feature requests to the `ndn-cxx issue tracker
-<https://redmine.named-data.net/projects/ndn-cxx/issues>`_.
-
-ndn-cxx Documentation
----------------------
-
.. toctree::
:hidden:
:maxdepth: 3
@@ -36,34 +16,60 @@
:maxdepth: 1
code-style
- RELEASE_NOTES
+ release-notes
releases
+**ndn-cxx** is a C++14 library implementing Named Data Networking (NDN) primitives
+that can be used to write various NDN applications. The library is currently being
+used by the following projects:
+
+* `NFD - NDN Forwarding Daemon <https://github.com/named-data/NFD>`_
+* `NLSR - Named-data Link-State Routing protocol <https://github.com/named-data/NLSR>`_
+* `ndn-tools - Essential NDN command-line tools <https://github.com/named-data/ndn-tools>`_
+* `ndn-svs - State Vector Sync library <https://github.com/named-data/ndn-svs>`_
+* `PSync - Partial and full Sync library <https://github.com/named-data/PSync>`_
+* `ChronoSync - Sync library for distributed real-time applications (deprecated) <https://github.com/named-data/ChronoSync>`_
+* `NAC - Name-based Access Control library <https://github.com/named-data/name-based-access-control>`_
+* `NDNCERT - NDN certificate management protocol <https://github.com/named-data/ndncert>`_
+* `repo-ng - NDN repository implementation in C++ (deprecated) <https://github.com/named-data/repo-ng>`_
+* `ndn-traffic-generator - Simple NDN traffic generator <https://github.com/named-data/ndn-traffic-generator>`_
+
+Documentation
+-------------
+
- :doc:`INSTALL`
- :doc:`examples`
- :doc:`tutorials`
- + `NDN Software Contributor's Guide <https://github.com/named-data/.github/blob/master/CONTRIBUTING.md>`_ (guide for newcomers to the NDN community of software generally)
+ :doc:`tutorials/utils-ndn-regex`
+ :doc:`tutorials/security-validator-config`
+- :doc:`manpages`
+- :doc:`release-notes`
+- :doc:`releases`
+
+For developers
+^^^^^^^^^^^^^^
+
+- `NDN Software Contributor's Guide <https://github.com/named-data/.github/blob/master/CONTRIBUTING.md>`__
+ (guide for newcomers to the NDN community of software)
+
- :doc:`specs`
+ :doc:`specs/safe-bag`
+ :doc:`specs/signed-interest`
-- :doc:`manpages`
-
-Additional Documentation
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-- `API documentation (doxygen) <doxygen/annotated.html>`_
+- `API documentation (doxygen) <doxygen/annotated.html>`__
- :doc:`code-style`
-- :doc:`RELEASE_NOTES`
-- :doc:`releases`
+
+Issues
+------
+
+Please submit any bugs or feature requests to the
+`ndn-cxx issue tracker <https://redmine.named-data.net/projects/ndn-cxx/issues>`__.
License
-------
ndn-cxx is an open source project licensed under the LGPL version 3. For more information about
-the license, refer to `COPYING.md <https://github.com/named-data/ndn-cxx/blob/master/COPYING.md>`_.
+the license, refer to `COPYING.md <https://github.com/named-data/ndn-cxx/blob/master/COPYING.md>`__.
diff --git a/docs/manpages.rst b/docs/manpages.rst
index 7f01d30..c378ea7 100644
--- a/docs/manpages.rst
+++ b/docs/manpages.rst
@@ -2,9 +2,9 @@
=========
.. toctree::
- :glob:
- :maxdepth: 1
+ :glob:
+ :maxdepth: 1
- ndn-client.conf <manpages/ndn-client.conf>
- ndn-log: ndn-cxx logging <manpages/ndn-log>
- manpages/ndnsec*
+ ndn-client.conf <manpages/ndn-client.conf>
+ ndn-log: ndn-cxx logging <manpages/ndn-log>
+ manpages/ndnsec*
diff --git a/docs/release-notes-latest.rst b/docs/release-notes-latest.rst
deleted file mode 120000
index 34c2f6b..0000000
--- a/docs/release-notes-latest.rst
+++ /dev/null
@@ -1 +0,0 @@
-release-notes/release-notes-0.8.0.rst
\ No newline at end of file
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
new file mode 100644
index 0000000..1b8eeec
--- /dev/null
+++ b/docs/release-notes.rst
@@ -0,0 +1,4 @@
+Release Notes
+=============
+
+.. include:: release-notes/release-notes-0.8.1.rst
diff --git a/docs/release-notes/release-notes-0.8.0.rst b/docs/release-notes/release-notes-0.8.0.rst
index 752fa91..1cd0260 100644
--- a/docs/release-notes/release-notes-0.8.0.rst
+++ b/docs/release-notes/release-notes-0.8.0.rst
@@ -7,10 +7,10 @@
^^^^^^^^^^^^^^^^^
- Flip default value of ``CanBePrefix`` to **false** (:issue:`4582`). This means that
- Interests created without explicitly specifying ``CanBePrefix`` option, will be treaded
+ Interests created without explicitly specifying ``CanBePrefix`` option will be treated
as Interests for exact Data name.
-- Change default name component encoding convention to typed (:issue:`5044`)
+- Change default name component encoding convention to ``TYPED`` (:issue:`5044`)
- Update TLV-TYPE numbers to revision 3 of the `naming conventions`_
diff --git a/docs/release-notes/release-notes-0.8.1.rst b/docs/release-notes/release-notes-0.8.1.rst
new file mode 100644
index 0000000..ccba1ca
--- /dev/null
+++ b/docs/release-notes/release-notes-0.8.1.rst
@@ -0,0 +1,102 @@
+ndn-cxx version 0.8.1
+---------------------
+
+Release date: December 31, 2022
+
+.. note::
+ This is the last release of ndn-cxx to support the C++14 standard.
+ Future versions will require C++17 to build.
+
+Important changes and new features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- The minimum build requirements have been increased as follows:
+
+ - Either GCC >= 7.4.0 or Clang >= 6.0 is required on Linux
+ - On macOS, Xcode 11.3 or later is recommended; older versions may still work but are not
+ officially supported
+ - Boost >= 1.65.1 and OpenSSL >= 1.1.1 are required on all platforms
+ - Sphinx 4.0 or later is required to build the documentation
+
+- CentOS Stream 9 is now officially supported; CentOS 8 has been dropped (:issue:`5181`)
+
+- macOS 12 (Monterey) and 13 (Ventura) running on arm64 are now officially supported
+ (:issue:`5135`)
+
+- Add the initial version of a :ndn-cxx:`Segmenter` API that applications can use to simplify
+ the process of chunking a large object into multiple signed Data packets (:issue:`5247`)
+
+- Add ``KeyChain::makeCertificate()`` to simplify the creation of certificates
+
+- Put the full certificate name in the ``KeyLocator`` field, instead of just the key name
+ (:issue:`5112`)
+
+- NFD management commands sent by :ndn-cxx:`nfd::Controller` now use the `new signed Interest
+ format <https://named-data.net/doc/NDN-packet-spec/0.3/signed-interest.html>`__ (:issue:`4804`)
+
+Improvements and bug fixes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Several enhancements and cleanups in :ndn-cxx:`Name` and :ndn-cxx:`Component` to make
+ the API more consistent and simpler to use (:issue:`5186`)
+
+- Various improvements in the validation framework and policies
+
+ - Avoid redundant TLV decoding during Interest validation
+ - Fix validation of signed Interests with malformed ``InterestSignatureInfo``
+ - More accurate validation error codes are returned in several cases
+ - Rename ``ValidationError::NO_SIGNATURE`` to ``MALFORMED_SIGNATURE``
+
+- Optimize parsing of PIB and TPM locators in :ndn-cxx:`KeyChain`
+
+- Major cleanup and modernization of PIB implementation
+
+- Gracefully handle invalid or unsupported public keys stored in the PIB
+
+- Fix OpenSSL 3.0 deprecation warnings in private key generation routines (:issue:`5154`)
+
+- Change ``Certificate::getPublicKey()`` to return a ``span``
+
+- Make :ndn-cxx:`Block` convertible to ``span<const uint8_t>``
+
+- Avoid assertion failure in :ndn-cxx:`OBufferStream` under certain conditions (:issue:`5240`)
+
+- Allow customizing the FaceId in :ndn-cxx:`DummyClientFace` (:issue:`5011`)
+
+- Improve pretty-printing of certificates, e.g., in ``ndnsec list`` and ``ndnsec cert-dump``
+
+- Relax restrictions on KeyId component type in ``ndnsec key-gen``
+
+- Fix handling of ``--without-osx-keychain`` configure option (:issue:`3338`)
+
+- Stop using the ``gold`` linker on Linux; prefer instead linking with ``lld`` if installed
+
+- Update waf build system to version 2.0.24
+
+- Various documentation improvements
+
+Deprecations
+^^^^^^^^^^^^
+
+- ``Name::append()`` overloads and :ndn-cxx:`Component` constructors that take a
+ ``const uint8_t*``. Use the ``span``-based overloads instead.
+
+- ``Component::fromImplicitSha256Digest()`` and ``Component::fromParametersSha256Digest()``.
+ Use one of the constructors directly instead.
+
+Removals
+^^^^^^^^
+
+- Obsolete TLV-TYPE definitions
+
+- Many previously deprecated functions that take raw byte buffers as ``uint8_t*`` + ``size_t``,
+ replaced by equivalent functions that take a ``span``. These include ``Data::setContent()``,
+ ``Interest::setApplicationParameters()``, ``Block::fromBuffer()``, ``verifySignature()``,
+ ``PublicKey::loadPkcs8()``, ``transform::bufferSource()``, ``random::generateSecureBytes()``,
+ ``printHex()``, ``toHex()``, and so on.
+
+- Previously deprecated ``Name::append(Block)`` overload
+
+- Previously deprecated ``Interest::setDefaultCanBePrefix()``
+
+- ``ndn::any`` and related functionality
diff --git a/docs/releases.rst b/docs/releases.rst
index 32356db..7f8905e 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -2,12 +2,18 @@
====================
.. toctree::
- :glob:
- :hidden:
- :maxdepth: 1
- :reversed:
+ :glob:
+ :hidden:
+ :maxdepth: 1
+ :reversed:
- release-notes/*
+ release-notes/*
+
+* **ndn-cxx version 0.8.1**
+ (:doc:`Release Notes <release-notes/release-notes-0.8.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.8.1/>`__)
+
+ `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.0**
(:doc:`Release Notes <release-notes/release-notes-0.8.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.8.0/>`__)
diff --git a/wscript b/wscript
index c3686e3..029be35 100644
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@
from waflib import Context, Logs, Utils
import os, subprocess
-VERSION = '0.8.0'
+VERSION = '0.8.1'
APPNAME = 'ndn-cxx'
GIT_TAG_PREFIX = 'ndn-cxx-'