Documentation and continuous integration
The public repository uses GitHub Actions to test the supported Python versions, build the documentation, run security checks, validate the optional native Pythia interface and publish release artefacts.
Local documentation build
python -m pip install -e ".[docs]"
setanubis-docs --strict
The equivalent direct Sphinx command is:
sphinx-build -W --keep-going -b html Docs/manual/source Docs/manual/build/html
Warnings are treated as errors. Missing pages, images, API references or invalid markup therefore fail the documentation workflow.
GitHub Pages
The documentation workflow builds on main and develop and on pull
requests targeting either branch. Only a successful build from main is
deployed to GitHub Pages. Repository settings must use GitHub Actions as the
Pages source, and the github-pages environment must allow deployments from
main.
The expected public URL is:
https://set-anubis.github.io/set-anubis/
Local release-equivalent checks
Install the maintainer dependencies once:
python -m pip install -e ".[dev,docs,selection,madgraph]"
After each patch, run the fast consistency and contract checks:
python scripts/run_patch_checks.py
Before a release pull request or tag, run the complete gate:
python scripts/run_patch_checks.py --full
When PyPI is temporarily unreachable, maintainers can use
--skip-dependency-audit locally; the GitHub release workflow still performs
the mandatory online audit.
The fast mode validates release metadata, compiles the maintained Python files,
runs the release lint and executes the metadata, branding and release-workflow
contract tests. The full mode adds dependency and source security audits, the
complete test suite with coverage, all R1–R5 reproducibility scenarios, the
Pythia command-generation smoke test, strict Sphinx documentation and package
construction with twine validation.
Release gates
The CI matrix covers Python 3.10, 3.11, 3.12 and 3.13. A dedicated
Release metadata consistency job runs the repository-level metadata checker
on every pull request. The Python 3.12 job also runs the release lint,
dependency audit, high-severity source scan and coverage gate. A separate required Reproducibility / CPC R1-R5 workflow runs the five
deterministic CPC scenarios and uploads their generated evidence. Generated UFO code, optional Dash
applications, examples and external toolchains are excluded from the coverage
metric; the current minimum is 58 percent over the maintained production
modules.
Contract tests additionally verify the public facade, public docstrings, interface documentation, packaged example data, documentation assets, licence metadata and release-source cleanliness. The packaging job builds an sdist and wheel, checks their metadata and imports the installed wheel from outside the source tree.