Development

Insall pip
python3 -m pip install
Clone the repository
git clone git@github.com:alanmehio/rf-surveillance-node.git
cd  rf-surveillance-node
Make the project in edit mode
pip install -e .

Then, for any changes in the code you can execute it from command line

rfnode  setting.json -vvv -ld /home/alan/tmp

Development Notes

Testing, Documentation Building, Scripts, CI/CD, Static Code Analysis for this project.

  1. Test Suite, using `pytest`_, located in tests dir

  2. Parallel Execution of Unit Tests, on multiple cpu’s

  3. Documentation Pages, hosted on readthedocs server, located in docs dir

  4. CI(Continuous Integration)/CD(Continuous Delivery) Pipeline, running on Github Actions, defined in .github/

    1. Test Job Matrix, spanning different platform’s and python version’s

      1. Platforms: ubuntu-latest

      2. Python Interpreters: 3.13

    2. Continuous Deployment

      Production

      1. Python Distristribution to `pypi.org`_, on tags v*, pushed to main branch

      2. Docker Image to `Dockerhub`_, on every push, with automatic Image Tagging

      Staging

      1. Python Distristribution to `test.pypi.org`_, on “pre-release” tags v*-rc, pushed to release branch

    3. Configurable Policies for Docker, and Static Code Analysis Workflows

  5. Automation, using `tox`_, driven by single tox.ini file

    1. Code Coverage measuring

    2. Build Command, using the `build`_ python package

    3. Pypi Deploy Command, supporting upload to both `pypi.org`_ and `test.pypi.org`_ servers

    4. Type Check Command, using `mypy`_

    5. Lint Check and Apply commands, using the fast `Ruff`_ linter, along with `isort`_ and `black`_

Prerequisites

You need to have Python and PySide6 installed for Development

API Documentation

We follow Google style documentation for packages, modules, classes, methods