Development¶
The tox.toml
and Makefile
provide an overview of the CI processing.
Makefile targets:
quick
: Uses thequick
environment in tox.test
: the full test suite, including static analysis.docs
: Creates the documentation.docs-coverage
: a report of how many modules, classes, methods, and functions have documentation.apidoc_gen
: re-generates anapidoc.rst
. Useful after significant revisions or extensions.
Tox environments.
default, used by
tox run
is a full test suite, and static analysis.quick
runs the tests in thetests
directory.demo
runs the tests in thedemo
directory.docs
runs doctest on the examples in the documentation.
Testing¶
There are three “tiers” of testing for Stingray Reader.
Unit testing.
Some tests use
pytest
. This should have 100% code coverage.Additional tests use
doctest
. These are examples from code and documentation that are also validated.
Integration testing. All of the sample files are processed through a test case to be sure they can be read.
Acceptance testing. The
demo
directory contains applications which serve as acceptance test cases.
Static Analysis¶
Additionally, ruff
and pyright
are used to be sure the code has no obvious flaws and the type hints are correct and consistent.
Documentation¶
Sphinx is used.
Note that diagrams are created with plantUML.
This relies on Java.
Both the Makefile
and the config.py
references to the required JAR file.
Makefile:
curl -LSf https://github.com/plantuml/plantuml/releases/download/v1.2024.7/plantuml-1.2024.7.jar -o .plantuml/plantuml-1.2024.7.jar
docs/source/config.py:
_plantuml_path = Path.cwd().parent.parent / ".plantuml" / "plantuml-1.2024.7.jar"
Yes. Both of these pin a specific version number. It changes rarely.