Thanks for your interest! Contributions of every size are welcome — bug reports, doc fixes, examples for new MCUs, peripheral models, or brand-new features.
git clone https://github.com/tevfik/ceedless
cd ceedless
make all # builds CLI, runs self-tests, example, CLI smokeYou need:
- A C11 compiler (
gccorclang) - GNU
make - Go ≥ 1.22 (only to build the CLI)
Verify your environment with:
./bin/ceedless doctorinclude/ceedless/ public C headers
src/ framework C sources (runner, mocks, peripherals, trace)
tests/ framework self-tests
examples/ reference users (sensor_driver/)
cli/ Go source of the `ceedless` CLI
docs/ CLI.md, TUTORIAL.md, …
C code
- C11, four-space indent, no tabs.
- All public API symbols are prefixed
ceedless_/CEEDLESS_/TEST_. - Headers carry an
SPDX-License-Identifier: MITline. - No dynamic allocation (the framework targets MCUs). Use static caps
configurable via macros like
CEEDLESS_MAX_TESTS,CEEDLESS_EXC_STACK. - Code must compile clean under
-Wall -Wextra -Wshadow -Wpedantic.
Go code
gofmt+go vetmust be clean before opening a PR (make lint).- Stdlib only — no third-party imports. The CLI must remain a single static binary with zero runtime dependencies.
- Each file starts with the SPDX/copyright header.
make all # full pipeline
make lint # gofmt + go vetTo run a single test program:
./bin/ceedless test -p mock # only tests matching "mock"- Fork & branch off
main. - Keep PRs focused — one feature or fix per PR.
- Add or update tests in
tests/covering your change. - Update
CHANGELOG.mdunder## [Unreleased]. - Update
docs/CLI.mdorREADME.mdif user-visible behavior changes. - Make sure
make allis green andmake lintproduces no output.
Please open an issue with:
- Output of
ceedless doctorandceedless version. - A minimal reproduction (smaller is better than complete).
- Expected vs actual behavior.
By contributing, you agree your contributions are licensed under the MIT License, the same as the rest of the project.