blob: 6892d1514c818180246673617fcc8b7e520cf810 [file] [log] [blame]
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. Copyright (C) 2020 AT&T Intellectual Property
Developer Guide
===============
This document explains how to maintain the RIC Xapp framework.
Information for users of this framework (i.e., Xapp developers) is in the User Guide.
Tech Stack
----------
The framework requires Python version 3.7 or later, and depends on
these packages provided by the O-RAN-SC project and third parties:
* msgpack
* mdclogpy
* ricsdl
* protobuf
Version bumping the framework
-----------------------------
This project follows semver. When changes are made, the versions are in:
#. ``docs/release-notes.rst``
#. ``setup.py``
Version bumping RMR
-------------------
These items in this repo must be kept in sync with the RMR version:
#. Dockerfile-Unit-Test
#. examples/Dockerfile-Ping
#. examples/Dockerfile-Pong
#. ``rmr-version.yaml`` controls what version of RMR is installed for
unit testing in Jenkins CI
Registration/Deregistartion of Xapp
-----------------------------------
For registration and deregistration of Xapp following items need to be defined:
#. CONFIG_FILE_PATH variable as a environment variable in Dockerfile if running
Xapp as a docker container or in configmap in case of Xapp as a pod.
#. Copy the xappConfig.json into the docker image in Dockerfile.
Unit Testing
------------
Running the unit tests requires the python packages ``tox`` and ``pytest``.
The RMR library is also required during unit tests. If running directly from tox
(outside a Docker container), install RMR according to its instructions.
Upon completion, view the test coverage like this:
::
tox
open htmlcov/index.html
Alternatively, if you cannot install RMR locally, you can run the unit
tests in Docker. This is somewhat less nice because you don't get the
pretty HTML report on coverage.
::
docker build --no-cache -f Dockerfile-Unit-Test .