Development

The code hosting and the issue tracker is provided by GitHub.

Development requirements

  • make: to manage build scripts

  • composer: to install PHP development dependencies

  • pigz: (Optional) to build tests data, will fallback to a PHP script if not present

On Debian and derivatives:

sudo apt install make composer pigz

Build scripts

make        # Fetch development dependencies and build tests data.
make check  # Run tests.
make fuzz   # Run fuzzer.
make clean  # Clean all downloaded and generated files.

Compiling the documentation

The documentation is obviously generated using Sphinx, so the requierements are:

  • sphinx: the documentation generator

  • sphinxcontrib-phpdomain: to allow documenting PHP code

  • myst-parser: to include the Markdown formatted changelog

On Debian and derivatives:

sudo apt install sphinx-doc python3-sphinxcontrib.phpdomain python3-myst-parser

Then to build the documentation (see Builders for available builders):

make docs               # Using the default builder (html)
make docs BUILDER=epub  # Using a specific builder