Contributing#
Contributions — issues and pull requests — are welcome on GitHub, under the
terms below. See CONTRIBUTING.md at the repository root 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.
Tests and gates#
Build with AETHER_BUILD_TESTS=ON (CUDA or AETHER_CPP_MODE, see
Installation), then run the test-integrity gate — never the test
binary bare, since an empty --gtest_filter or a silently dropped test
both exit 0 from the binary alone:
tests/check_gate.sh cpp build/tests/aether_tests # or: cuda
It checks the executed test names against a committed manifest
(tests/expected_tests_{cuda,cpp}.txt), so a build that silently drops
a test is caught rather than just under-counted.
Building these docs#
cd docs
make strict # doxygen + sphinx -W --keep-going; 0 warnings required
make nbexec # execute every tutorial/example notebook in place
make nbcheck # refuse a build if any notebook cell did not run
make linkcheck
The C++ API reference is generated from Doxygen XML through breathe
(make doxygen alone also works, if you only need _doxybuild/xml
refreshed). docs/doxygen_allowlist.txt is the committed allowlist of
known, upstream Doxygen limitations — a new warning not already on that
list is a docs regression, not something to add to the list.
Docs-specific gates also run from the repository root:
tests/docs/check_docs.sh
which checks the doxygen-warning allowlist, that every symbol/path cited
in a docs page actually exists in the tree, that sphinx-build -W
succeeds, and that every embedded code excerpt still matches the test
file it was lifted from (tests/docs/check_examples.py — no drift
between a page and the source it quotes).