Contributing#

Contributions — issues and pull requests — are welcome on the GitHub repository, under the terms below. See the top-level CONTRIBUTING.md for the full statement.

Terms#

Contributions are accepted under the Apache License 2.0, the license this project ships under (inbound = outbound). Every contribution must carry a Developer Certificate of Origin sign-off (git commit -s); see https://developercertificate.org/ for what that certifies. There is no Contributor License Agreement and no relicensing right.

Running the tests#

pip install -e . pytest
pytest tests -m "not cross_repo"

cross_repo selects the eagle conformance battery, which needs an eagle checkout next to this one and fails rather than skips without it — leave it deselected unless you have that checkout.

Building these docs#

. /path/to/your/raptor-docs-env.sh   # sphinx, myst-nb, sphinx-book-theme,
                                      # sphinx-design, sphinx-copybutton,
                                      # sphinx-autodoc-typehints
cd docs
make html       # build
make strict     # build with -W --keep-going (0 warnings required)
make nbexec     # execute every tutorial/example notebook in place
make nbcheck    # fail unless every notebook is fully executed
make linkcheck  # internal + external link check

Notebooks under content/tutorials/ and content/examples/ are executed locally and committed with their outputs — make nbexec fills them in, make nbcheck is the gate that refuses an unfilled one. CI never re-executes them; it only renders the committed outputs.

Gates#

pytest tests -m "not cross_repo" is the suite gate; tests/test_packaging.py and tests/test_docs_interop_protocols_sync.py keep the package metadata and the published interop matrix in sync with the code that declares them. A docstring change that touches tests/ or any public API surface should be run through the affected test files before it lands.