diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8035fc94..bd4e6c21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,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 diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh index a45615bf..e29f4686 100755 --- a/.jenkins.d/00-deps.sh +++ b/.jenkins.d/00-deps.sh @@ -22,7 +22,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[@]}" diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py index 4debb4e2..3a7bf660 100644 --- a/.waf-tools/default-compiler-flags.py +++ b/.waf-tools/default-compiler-flags.py @@ -145,9 +145,9 @@ class GccBasicFlags(CompilerFlags): flags = super(GccBasicFlags, self).getDebugFlags(conf) flags['CXXFLAGS'] += ['-Og', '-g3', - '-pedantic', '-Wall', '-Wextra', + '-Wpedantic', '-Werror', '-Wcatch-value=2', '-Wextra-semi', @@ -163,9 +163,9 @@ class GccBasicFlags(CompilerFlags): 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 9a3b4091..9eb63b30 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 . * Jerald Paul Abraham * ***(Maintainer)*** Alexander Afanasyev -* Syed Obai Amin +* Syed Obaid Amin * Hila Ben Abraham * Muktadir R Chowdhury * Tai-Lin Chu @@ -31,7 +31,7 @@ If you would like to become a contributor to the official repository, please fol * Eric Newberry * Ju Pan * João Pereira -* Davide Pesavento +* ***(Maintainer)*** Davide Pesavento * Felix Rabe * Md Ashiqur Rahman * Matteo Sammarco @@ -55,7 +55,7 @@ If you would like to become a contributor to the official repository, please fol * Patrick Crowley * Christos Papadopoulos -* Giovanni Pau +* Giovanni Pau * Tian Song * Lan Wang * Beichuan Zhang diff --git a/COPYING.md b/COPYING.md index 2d8dce99..d01ca336 100644 --- a/COPYING.md +++ b/COPYING.md @@ -21,11 +21,10 @@ NFD 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/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 ----------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- ### GNU GENERAL PUBLIC LICENSE diff --git a/README.md b/README.md index 910d3f25..beadc134 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ +
+ +[](https://named-data.net/) + # NFD: Named Data Networking Forwarding Daemon +
+ [![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 ab3c7525..00000000 --- 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 c9d8a4d4..9285f2b6 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 ade72442..b960b9a0 100644 --- a/docs/INSTALL.rst +++ b/docs/INSTALL.rst @@ -7,14 +7,10 @@ Supported platforms 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 @@ Downloading from git 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 @@ of NDN using the following applications and libraries. Sample applications: + `Simple examples using the ndn-cxx library `__ - + `Introductory examples of NDN-CCL - `__ + + `Simple examples using the python-ndn library `__ Real applications and libraries: + `ndn-tools - Essential NDN command-line tools `__ - + `ndn-traffic-generator - Traffic generator for NDN `__ - + `ChronoSync - Sync library for multi-user real-time applications `__ - + `PSync - Partial and full synchronization library `__ + + `ndn-traffic-generator - Simple traffic generator for NDN `__ + + `ndn-svs - State Vector Sync library `__ + + `PSync - Partial and full Sync library `__ diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst deleted file mode 100644 index 3a9709d3..00000000 --- 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 e54fc95b..c6e19a45 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 `__. -NFD is a core component of the `NDN Platform `__. - -NFD Documentation ------------------ - .. toctree:: :hidden: :maxdepth: 3 @@ -21,9 +14,16 @@ NFD Documentation :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 `__. +NFD is a core component of the `NDN Platform `__. + +Documentation +------------- + * :doc:`overview` A brief overview of NFD and its major modules. @@ -37,31 +37,35 @@ NFD Documentation Suggestions for configuring and running non-standard NFD setups. * :doc:`manpages` +* :doc:`release-notes` +* :doc:`releases` -Additional Documentation -^^^^^^^^^^^^^^^^^^^^^^^^ +For developers +^^^^^^^^^^^^^^ -* `NFD Developer's Guide `__ +* `NFD Developer's 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 `__ (guide for newcomers to the NDN community of software) * `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 `__ - + `NFD configuration file format `__ + + `NFD management protocol `__ + + `NDNLPv2 link protocol `__ -* `API Documentation (doxygen) `__ +* `API documentation (doxygen) `__ -* :doc:`RELEASE_NOTES` +Issues +------ -* :doc:`releases` +Please submit any bugs or feature requests to the +`NFD issue tracker `__. License ------- diff --git a/docs/manpages.rst b/docs/manpages.rst index b02f2817..3804626a 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 manpages/ndn-autoconfig-server local-prefix-discovery manpages/nfd-autoreg - :maxdepth: 1 diff --git a/docs/overview.rst b/docs/overview.rst index cff18ce5..e45286a4 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -24,7 +24,7 @@ performance. The intention is that performance optimizations are one type of ex 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 `__, +`developer's guide `__, which details the current implementation and provides tips for extending all aspects of NFD. @@ -69,7 +69,7 @@ NFD has the following major modules: - Management Implements the `NFD Management Protocol - `_, which allows + `__, 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 a24bd0a9..00000000 --- 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 00000000..374bf1ad --- /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 00000000..bfa3e021 --- /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 bc7c0832..067e78a2 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 `, `Documentation `__) + + `src (git) `__, + `src (tarball) `__ (`checksum `__) * **NFD version 22.02** (:doc:`Release Notes `, `Documentation `__) diff --git a/wscript b/wscript index 61aa0ace..333c959b 100644 --- a/wscript +++ b/wscript @@ -26,7 +26,7 @@ NFD, e.g., in COPYING.md file. If not, see . 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 @@ def configure(conf): 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: