The zephyr-firmware profile covers Wavenumber-owned Zephyr
application repositories and west workspaces. It inherits the native C/C++
policy, then narrows signoff to owned application code first.
Returns the current Zephyr firmware profile.
Renders the Zephyr firmware profile as text or JSON.
Signoff scans owned application source roots. Zephyr, west modules, generated files, vendor trees, build outputs, temporary files, and captured hardware artifacts are excluded unless a project explicitly opts them in.
Projects should expose simple app-local build scripts that enable
CMAKE_EXPORT_COMPILE_COMMANDS=ON. The normal loop runs
prebuild signoff before west build and postbuild signoff after
the compile database is fresh.
Zephyr projects use signoff.toml to configure Lizard,
clang-format, and clang-tidy. Canonical new-code limits are
max_file_lines = 2200,
max_function_lines = 220, and
max_cyclomatic_complexity = 10. Existing projects may carry a
baseline so current debt is visible without permitting new debt.
[limits]
max_file_lines = 2200
max_function_lines = 220
max_cyclomatic_complexity = 10
[tools]
lizard = "fail"
clang_format = "report"
clang_tidy = "report"
clang-tidy runs against the active compile database. If the target requires a clang backend that is not installed, such as Xtensa on a host LLVM build, the project should report that limitation and keep the gate non-blocking until a matching clang toolchain is installed.
docs/setup.html or a project setup document must list west,
Zephyr SDK, board SDKs, dtc, LLVM tools, Python dependencies,
flashing tools, and any hardware required for release signoff.