Prepare 0.5.0 release

Small fix to properly handle ndnsec identity check message and also update copyright years in several files.

Change-Id: I1fae8749f7d755f4af1ccca519c236480ff3f824
diff --git a/AUTHORS.md b/AUTHORS.rst
similarity index 80%
rename from AUTHORS.md
rename to AUTHORS.rst
index 4b7ca13..2bd28bb 100644
--- a/AUTHORS.md
+++ b/AUTHORS.rst
@@ -1,4 +1,5 @@
-# Mini-NDN Authors
+Mini-NDN Authors
+=================
 
 The following lists maintainers, primary developers, and all much-appreciated contributors to Mini-NDN in alphabetic order.
 The specific contributions of individual authors can be obtained from the git history of the [official Mini-NDN repository](https://github.com/named-data/mini-ndn).
@@ -8,22 +9,29 @@
 * Muktadir R. Chowdhury <https://github.com/alvyC>
 * Damian Coomes <https://github.com/dmcoomes>
 * ***(Maintainer)*** Saurab Dulal <https://dulalsaurab.github.io>
+* Laqin Fan <https://github.com/laqinfan>
 * ***(Former Maintainer)*** Ashlesh Gawande <https://www.linkedin.com/in/agawande>
 * Nicholas Gordon <https://github.com/gorgonical>
-* ***(Maintainer)*** Alexander Lane <https://github.com/zephyrmoth>
+* Giovanni Grieco <https://github.com/GiovanniGrieco>
+* ***(Maintainer)*** Alexander Lane <https://github.com/awlane>
 * Vince Lehman <http://vslehman.com>
 * Philipp Moll <https://github.com/phylib>
 * Eric Newberry <https://ericnewberry.com>
 * Junxiao Shi <https://cs.arizona.edu/~shijunxiao>
 * Jeff Thompson <https://remap.ucla.edu/jeff-thompson>
 * Yucheng Zhang <https://peterskycloud.wixsite.com/yzportfolio>
+* Italo Valcy S Brito <https://github.com/italovalcy>
 
-## Technical Advisors
+
+Technical Advisors
+-------------------
 
 * Lan Wang <http://www.cs.memphis.edu/~lanwang>
 * Beichuan Zhang <http://cs.arizona.edu/~bzhang>
 
-## The Mini-CCNx team
+
+The Mini-CCNx team
+-------------------
 
 * Carlos Cabral <https://github.com/carlosmscabral>
 * Caio de Moraes Elias <https://github.com/ocaio>
diff --git a/docs/authors.rst b/docs/authors.rst
new file mode 100644
index 0000000..94292d0
--- /dev/null
+++ b/docs/authors.rst
@@ -0,0 +1 @@
+.. include:: ../AUTHORS.rst
\ No newline at end of file
diff --git a/docs/conf.py b/docs/conf.py
index 54591c1..45fb6f2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -53,4 +53,9 @@
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
\ No newline at end of file
+html_static_path = ['_static']
+
+# Need to specify the line below if custom conf.py
+# https://github.com/readthedocs/readthedocs.org/issues/2569
+# https://stackoverflow.com/questions/56336234/build-fail-sphinx-error-contents-rst-not-found
+master_doc = 'index'
diff --git a/docs/experiment.rst b/docs/experiment.rst
index 58cc303..af95117 100644
--- a/docs/experiment.rst
+++ b/docs/experiment.rst
@@ -128,6 +128,10 @@
 in the ``minindn/apps`` folder. Or users may choose to directly run their application on nodes
 such as ndnpingserver is run in ``minindn/helpers/experiment.py``.
 
+**Note:** A certain log-level can be set-up for all the NFD or NLSR nodes at once by passing it as an argument during the startup.
+
+``nfds = AppManager(self.ndn, self.ndn.net.hosts, Nfd, logLevel='DEBUG')`` (same for NLSR)
+
 Execution
 ---------
 
@@ -233,3 +237,25 @@
 ``/tmp/minindn/<node-name>/security`` Note that no NLSR publishes the root
 certificate, Mini-NDN installs root.cert in security folder for each
 NLSR.
+
+Routing Options
+----------------
+
+Link State Routing (NLSR)
+_________________________
+By default, Mini-NDN uses `NLSR <https://github.com/named-data/NLSR>`__ for route management i.e route computation, route installation and so on. Additionally, the command line utility ``nlsrc`` can be used to advertise and withdraw prefixes and route status.
+
+
+NDN Routing Helper
+____________________
+Computes link-state or hyperbolic route/s from a given minindn topology and installs them in the FIB. The major benefit of the routing helper is to eliminate the overhead of NLSR when using larger topology. See ``examples/static_routing_experiment.py`` on how to use the helper class.
+
+**IMPORTANT:** NLSR and NDN Routing Helper are mutually exclusive, meaning you can only use one at a time, not both.
+
+**Note:** The current version of ``ndn_routing_helper`` is still in the experimental phase. It doesn't support node or link failure and runtime prefix advertisement/withdrawal. If you find any bug please report `here <https://redmine.named-data.net/projects/mini-ndn>`__ or contact the :doc:`authors <authors>`.
+
+IP Routing Helper
+____________________
+
+The routing helper allows to run IP-based evaluations with Mini-NDN. It configures static IP routes to all nodes, which means that all nodes can reach all other nodes in the network
+reachable, even when relaying is required. Please see ``examples/ip_rounting_experiment.py`` for a simple example.
diff --git a/docs/index.rst b/docs/index.rst
index d7d8f01..afc5d11 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -27,3 +27,4 @@
 * `Mininet Documentation <http://mininet.org/>`_
 * `Mini-NDN redmine <https://redmine.named-data.net/projects/mini-ndn>`_
 * `Mailing list <http://www.lists.cs.ucla.edu/mailman/listinfo/mini-ndn>`_
+* :doc:`Mini-NDN Team <authors>`
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 79cbb0f..67c5fc4 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,6 +1,62 @@
 Release Notes
 =============
 
+Mini-NDN version 0.5.0 (Major changes since version 0.4.0)
+----------------------------------------------------------
+
+**Breaking Changes**:
+
+-  `Mini-NDN re-design <https://redmine.named-data.net/issues/5062>`__: simple and robust design with better quality, control, and more consistency with Mininet
+
+**New features**:
+
+-  Add a script to generate up-to-date NDN testbed topologies for Mini-NDN
+
+-  Add Mini-NDN utility application for PCAP logging
+
+-  Add NDN routing helper to compute centralized LS and HR routes
+
+-  Add routing helper to allow IP communication in experiments
+
+-  Add startup experiments for NLSR and current testbed topology
+
+-  Move the NDNPing wrapper method to a helper class
+
+-  Create a helper class to provide a wrapper around ``nfdc``
+
+**Improvements and Bug Fixes**:
+
+-  Change workDir and resultDir to be class attribute
+
+-  Quiet apt install for Vagrant
+
+-  Fix route computation bug in ``ndn_routing_helper``
+
+-  Fix overwriting of existing prefixes in ``ndn_routing_helper``
+
+-  Move log files to resultDir after evaluation finishes
+
+-  Check for duplicate HR coordinates in the topology file
+
+-  Check PSync integration and add a tests case for it
+
+-  Bug fixes in nfdc and experiments
+
+-  Added functionality to check Mini-NDN dependencies
+
+-  Parser fix to avoid an infinite loop
+
+-  Allow use of NFD and NLSR PPA with Mini-NDN
+
+-  Remove arbitrary arguments in favor of parsing arguments from experiment files
+
+-  Auto-complete command-line arguments
+
+-  Add option to set CS size
+
+-  Adjust to use ndn-cxx logging
+
+
 Mini-NDN version 0.4.0 (changes since version 0.3.0)
 ----------------------------------------------------
 
diff --git a/examples/ip_rounting_experiment.py b/examples/ip_rounting_experiment.py
index 8237b9b..7f3829f 100644
--- a/examples/ip_rounting_experiment.py
+++ b/examples/ip_rounting_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/examples/mnndn.py b/examples/mnndn.py
index d989633..d56c35f 100644
--- a/examples/mnndn.py
+++ b/examples/mnndn.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/examples/static_routing_experiment.py b/examples/static_routing_experiment.py
index a5d9b04..e683bc9 100644
--- a/examples/static_routing_experiment.py
+++ b/examples/static_routing_experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/minindn/helpers/experiment.py b/minindn/helpers/experiment.py
index 226684e..a29272a 100644
--- a/minindn/helpers/experiment.py
+++ b/minindn/helpers/experiment.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/minindn/helpers/ndnpingclient.py b/minindn/helpers/ndnpingclient.py
index 8220a2d..37b63db 100644
--- a/minindn/helpers/ndnpingclient.py
+++ b/minindn/helpers/ndnpingclient.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/minindn/helpers/nfdc.py b/minindn/helpers/nfdc.py
index 4a9ebf2..16dabb8 100644
--- a/minindn/helpers/nfdc.py
+++ b/minindn/helpers/nfdc.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/minindn/helpers/process_monitor.py b/minindn/helpers/process_monitor.py
index 4fa3738..a202965 100644
--- a/minindn/helpers/process_monitor.py
+++ b/minindn/helpers/process_monitor.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
diff --git a/minindn/minindn.py b/minindn/minindn.py
index aa879cb..7b9c658 100644
--- a/minindn/minindn.py
+++ b/minindn/minindn.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #
@@ -26,7 +26,7 @@
 import time
 import os
 import configparser
-from subprocess import call, check_output
+from subprocess import call, Popen, PIPE
 import shutil
 import glob
 
@@ -98,11 +98,13 @@
             self.ethernetPairConnectivity()
 
         try:
-            Minindn.ndnSecurityDisabled = '/dummy/KEY/-%9C%28r%B8%AA%3B%60' in \
-                                          check_output('ndnsec-get-default -k'.split()). \
-                                              decode('utf-8').split('\n')
-            if Minindn.ndnSecurityDisabled:
-                info('Dummy key chain patch is installed in ndn-cxx. Security will be disabled.\n')
+            process = Popen(['ndnsec-get-default', '-k'], stdout=PIPE, stderr=PIPE)
+            output, error = process.communicate()
+            if process.returncode == 0:
+              Minindn.ndnSecurityDisabled = '/dummy/KEY/-%9C%28r%B8%AA%3B%60' in output
+              info('Dummy key chain patch is installed in ndn-cxx. Security will be disabled.\n')
+            else:
+              debug(error)
         except:
             pass
 
diff --git a/minindn/util.py b/minindn/util.py
index dd46557..8584ffc 100644
--- a/minindn/util.py
+++ b/minindn/util.py
@@ -1,6 +1,6 @@
 # -*- Mode:python; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
 #
-# Copyright (C) 2015-2019, The University of Memphis,
+# Copyright (C) 2015-2020, The University of Memphis,
 #                          Arizona Board of Regents,
 #                          Regents of the University of California.
 #