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-'
 
