Contributing¶
Contributions are welcome. This page mirrors the top-level CONTRIBUTING.md file in the repository.
Clone, fork, and branch. Clone the repository with submodules, fork it on GitHub, add your fork as a remote, and create a topic branch:
git clone --recurse-submodules https://github.com/kamil-kielbasa/libedhoc.git cd libedhoc git remote add fork git@github.com:<you>/libedhoc.git git checkout -b feature/my-change
Set up the workspace (Zephyr). Initialise a shallow west workspace (the same flags CI uses):
west init -l libedhoc west update --narrow -o=--depth=1
Build. All builds go through
scripts/ci.sh— the same entry point every CI job calls.Linux (GCC):
scripts/ci.sh build --gcc
Linux (Clang):
scripts/ci.sh build --clang
Zephyr:
west build -b native_sim libedhoc/sample/benchmark
Code style. Run the formatter through
ci.sh:scripts/ci.sh formatTest. Run the test suite; fuzzers and sanitised builds (ASan / UBSan / Valgrind) are exercised by CI:
scripts/ci.sh test
Documentation. If you touch a public API or a header documented by Doxygen, rebuild the docs locally and confirm there are no warnings:
sphinx-build -W -b html doc doc/_build/html
Pull request. Open a PR against
mainwith a clear description and make sure every CI workflow is green.
See Testing for the full description of the test architecture and Configuration for build-time configuration options.