-.. ==================================================================================
-.. Copyright (c) 2019 Nokia
-.. Copyright (c) 2018-2019 AT&T Intellectual Property.
-..
-.. Licensed under the Apache License, Version 2.0 (the "License");
-.. you may not use this file except in compliance with the License.
-.. You may obtain a copy of the License at
-..
-.. http://www.apache.org/licenses/LICENSE-2.0
-..
-.. Unless required by applicable law or agreed to in writing, software
-.. distributed under the License is distributed on an "AS IS" BASIS,
-.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-.. See the License for the specific language governing permissions and
-.. limitations under the License.
-.. ==================================================================================
-
-A1 Mediator Release Notes
-=========================
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Release Notes
+===============
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog <http://keepachangelog.com/>`__
and this project adheres to `Semantic Versioning <http://semver.org/>`__.
-[1.0.0] - TBD
+.. contents::
+ :depth: 3
+ :local:
+
+
+[1.x.x] - TBD
+
+::
+
+ * Represents a resillent version of 1.0.0 that uses Redis for persistence
+
+[1.0.4]
+
+::
+
+ * Only external change here is to healthcheck the rmr thread as part of a1s healthcheck. k8s will now respin a1 if that is failing.
+ * Refactors (simplifies) how we wait for rmr initialization; it is now called as part of __init__
+ * Refactors (simplifies) how the thread is actually launched; it is now internal to the object and also a part of __init__
+ * Cleans up unit testing; a1rmr now exposes a replace_rcv_func; useful for unit testing, harmless if not called otherwise
+ * Upgrades to rmr-python 1.0.0 for simpler message allocation
+
+[1.0.3] - 10/22/2019
+
+::
+
+ * Move database cleanup (e.g., deleting instances based on statuses) into the polling loop
+ * Rework how unit testing works with the polling loop; prior, exceptions were being thrown silently from the thread but not printed. The polling thread has now been paramaterized with override functions for the purposes of testing
+ * Make type cleanup more efficient since we know exactly what instances were touched, and it's inefficient to iterate over all instances if they were not
+ * Bump rmr-python version, and bump rmr version
+ * Still an item left to do in this work; refactor the thread slightly to tie in a healthcheck with a1s healthcheck. We need k8s to restart a1 if that thread dies too.
+
+[1.0.2] - 10/17/2019
::
- * Release 1.0.0 will be the Release A version of A1
+ * a1 now has a seperate, continuous polling thread
+ this will enable operations like database cleanup (based on ACKs) and external notifications in real time,
+ rather than when the API is invoked
+ * all rmr send and receive operations are now in this thread
+ * introduces a thread safe job queue between the two threads
+ * Not done yet: database cleanups in the thread
+ * Bump rmr python version
+ * Clean up some logging
+
+[1.0.1] - 10/15/2019
+
+::
+
+ * Moves the "database" access calls to mimick the SDL API, in preparation for moving to SDL
+ * Does not yet actually use SDL or Redis, but the transition to those will be much shorter after this change.
+
+
+[1.0.0] - 10/7/2019
+
+::
+
+ * Represents v1.0.0 of the A1 API for O-RAN-SC Release A
+ * Finished here:
+ - Implement type DELETE
+ - Clean up where policy instance cleanups happen
+
+
+[0.14.1] - 10/2/2019
+::
+
+ * Upgrade rmr to 1.9.0
+ * Upgrade rmr-python to 0.13.2
+ * Use the new helpers module in rmr-python for the rec all functionality
+ * Switch rmr mode to a multithreaded mode that continuously reads from rmr and populates an internal queue of messages with a deterministic queue size (2048) which is better behavior for A1
+ * Fix a memory leak (python obj is garbage collected but not the underlying C memory allocation)
+
+
[0.14.0] - 10/1/2019
::
[0.12.1] - 9/20/2019
::
+
* switch to rmr 1.8.1 to pick up a non blocking variant of rmr that deals with bad routing tables (no hanging connections / blocking calls)
* improve test receiver to behave with this setup
* add integration test for this case