Contributing

Contributions are made through pull requests. Build and test locally, keep the source clean, and follow the project conventions below.

Before You Commit

Run make lint to check the source. It bundles five checks: cformat (C++ formatting), cinclude (#include ordering), flake8 (Python style and the 79-character line limit), checkascii (ASCII-only bytes), and checktws (no trailing whitespace). All sources are UTF-8, Unix LF, ASCII-only, and carry a modeline at the end of file. The Coding Style Guide page is the canonical reference.

Add tests for new behaviour. Python tests in tests/ are preferred; add a C++ gtest only when the behaviour cannot or should not be exercised from Python. See Testing for how to run them.

Pull Requests

Reference the related issue without closing keywords – write “Related to #725” rather than “fixes #725”, so that issue management is not driven by commit or PR text. Keep the subject concise and describe the change clearly.