Prepare release 22.12
Refs: #5250
Change-Id: I6b9a3daab498cbffb78a108207e92bc2596be378
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8035fc9..bd4e6c2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -55,7 +55,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 a45615b..e29f468 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -22,7 +22,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 4debb4e..3a7bf66 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 9a3b409..9eb63b3 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -1,12 +1,12 @@
# NFD Authors
-The following lists maintainers, primary developers, and all much-appreciated contributors to NFD in alphabetic order.
+The following lists maintainers, primary developers, and all much-appreciated contributors to NFD in alphabetical order.
The specific contributions of individual authors can be obtained from the git history of the [official NFD repository](https://github.com/named-data/NFD).
-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>.
* Jerald Paul Abraham <https://cs.arizona.edu/~jeraldabraham>
* ***(Maintainer)*** Alexander Afanasyev <https://users.cs.fiu.edu/~afanasyev>
-* Syed Obai Amin <http://obaidamin.weebly.com>
+* Syed Obaid Amin <http://obaidamin.weebly.com>
* Hila Ben Abraham <https://sites.wustl.edu/hbabraham>
* Muktadir R Chowdhury <https://github.com/alvyC>
* Tai-Lin Chu <https://www.linkedin.com/pub/tai-lin-chu/55/5b2/669>
@@ -31,7 +31,7 @@
* Eric Newberry <https://ericnewberry.com>
* 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>
* Felix Rabe <https://twitter.com/felixrabe>
* Md Ashiqur Rahman <https://ashiqrahman.com>
* Matteo Sammarco <https://www.linkedin.com/in/matteo-sammarco-9b544530>
@@ -55,7 +55,7 @@
* Patrick Crowley <https://www.arl.wustl.edu/~pcrowley>
* Christos Papadopoulos <https://www.cs.colostate.edu/~christos>
-* Giovanni Pau <http://www.cs.ucla.edu/~gpau/Giovanni_Paus_Home_Page/Home.html>
+* Giovanni Pau <https://www.unibo.it/sitoweb/giovanni.pau/en>
* Tian Song <http://www.bit-netlab.org/songtian>
* Lan Wang <http://www.cs.memphis.edu/~lanwang>
* Beichuan Zhang <https://cs.arizona.edu/~bzhang>
diff --git a/COPYING.md b/COPYING.md
index 2d8dce9..d01ca33 100644
--- a/COPYING.md
+++ b/COPYING.md
@@ -21,11 +21,10 @@
- The waf build system is licensed under the terms of the
[BSD license](https://github.com/named-data/NFD/blob/master/waf)
-
The GPL license is provided below in this file. For more information about
-these licenses, see https://www.gnu.org/licenses/
+these licenses, see <https://www.gnu.org/licenses/>
-----------------------------------------------------------------------------------
+--------------------------------------------------------------------------------
### GNU GENERAL PUBLIC LICENSE
diff --git a/README.md b/README.md
index 910d3f2..beadc13 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/)
+
# NFD: Named Data Networking Forwarding Daemon
+</div>
+
[![CI](https://github.com/named-data/NFD/actions/workflows/ci.yml/badge.svg)](https://github.com/named-data/NFD/actions/workflows/ci.yml)
[![Docs](https://github.com/named-data/NFD/actions/workflows/docs.yml/badge.svg)](https://github.com/named-data/NFD/actions/workflows/docs.yml)
![Language](https://img.shields.io/badge/C%2B%2B-17-blue)
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/core/version.hpp.in b/core/version.hpp.in
index c9d8a4d..9285f2b 100644
--- a/core/version.hpp.in
+++ b/core/version.hpp.in
@@ -26,8 +26,9 @@
#ifndef NFD_CORE_VERSION_HPP
#define NFD_CORE_VERSION_HPP
-// NFD version follows Semantic Versioning 2.0.0 based on year and month of the release
-// https://semver.org/spec/v2.0.0.html
+// The NFD version follows the approach of Calendar Versioning (https://calver.org/)
+// based on the year and month of the release, followed by an optional "patch" number,
+// i.e., `YY.0M[.MICRO]` using CalVer notation.
//
// To change version number, modify the VERSION variable in the top-level wscript.
diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
index ade7244..b960b9a 100644
--- a/docs/INSTALL.rst
+++ b/docs/INSTALL.rst
@@ -7,14 +7,10 @@
NFD 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
NFD is known to work on the following platforms, although they are not officially
supported:
@@ -76,7 +72,7 @@
The first step is to obtain the source code for NFD and its main dependency, the
*ndn-cxx* library. If you do not want a development version of NFD, make sure you
-checkout the correct release tag (e.g., ``*-0.8.0``) from both repositories.
+checkout the correct release tag (e.g., ``*-0.8.1``) from both repositories.
.. code-block:: sh
@@ -283,12 +279,11 @@
Sample applications:
+ `Simple examples using the ndn-cxx library <https://named-data.net/doc/ndn-cxx/current/examples.html>`__
- + `Introductory examples of NDN-CCL
- <https://redmine.named-data.net/projects/application-development-documentation-guides/wiki/Step-By-Step_-_Common_Client_Libraries>`__
+ + `Simple examples using the python-ndn library <https://python-ndn.readthedocs.io/en/latest/src/examples/basic_app.html>`__
Real applications and libraries:
+ `ndn-tools - Essential NDN command-line tools <https://github.com/named-data/ndn-tools>`__
- + `ndn-traffic-generator - Traffic generator for NDN <https://github.com/named-data/ndn-traffic-generator>`__
- + `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 - Simple traffic generator for NDN <https://github.com/named-data/ndn-traffic-generator>`__
+ + `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>`__
diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst
deleted file mode 100644
index 3a9709d..0000000
--- a/docs/RELEASE_NOTES.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-NFD Release Notes
-=================
-
-.. include:: release-notes-latest.rst
diff --git a/docs/index.rst b/docs/index.rst
index e54fc95..c6e19a4 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,13 +1,6 @@
NFD: Named Data Networking Forwarding Daemon
============================================
-**NFD** is a network forwarder that implements and evolves together with the Named Data
-Networking (NDN) `protocol <https://named-data.net/doc/NDN-packet-spec/current/>`__.
-NFD is a core component of the `NDN Platform <https://named-data.net/codebase/platform/>`__.
-
-NFD Documentation
------------------
-
.. toctree::
:hidden:
:maxdepth: 3
@@ -21,9 +14,16 @@
:hidden:
:maxdepth: 1
- RELEASE_NOTES
+ release-notes
releases
+**NFD** is a network forwarder that implements and evolves together with the Named Data
+Networking (NDN) `protocol <https://named-data.net/doc/NDN-packet-spec/current/>`__.
+NFD is a core component of the `NDN Platform <https://named-data.net/codebase/platform/>`__.
+
+Documentation
+-------------
+
* :doc:`overview`
A brief overview of NFD and its major modules.
@@ -37,31 +37,35 @@
Suggestions for configuring and running non-standard NFD setups.
* :doc:`manpages`
+* :doc:`release-notes`
+* :doc:`releases`
-Additional Documentation
-^^^^^^^^^^^^^^^^^^^^^^^^
+For developers
+^^^^^^^^^^^^^^
-* `NFD Developer's Guide <https://named-data.net/publications/techreports/ndn-0021-10-nfd-developer-guide/>`__
+* `NFD Developer's Guide <https://named-data.net/publications/techreports/ndn-0021-11-nfd-guide/>`__
- A comprehensive guide to the design and implementation of NFD. The developer's guide also contains
- suggestions and hints for anyone wanting to modify or extend NFD.
+ A comprehensive guide to the design and implementation of NFD. The developer's guide
+ also contains suggestions and hints for anyone wanting to modify or extend NFD.
* `NDN Software Contributor's Guide <https://github.com/named-data/.github/blob/master/CONTRIBUTING.md>`__
(guide for newcomers to the NDN community of software)
* `NFD Wiki <https://redmine.named-data.net/projects/nfd/wiki>`__
- The NFD Wiki contains detailed protocol specifications and
- information for building on unsupported platforms.
+ The NFD Wiki contains detailed protocol specifications and information for building
+ on unsupported platforms.
- + `NFD Management protocol <https://redmine.named-data.net/projects/nfd/wiki/Management>`__
- + `NFD configuration file format <https://redmine.named-data.net/projects/nfd/wiki/ConfigFileFormat>`__
+ + `NFD management protocol <https://redmine.named-data.net/projects/nfd/wiki/Management>`__
+ + `NDNLPv2 link protocol <https://redmine.named-data.net/projects/nfd/wiki/NDNLPv2>`__
-* `API Documentation (doxygen) <doxygen/annotated.html>`__
+* `API documentation (doxygen) <doxygen/annotated.html>`__
-* :doc:`RELEASE_NOTES`
+Issues
+------
-* :doc:`releases`
+Please submit any bugs or feature requests to the
+`NFD issue tracker <https://redmine.named-data.net/projects/nfd/issues>`__.
License
-------
diff --git a/docs/manpages.rst b/docs/manpages.rst
index b02f281..3804626 100644
--- a/docs/manpages.rst
+++ b/docs/manpages.rst
@@ -1,9 +1,9 @@
-.. _Manpages:
-
-Manpages
-========
+Man pages
+=========
.. toctree::
+ :maxdepth: 1
+
manpages/nfd
manpages/nfdc
manpages/nfdc-status
@@ -20,4 +20,3 @@
manpages/ndn-autoconfig-server
local-prefix-discovery
manpages/nfd-autoreg
- :maxdepth: 1
diff --git a/docs/overview.rst b/docs/overview.rst
index cff18ce..e45286a 100644
--- a/docs/overview.rst
+++ b/docs/overview.rst
@@ -24,7 +24,7 @@
that developers can conduct by trying out different data structures and different
algorithms; over time, better implementations may emerge within the same design framework.
To facilitate such experimentation with the forwarder, the NFD team has also written a
-`developer's guide <https://named-data.net/publications/techreports/ndn-0021-10-nfd-developer-guide/>`__,
+`developer's guide <https://named-data.net/publications/techreports/ndn-0021-11-nfd-guide/>`__,
which details the current implementation and provides tips for extending all aspects of
NFD.
@@ -69,7 +69,7 @@
- Management
Implements the `NFD Management Protocol
- <https://redmine.named-data.net/projects/nfd/wiki/Management>`_, which allows
+ <https://redmine.named-data.net/projects/nfd/wiki/Management>`__, which allows
applications to configure NFD and set/query NFD's internal states. Protocol interaction
is done via NDN's Interest/Data exchange between applications and NFD.
diff --git a/docs/release-notes-latest.rst b/docs/release-notes-latest.rst
deleted file mode 120000
index a24bd0a..0000000
--- a/docs/release-notes-latest.rst
+++ /dev/null
@@ -1 +0,0 @@
-release-notes/release-notes-22.02.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..374bf1a
--- /dev/null
+++ b/docs/release-notes.rst
@@ -0,0 +1,4 @@
+Release Notes
+=============
+
+.. include:: release-notes/release-notes-22.12.rst
diff --git a/docs/release-notes/release-notes-22.12.rst b/docs/release-notes/release-notes-22.12.rst
new file mode 100644
index 0000000..bfa3e02
--- /dev/null
+++ b/docs/release-notes/release-notes-22.12.rst
@@ -0,0 +1,42 @@
+NFD version 22.12
+-----------------
+
+Release date: December 31, 2022
+
+Important changes and new features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- NFD now uses the C++17 standard to build
+
+- 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 is 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`)
+
+- The ASF, BestRoute, and Multicast strategies gained support for fine-grained configuration
+ of the retransmission suppression parameters (:issue:`4924`)
+
+Improvements and bug fixes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Prevent Ethernet faces from hanging NFD when a network interface goes down
+
+- Refactor the ``EndpointId`` implementation using ``std::variant`` (:issue:`5041`)
+
+- Better support for the new signed Interest format in management
+
+- Extend and optimize the use of precompiled headers (:issue:`5212`)
+
+- 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
diff --git a/docs/releases.rst b/docs/releases.rst
index bc7c083..067e78a 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -1,13 +1,19 @@
-NFD Versions
-++++++++++++
+All NFD Releases
+================
.. toctree::
- :glob:
- :hidden:
- :maxdepth: 1
- :reversed:
+ :glob:
+ :hidden:
+ :maxdepth: 1
+ :reversed:
- release-notes/*
+ release-notes/*
+
+* **NFD version 22.12**
+ (:doc:`Release Notes <release-notes/release-notes-22.12>`, `Documentation <https://named-data.net/doc/NFD/22.12/>`__)
+
+ `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.02**
(:doc:`Release Notes <release-notes/release-notes-22.02>`, `Documentation <https://named-data.net/doc/NFD/22.02/>`__)
diff --git a/wscript b/wscript
index 61aa0ac..333c959 100644
--- a/wscript
+++ b/wscript
@@ -26,7 +26,7 @@
from waflib import Context, Logs, Utils
import os, subprocess
-VERSION = '22.02'
+VERSION = '22.12'
APPNAME = 'nfd'
GIT_TAG_PREFIX = 'NFD-'
@@ -98,7 +98,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.0', '--cflags', '--libs'],
+ conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.8.1', '--cflags', '--libs'],
uselib_store='NDN_CXX', pkg_config_path=pkg_config_path)
if not conf.options.without_systemd: