6892d1514c818180246673617fcc8b7e520cf810
[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 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2020 AT&T Intellectual Property
4
5 Developer Guide
6 ===============
7
8 This document explains how to maintain the RIC Xapp framework.
9 Information for users of this framework (i.e., Xapp developers) is in the User Guide.
10
11 Tech Stack
12 ----------
13
14 The framework requires Python version 3.7 or later, and depends on
15 these packages provided by the O-RAN-SC project and third parties:
16
17 * msgpack
18 * mdclogpy
19 * ricsdl
20 * protobuf
21
22
23 Version bumping the framework
24 -----------------------------
25
26 This project follows semver. When changes are made, the versions are in:
27
28 #. ``docs/release-notes.rst``
29 #. ``setup.py``
30
31 Version bumping RMR
32 -------------------
33
34 These items in this repo must be kept in sync with the RMR version:
35
36 #. Dockerfile-Unit-Test
37 #. examples/Dockerfile-Ping
38 #. examples/Dockerfile-Pong
39 #. ``rmr-version.yaml`` controls what version of RMR is installed for
40    unit testing in Jenkins CI
41
42 Registration/Deregistartion of Xapp
43 -----------------------------------
44
45 For registration and deregistration of Xapp following items need to be defined:
46
47 #. CONFIG_FILE_PATH variable as a environment variable in Dockerfile if running
48    Xapp as a docker container or in configmap in case of Xapp as a pod.
49 #. Copy the xappConfig.json into the docker image in Dockerfile.
50
51
52 Unit Testing
53 ------------
54
55 Running the unit tests requires the python packages ``tox`` and ``pytest``.
56
57 The RMR library is also required during unit tests. If running directly from tox
58 (outside a Docker container), install RMR according to its instructions.
59
60 Upon completion, view the test coverage like this:
61
62 ::
63
64    tox
65    open htmlcov/index.html
66
67 Alternatively, if you cannot install RMR locally, you can run the unit
68 tests in Docker. This is somewhat less nice because you don't get the
69 pretty HTML report on coverage.
70
71 ::
72
73    docker build  --no-cache -f Dockerfile-Unit-Test .