diff --git a/docs/release-notes/release-notes-0.6.0.rst b/docs/release-notes/release-notes-0.6.0.rst
new file mode 100644
index 0000000..8510ad2
--- /dev/null
+++ b/docs/release-notes/release-notes-0.6.0.rst
@@ -0,0 +1,153 @@
+ndn-cxx version 0.5.1
+---------------------
+
+Release date: October 16, 2017
+
+Changes since version 0.5.1:
+
+New features:
+^^^^^^^^^^^^^
+
+- **breaking change** Security framework version 2 (:issue:`3098`, :issue:`3920`,
+   :issue:`3644`, :issue:`4085`, :issue:`4323`, :issue:`4339`)
+
+   The released version of the library only supports the new version of the security (v2
+   certificate format) and features a number of updates of KeyChain and Validator
+   interfaces. At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained
+   intact; transition to the new framework would require only adjusting
+   :ndn-cxx:`Validator::validate` calls and updating configuration files to follow the new
+   naming conventions of :ref:`NDN Certificate Format Version 2.0`.
+
+- Integration of fetching certificates using Certificate Bundle as part of specialized
+  ``CertificateFetcher`` (:issue:`3891`)
+
+- ``ForwardingHint``, ``Delegation``, and ``DelegationList``; refactoring of Interest encoding
+  to include ``ForwardingHint`` instead of ``LinkObject``, following the latest NDN
+  specification updates (:issue:`4054`, :issue:`4055`)
+
+- Fine-grained signals on interface/address changes in NetworkMonitor
+  for all supported platforms (:issue:`3353`, :issue:`4025`, :issue:`3817`, :issue:`4024`)
+
+- Addition of ``TxSequence`` field and ``Ack``, the first repeatable field in
+  NDNLPv2 (:issue:`3931`)
+
+- Optional ``LocalUri`` as part of ``ControlParameters`` and adjusting face creation command
+  and responses to handle the new optional field (:issue:`4014`, :issue:`4015`, :issue:`3956`)
+
+- ``LpReliability`` flag in Face management data structures (:issue:`4003`)
+
+- Backported implementation of C++17 classes ``ostream_joiner`` and ``optional``
+  (:issue:`3962`, :issue:`3753`)
+
+Improvements and bug fixes
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Removed dependency on CryptoPP library.  All cryptographic operations are now realized using
+  OpenSSL library routines and/or with the help of ``security::transform`` framework
+  (:issue:`3006`, :issue:`3946`, :issue:`3924`, :issue:`3886`).
+
+- Improved APIs for NFD management data structures, including equality comparators, formatted
+  output, etc.  (:issue:`3932`, :issue:`3903`, :issue:`3864`)
+
+- FaceUri now accepts link-local IPv6 addresses (:issue:`1428`)
+
+- Rename variables in ``FaceStatus`` and ``ForwarderStatus`` ('datas' => 'data')
+  (:issue:`3955`)
+
+- Improve logging framework and its uses
+
+  * Add API to enumerate Logger modules (:issue:`4013`)
+
+  * Advanced filtering of the logging modules (:issue:`3918`)
+
+  * Add logging capabilities to ``Face``, ``UnixTransport``, ``TcpTransport``, and the new
+    security framework (:issue:`3563`)
+
+  To enable logging, set environment variable ``NDN_LOG`` to enable specific, subset, or all
+  logging module at appropriate levels.  Examples:
+
+  ::
+
+     export NDN_LOG=*=ALL
+     export NDN_LOG=ndn.*=ALL
+     export NDN_LOG=ndn.security=DEBUG:ndn.TcpTransport=ALL
+
+- Ensure that ``Face`` sends ``Nack`` only after every ``InterestCallback`` has responded
+  (:issue:`4228`)
+
+- Fix potential overflow in ``time::toIsoString`` (:issue:`3915`)
+
+- Fix potentially misaligned memory accesses (:issue:`4172`, :issue:`4097`, :issue:`4175`,
+  :issue:`4190`, :issue:`4191`)
+
+- Fix potential memory access error in ``Face/PendingInterest`` (:issue:`4228`)
+
+- Improvements and streamlining of the ``security::transform`` framework
+
+- Source/header reorganization (:issue:`3940`)
+
+    * Move network-related files to ``src/net``
+
+      .. note::
+         Namespace changes
+
+         * ndn::util::FaceUri is now ndn::FaceUri
+         * ndn::util::ethernet is now ndn::ethernet
+         * ndn::util::NetworkMonitor and related classes are now in ndn::net
+
+    * Move signal-related files into ``src/util/signal/`` directory, except for
+      the main include ``signal.hpp``
+
+    * Move InMemoryStorage to ``src/ims``
+
+    * Rename ``digest.hpp`` to ``sha256.hpp`` to match the ``Sha256`` class declared within
+
+Removed
+^^^^^^^
+
+- Old security framework.
+
+  * ``v1::KeyChain``, use :ndn-cxx:`v2::KeyChain` instead
+
+  * ``v1::Validator`` interface and ``ValidatorRegex`` implementation of this
+    interface. ``ValidatorConfig``, ``ValidatorNull`` implementation refactored to be based on
+    the new validation framework.
+
+  * ``v1::SecPublicInfo`` and its implementation (``SecPublicInfoSqlite``), ``SecTpm`` and its
+    implementations (``SecTpmFile``, ``SecTpmOsx``).  These classes are internal implementation
+    and not intended to be used without ``v1::KeyChain``.  :ndn-cxx:`v2::KeyChain` internally
+    uses the newly introduced :ndn-cxx:`Pib` and :ndn-cxx:`Tpm` interfaces with their
+    corresponding implementations.
+
+  * ``v1::Certificate``, ``v1::IdentityCertificate``, ``v1::CertificateExtension``,
+    ``v1::CertificateSubjectDescription``, use :ndn-cxx:`v2::Certificate` and
+    :ndn-cxx:`AdditionalDescription`
+
+  * ``v1::SecuredBag``, use ``v2::SafeBag`` instead
+
+- Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`)
+
+- Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`)
+
+- ``security/cryptopp.hpp`` header
+
+- ``security/identity-certificate.hpp`` header
+
+- ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``,
+  ``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``.
+
+- ``Link`` and ``SelectedDelegation`` fields in ``Interest``, replaced by
+  ``ForwardingHint`` following the latest version of NDN specification (:issue:`4055`)
+
+- ``LocalControlHeader`` constants (:issue:`3755`)
+
+- ``NInDatas`` and ``NOutDatas`` (:issue:`3955`)
+
+- Overload of ``Block::Block`` that parses a ``Block`` from a ``void*`` buffer
+
+- Duplicate ``buf()`` and ``get()`` methods from ``Buffer`` class in favor of ``data()``
+
+- ``util/crypto.hpp``, ``crypto::sha256()``, and ``crypto::computeSha256Digest()`` in favor of
+  ``Sha256::computeDigest()``
+
+- Previously deprecated functions (:issue:`4055`)
