Skip to content

Commit

Permalink
Prepare release 0.8.1
Browse files Browse the repository at this point in the history
Refs: #5250
Change-Id: I99931c1300cd752554aea764e9688d027b5de29e
  • Loading branch information
Pesa committed Dec 31, 2022
1 parent 15fa994 commit 81de5d9
Show file tree
Hide file tree
Showing 17 changed files with 191 additions and 78 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
- 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
Expand Down
2 changes: 1 addition & 1 deletion .jenkins.d/00-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ set -x

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[@]}"
Expand Down
4 changes: 2 additions & 2 deletions .waf-tools/default-compiler-flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ def getDebugFlags(self, conf):
flags = super(GccBasicFlags, self).getDebugFlags(conf)
flags['CXXFLAGS'] += ['-Og',
'-g3',
'-pedantic',
'-Wall',
'-Wextra',
'-Wpedantic',
'-Werror',
'-Wcatch-value=2',
'-Wextra-semi',
Expand All @@ -163,9 +163,9 @@ def getOptimizedFlags(self, conf):
flags = super(GccBasicFlags, self).getOptimizedFlags(conf)
flags['CXXFLAGS'] += ['-O2',
'-g',
'-pedantic',
'-Wall',
'-Wextra',
'-Wpedantic',
'-Wcatch-value=2',
'-Wextra-semi',
'-Wnon-virtual-dtor',
Expand Down
8 changes: 4 additions & 4 deletions AUTHORS.md
Original file line number Diff line number Diff line change
@@ -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>
Expand All @@ -23,7 +23,7 @@ If you would like to become a contributor to the official repository, please fol
* 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>
Expand All @@ -39,7 +39,7 @@ If you would like to become a contributor to the official repository, please fol
* 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>
Expand Down
6 changes: 2 additions & 4 deletions COPYING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,16 @@ ndn-cxx relies on third-party software, licensed under the following licenses:
- 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/>

--------------------------------------------------------------------------------

Expand Down
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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

Expand Down
1 change: 0 additions & 1 deletion RELEASE_NOTES.rst

This file was deleted.

12 changes: 4 additions & 8 deletions docs/INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,10 @@ Supported platforms
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:
Expand Down Expand Up @@ -316,5 +312,5 @@ will be treated as errors. This default behavior can be overridden by setting th

.. code-block:: sh
CXXFLAGS="-O1 -g3" ./waf configure --debug --with-tests
...
CXXFLAGS="-O1 -g3 -Wall" ./waf configure --debug --with-tests
./waf
4 changes: 0 additions & 4 deletions docs/RELEASE_NOTES.rst

This file was deleted.

66 changes: 36 additions & 30 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -36,34 +16,60 @@ ndn-cxx Documentation
: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`
- `API documentation (doxygen) <doxygen/annotated.html>`__
- :doc:`code-style`

Additional Documentation
^^^^^^^^^^^^^^^^^^^^^^^^
Issues
------

- `API documentation (doxygen) <doxygen/annotated.html>`_
- :doc:`code-style`
- :doc:`RELEASE_NOTES`
- :doc:`releases`
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>`__.
10 changes: 5 additions & 5 deletions docs/manpages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ Man pages
=========

.. 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*
1 change: 0 additions & 1 deletion docs/release-notes-latest.rst

This file was deleted.

4 changes: 4 additions & 0 deletions docs/release-notes.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Release Notes
=============

.. include:: release-notes/release-notes-0.8.1.rst
4 changes: 2 additions & 2 deletions docs/release-notes/release-notes-0.8.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Important changes
^^^^^^^^^^^^^^^^^

- 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`_

Expand Down
102 changes: 102 additions & 0 deletions docs/release-notes/release-notes-0.8.1.rst
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit 81de5d9

Please sign in to comment.