Development

While not strictly a necessity, we assume that you installed the following developer dependencies:

in the text below.

Install

For development we recommend you clone the repository and install the package with uv:

uv venv --allow-existing
uv sync --all-extras

Check

just check

Test

Preparation

  • Please make sure that you sensor node has the name Test-STH

  • Set the environment variable DYNACONF_SENSOR_NODE__EUI to the MAC address of your sensor node. You can find this address using the command:

    uv run icon list
    

    If there is only a single node with the name Test-STH you can use the following nu shell command to set the environment variable:

    $env.DYNACONF_SENSOR_NODE__EUI = (uv run icon list |
                                      grep Test-STH |
                                      sed -E 's/.*MAC Address: ([0-9A-F-]+).*/\1/')
    
  • The tests will fail if you use recent sensor nodes with firmware 4.x or later for running the tests, since they report their own MAC address incorrectly.

Running

To run the tests, please use the following command:

just test

Release

Note: In the text below we assume that you want to release version <VERSION> of the package. Please just replace this version number with the version that you want to release (e.g. 0.2).

  1. Make sure that all the checks and tests work correctly locally

    just
    
  2. Make sure all workflows of the CI system work correctly

  3. Check that the most recent “Read the Docs” build of the documentation ran successfully

  4. Release a new version on PyPI:

    1. Increase version number

    2. Add git tag containing version number

    3. Push changes

    just release <VERSION>
    
  5. Open the release notes for the latest version and create a new release

    1. Paste them into the main text of the release web page

    2. Insert the version number into the tag field

    3. For the release title use “Version ”, where <VERSION> specifies the version number (e.g. “Version 0.2”)

    4. Click on “Publish Release”

    Note: Alternatively you can also use the gh command:

    gh release create
    

    to create the release notes.