Changes to framework usage:

    * rather than subclass instantiation, xapps now use initialization and registration functions to register handlers
    * rmr xapps can now register handlers for specific message types (and they must prodive a default callback); if the user does this then "message to function routing" is now handled by the framework itself
    * RMRXapp now runs the polling loop in a thread, and returns execution back to the caller. The user is then free to loop, or do nothing, and call stop() when they want.
    * Raises tox coverage minimum to 70 from 50 (currently at 86)

Issue-ID: RIC-228
Change-Id: I15bfb708dbd14a46dc1207296e77383642d22b29
Signed-off-by: Tommy Carpenter <tc677g@att.com>
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 1caf93a..007a008 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -14,11 +14,21 @@
    :depth: 3
    :local:
 
+
+[0.3.0] - 3/10/2020
+-------------------
+::
+
+    * Large change to the "feel" of this framework: rather than subclass instantiation, xapps now use initialization and registration functions to register handlers
+    * rmr xapps can now register handlers for specific message types (and they must prodive a default callback); if the user does this then "message to function routing" is now handled by the framework itself
+    * RMRXapp now runs the polling loop in a thread, and returns execution back to the caller. The user is then free to loop, or do nothing, and call stop() when they want.
+    * Raises tox coverage minimum to 70 from 50 (currently at 86)
+
 [0.2.0] - 3/3/2020
 -------------------
 ::
 
-    * now allows for RMR Xapps to call code before entering the infinite loop
+    * now allows for RMRXapps to call code before entering the infinite loop
     * stop is now called before throwing NotImplemented in the case where the client fails to provide a must have callback; this ensures there is no dangling rmr thread
     * stop now calls rmr_close to correctly free up any port(s)
     * (breaking) renames `loop` to `entrypoint` since the function does not have to contain a loop (though it most likely does)