Repository navigation
Repository Layout
Leonard Ramminger edited this page Aug 9, 2026
·
1 revision
Beez uses a flat module layout: public headers under include/beez/, implementations under src/, tests mirroring production code. Do not nest extra src/ or include/ folders inside modules.
| Path | Purpose |
|---|---|
include/beez/ |
Public C++ API headers |
src/ |
Implementation (.cpp) grouped by module |
tests/ |
Unit, integration, system, performance, fuzz tests |
cmake/ |
Shared CMake modules (warnings, sanitizers, coverage) |
scripts/ |
QA scripts, CI helpers, shell completion |
conan/ |
Conan profiles |
report/ |
Generated QA output (gitignored) |
build/ |
Build tree (gitignored) |
| Module | Headers | Implementation | Responsibility |
|---|---|---|---|
| core | include/beez/core/ |
src/core/ |
Models, registry, orchestrator, cache, config, settings |
| cli | include/beez/cli/ |
src/cli/ |
Argument parsing, target execution, listing |
| logging | include/beez/logging/ |
src/logging/ |
Output modes, progress UI backend, run logs |
| plugins/lua | include/beez/plugins/lua/ |
src/plugins/lua/ |
build.lua DSL parsing and settings |
| plugins/shell | include/beez/plugins/shell/ |
src/plugins/shell/ |
Shell command execution |
| app | - | src/app/ |
main() entry point |
| Directory | Binary / runner | What it covers |
|---|---|---|
tests/unit/ |
beez_tests |
Isolated logic, mirrors src/ structure |
tests/integration/ |
beez_integration_tests |
Multi-component pipelines, CLI subprocess |
tests/system/ |
beez_system_tests |
Black-box runs against fixture build.lua projects |
tests/performance/ |
beez_perf_tests |
Throughput benchmarks (labeled performance) |
tests/fuzz/ |
fuzz_lua_dsl |
Robustness of Lua DSL parser |
System fixtures live at tests/system/fixtures/<name>/build.lua.
Fuzz seeds live at tests/fuzz/corpus/lua_dsl/*.lua.
- Place the header in
include/beez/<module>/ - Place the
.cppinsrc/<module>/ - Register the
.cppin the moduleCMakeLists.txt - Add tests in the matching
tests/<level>/folder - Register test
.cppfiles in that level'sCMakeLists.txt
Typical dependency direction:
app → cli → core ← plugins (lua, shell)
↑
logging
- Core must not depend on CLI or plugins.
- Plugins translate external input (Lua tables, shell) into core models.
- Touch
src/app/main.cpponly when global CLI wiring changes.
- Feature Development Workflow - which layer to change for a feature
- Testing - where to put each test type
- Building and Setup - compile commands
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
- UI and Output
- Output Modes
- Progress and Animation
- Colors and Themes
- Run Summaries
- Logging and Log Files
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes