Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
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
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes