Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Code Quality
Beez enforces style and safety through Makefile targets. CI runs the same pipeline as make all (see Submitting Changes).
Reports are written under report/:
| Subdirectory | Target | Tooling |
|---|---|---|
report/test/ | test | CTest |
report/format/ | format-check | clang-format, cmake-format |
report/lint/ | lint | clang-tidy, cmake-format |
report/analyze/ | analyze | cppcheck, clang-tidy |
report/security/ | security | clang-tidy security checks, cppcheck |
report/coverage/ | coverage | gcovr HTML report |
report/sanitize/ | sanitize | ASan/UBSan test run |
report/fuzz/ | fuzzer-smoke | libFuzzer stats |
Clear reports: make clean-reports.
make format # apply clang-format + cmake-format
make format-check # CI mode (dry-run, fails on diff)Formatted paths:
- All
*.cpp,*.hpp,*.hundersrc/,include/,tests/ - Listed
CMakeLists.txtfiles (root and subprojects)
Config files: .clang-format at repo root; cmake-format via cmakelang.
make lint # full clang-tidy pass via scripts/lint.sh
make lint-stale # incremental (changed or previously failed files)
make lint-stale-clean # reset incremental cache
make tidy # clang-tidy only, all filesRequires a configured build directory with compile_commands.json (make setup).
make analyze # cppcheck + clang-tidy (scripts/analyze.sh)make security # security-focused clang-tidy + cppcheck rulesmake coverageConfigures a Debug build with BUILD_COVERAGE=ON, runs tests, generates HTML under report/coverage/.
Target: line coverage on src/ must be ≥ 85%. CI enforces this via scripts/coverage-report.sh (MIN_LINE_COVERAGE, default 85). The summary step checks src/ only; the HTML report also includes tests/.
# Local check before a PR
make coverage
# Open report/coverage/index.html# Temporary lower threshold for experiments only
MIN_LINE_COVERAGE=80 make coveragemake sanitizeDebug build with AddressSanitizer and UndefinedBehaviorSanitizer, then runs the full test suite.
make fuzzer-smokeBuilds fuzz_lua_dsl and runs against committed corpus seeds for FUZZER_TIME seconds (default 30).
make allRuns in order:
buildtestformat-checklintanalyzesecuritycoveragesanitizefuzzer-smoke
Definition of done for features: make all exits zero and line coverage on src/ is at least 85%.
| Goal | Command |
|---|---|
| Quick compile check | make build |
| Fast feedback on one file | make lint-stale after make build |
| Format before commit | make format |
| Reproduce CI locally | STRICT_CI=1 ./scripts/ci.sh |
- Testing - what
test,coverage, andsanitizeexecute - Submitting Changes - CI workflow on GitHub
- Feature Development Workflow - when to run QA during development
Quick Reference · Glossary · FAQ
- Fundamentals
- Core Concepts
- Project Layout
- First Pipeline
- Phases and Scopes
- How Phases and Scopes Work
- Selecting with Phases and Scopes
- Designing Phases and Scopes
- Parallel Execution and Dependencies
- Configuration
- Configuration Overview
- Global User Config
- Project Config
- Environment Variables
- Performance Settings
- Cache Settings
- Config Reference
- CLI
- CLI Overview
- Running Targets
- Filtering by Phase
- Running a Single Step
- Listing Entities
- Output and Logging Flags
- Cache and Maintenance Flags
- Meta and Utility Commands
- Project Scaffolding —
beez --init(embedded Tempify) - CLI Flag Reference
- Lua DSL
- DSL Overview
- Plugin System — Plugins, Config DSL, Standard-Workflows
- Step Declaration
- Task Declaration
- Workflow Declaration
- Order Declaration
- Configure Step
- ReqPack Declaration
- Beez API
- Step Context
- DSL Patterns
- Caching
- Caching Overview
- Step Cache
- Success Cache
- Glob Metadata Cache
- Artifact Patterns
- Cache Keys and Invalidation
- Cache Storage and Maintenance
- Caching Troubleshooting
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes