Use blocking get call w/ timeout to read msg queue
[ric-plt/xapp-frame-py.git] / docs / developer-guide.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 Developer Guide
5 ===============
6
7 Tech Stack
8 ----------
9
10 The framework requires Python version 3.7 or later, and depends on
11 these packages provided by the O-RAN-SC project and third parties:
12
13 * msgpack
14 * mdclogpy
15 * ricsdl
16
17
18 Version bumping the framework
19 -----------------------------
20
21 This project follows semver. When changes are made, the versions are in:
22
23 #. ``docs/release-notes.rst``
24 #. ``setup.py``
25
26 Version bumping RMR
27 -------------------
28
29 These items in this repo must be kept in sync with the RMR version:
30
31 #. Dockerfile-Unit-Test
32 #. examples/Dockerfile-Ping
33 #. examples/Dockerfile-Pong
34 #. ``rmr-version.yaml`` controls what version of RMR is installed for
35    unit testing in Jenkins CI
36
37
38 Unit Testing
39 ------------
40
41 Running the unit tests requires the python packages ``tox`` and ``pytest``.
42
43 The RMR library is also required during unit tests. If running directly from tox
44 (outside a Docker container), install RMR according to its instructions.
45
46 Upon completion, view the test coverage like this:
47
48 ::
49
50    tox
51    open htmlcov/index.html
52
53 Alternatively, if you cannot install RMR locally, you can run the unit
54 tests in Docker. This is somewhat less nice because you don't get the
55 pretty HTML report on coverage.
56
57 ::
58
59    docker build  --no-cache -f Dockerfile-Unit-Test .