Contributing¶
Issue reports, PRs, and forks welcome. This page is the short version of the workflow.
Workflow¶
Fork the repository on GitHub.
Create a feature branch:
git checkout -b feat/my-thing.Run the tests before you start:
pytest -q— everything should be green onmain.Make your change. Keep the diff focused.
Add or update tests. Public-facing changes also need a docs update (in
docs/).Run
pytestandmake -C docs htmllocally.Open a pull request with a clear problem statement and a
Test planchecklist.
Code style¶
Python: PEP 8 with
pylintenforcement in CI.Prefer explicit imports; avoid wildcard
from X import *.Error messages should include the offending model line / column wherever possible.
Wrap user-facing errors in
BTreeException.
Docs style¶
Sphinx sources under
docs/. ReST preferred for core pages; MyST (Markdown) acceptable for developer notes.Cross-reference liberally with
:doc:and:ref:.Keep the landing pipeline diagram in sync with any backend or input change — the source lives in
docs/_static/tikz/pipeline.tex.
Release process¶
Tagged releases follow semantic versioning. The maintainer publishes to
PyPI and cuts a GitHub release note; the exact script is in
scripts/.
Reporting issues¶
Open an issue with:
Your Python version and OS.
Whether nuXmv is installed and, if so, the version.
The
.treefile (minimised) that reproduces the problem.The full stack trace or the nuXmv stdout excerpt.