1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2020 AT&T Intellectual Property
8 All notable changes to this project will be documented in this file.
10 The format is based on `Keep a Changelog <http://keepachangelog.com/>`__
11 and this project adheres to `Semantic Versioning <http://semver.org/>`__.
16 * Extend RMR module to support wormhole methods
21 * Extend and publish class and method documentation as user guide in RST
26 * Use timeout on queue get method to avoid 100% CPU usage (`RIC-354 <https://jira.o-ran-sc.org/browse/RIC-354>`_)
27 * Upgrade to RMR version 4.0.5
32 * Use RMR timeout on receive to avoid 100% CPU usage (`RIC-354 <https://jira.o-ran-sc.org/browse/RIC-354>`_)
33 * Publish message-summary dict keys as constants to avoid hardcoding strings
34 * Add wrapper and test for RMR method rmr_set_vlevel(int)
39 * Upgrade to RMR version 4.0.2
44 * Upgrade to RMR version 3.8.0
50 * Publish API documentation using Sphinx autodoc, which required
51 changes so Sphinx can run when the RMR .so file is not available,
52 such as during a ReadTheDocs build.
53 * Create new subpackage rmr/rmrclib with the C library loaded via
55 * Extend sphinx configuration to mock the new rmrclib subpackage
56 * Add method to get constants from RMR library and detect mock
57 objects to work around a bug in Sphinx 3.0.0.
58 * Split test files into test_rmr and test_rmrclib.
59 * Add function to define argtype and restype values for library functions
60 * Configure intersphinx link for RMR man pages at ReadTheDocs.io
66 * Python rmr has been moved into this repo. The module name has NOT
67 changed in order to make the transition for repos very easy. The
68 only transition needed should be prefixing rmr with ricxappframe in
69 import statements, and to include this rather than rmr in setup.
75 * RMRXapps by default now implement the rmr healthcheck probe;
76 users can also override it with a more complex handler if they
78 * Fix a bug in the unit tests where a payload mismatch wouldn't
79 actually fail the test (would now)
85 * Switch to SI95 for rmr
91 * All xapps (via the base class) now have a logger attribute that can
92 be invoked to provide mdc logging. It is a passthrough to the RIC
93 mdc logger for python (untouched, no value in an API on top at the
100 * Switch tox to use py38
101 * switch to latest builders
107 * Minor breaking change; switches the default behavior RE
108 threading for RMRXapps. The default is not to return execution,
109 but the caller (in `run`) can choose to loop in a thread.
110 * Add Dockerized examples
116 * Large change to the "feel" of this framework: rather than subclass
117 instantiation, xapps now use initialization and registration
118 functions to register handlers
119 * rmr xapps can now register handlers for specific message types (and
120 they must prodive a default callback); if the user does this then
121 "message to function routing" is now handled by the framework itself
122 * RMRXapp now runs the polling loop in a thread, and returns execution
123 back to the caller. The user is then free to loop, or do nothing,
124 and call stop() when they want.
125 * Raises tox coverage minimum to 70 from 50 (currently at 86)
131 * now allows for RMRXapps to call code before entering the infinite
133 * stop is now called before throwing NotImplemented in the case where
134 the client fails to provide a must have callback; this ensures there
135 is no dangling rmr thread
136 * stop now calls rmr_close to correctly free up any port(s)
137 * (breaking) renames `loop` to `entrypoint` since the function does
138 not have to contain a loop (though it most likely does)
139 * Changes wording around the two types of xapps (docs only)
140 * Uses a new version of rmr python that crashes when the rmr mrc fails
141 to init, which prevents an xapp trying to use an unusable rmr
142 * more unit test code coverage
143 * Adds more fields to setup like long_desc and classifiers so the pypi
145 * Removes a bad release file (will be added back in subseq. commit)