diff --git a/.jenkins b/.jenkins index 0f40e00..92b9dae 100755 --- a/.jenkins +++ b/.jenkins @@ -32,6 +32,9 @@ if [[ $JOB_NAME == *"code-coverage" ]]; then export DISABLE_HEADERS_CHECK=yes fi +# https://reproducible-builds.org/docs/source-date-epoch/ +export SOURCE_DATE_EPOCH=$(git log -1 --format=%ct) + for file in .jenkins.d/*; do [[ -f $file && -x $file ]] || continue diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh index ee8f4ba..f2ba812 100755 --- a/.jenkins.d/10-build.sh +++ b/.jenkins.d/10-build.sh @@ -27,7 +27,7 @@ if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then fi # Build in debug mode with tests -./waf --color=yes configure --debug --with-psync --with-chronosync --with-svs --with-tests $ASAN $COVERAGE +./waf --color=yes configure --debug --with-chronosync --with-psync --with-svs --with-tests $ASAN $COVERAGE ./waf --color=yes build # (tests will be run against the debug version) diff --git a/docs/doxygen.conf.in b/docs/doxygen.conf.in index efb75db..ea70692 100644 --- a/docs/doxygen.conf.in +++ b/docs/doxygen.conf.in @@ -1090,14 +1090,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 NO can help when comparing the output of multiple runs. -# The default value is: YES. -# 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. @@ -1367,17 +1359,6 @@ EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using prerendered bitmaps. Use this if you do not have LaTeX @@ -1640,16 +1621,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1980,15 +1951,6 @@ EXTERNAL_PAGES = YES # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - # If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2014,23 +1976,6 @@ HAVE_DOT = @HAVE_DOT@ DOT_NUM_THREADS = 0 -# When you want a differently looking font n 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 7a816ba..1f0ebcc 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -1,4 +1,4 @@ Release Notes ============= -.. include:: release-notes/release-notes-0.6.0.rst +.. include:: release-notes/release-notes-0.7.0.rst diff --git a/docs/release-notes/release-notes-0.7.0.rst b/docs/release-notes/release-notes-0.7.0.rst new file mode 100644 index 0000000..68326fa --- /dev/null +++ b/docs/release-notes/release-notes-0.7.0.rst @@ -0,0 +1,44 @@ +NLSR version 0.7.0 +------------------ + +Release date: August 18, 2023 + +New features +^^^^^^^^^^^^ + +- Add experimental support for State Vector Sync (SVS) (:issue:`5248`) +- ``nlsrc``: Add an option to query the status from remote routers (:issue:`4544`) + +Notable changes and improvements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- **Deprecate ChronoSync support**: ChronoSync support is now optional and excluded from the + default build; it remains available mainly for testing purposes (:issue:`5147`) +- Switched to the C++17 standard +- 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 ndn-cxx >= 0.8.1 are required on all platforms + - Sphinx 4.0 or later is required to build the documentation + +- Refactor LSDB for readability and add signals to notify of modifications (:issue:`4127`) +- Retrieve LSA from the face that triggered the notification of LSA changes +- Accommodate certificate name in ``KeyLocator`` (:issue:`5195`) +- Change ``sig-type`` to ``ecdsa-sha256`` in ``nlsr.conf`` as ndn-cxx now has strict checking for it +- Improve error handling and reporting +- Stop using the ``gold`` linker on Linux; prefer instead linking with ``lld`` if installed +- Update waf build system to version 2.0.24 +- Various test suite and documentation improvements + +Bug fixes +^^^^^^^^^ + +- lsdb: Fix for issues involving incorrect retransmission behavior in segment fetcher +- Prevent NLSR from unregistering route during update for router that advertised it initially + (:issue:`5179`) +- NameLsa: fix LSDB update bug by sorting the NPLs before difference +- Fix recurring sync prefix registration on every hello data (:issue:`5157`) +- Return the appropriate exit codes when executing ``nlsrc`` advertise/withdraw commands + (:issue:`5271`) diff --git a/docs/releases.rst b/docs/releases.rst index 0efddcc..9e9da64 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -1,5 +1,5 @@ -NLSR Versions -============= +All NLSR Releases +================= .. toctree:: :glob: @@ -9,6 +9,12 @@ NLSR Versions release-notes/* +* **NLSR version 0.7.0** + (:doc:`Release Notes `, `Documentation `__) + + `src (git) `__, + `src (tarball) `__ (`checksum `__) + * **NLSR version 0.6.0** (:doc:`Release Notes `, `Documentation `__) diff --git a/src/conf-parameter.hpp b/src/conf-parameter.hpp index 1bcf64c..687aa1c 100644 --- a/src/conf-parameter.hpp +++ b/src/conf-parameter.hpp @@ -1,6 +1,6 @@ /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* - * Copyright (c) 2014-2022, The University of Memphis, + * Copyright (c) 2014-2023, The University of Memphis, * Regents of the University of California, * Arizona Board of Regents. * @@ -531,7 +531,7 @@ class ConfParameter PUBLIC_WITH_TESTS_ELSE_PRIVATE: // must be incremented when breaking changes are made to sync - static constexpr uint64_t SYNC_VERSION = 10; + static constexpr uint64_t SYNC_VERSION = 11; AdjacencyList m_adjl; NamePrefixList m_npl; diff --git a/wscript b/wscript index 6beff79..bcf3261 100644 --- a/wscript +++ b/wscript @@ -22,7 +22,7 @@ NLSR, e.g., in COPYING.md file. If not, see . from waflib import Context, Logs, Utils import os, subprocess -VERSION = '0.6.0' +VERSION = '0.7.0' APPNAME = 'nlsr' GIT_TAG_PREFIX = 'NLSR-'