Development guide for agents working on this codebase.
cargo fmt && make fast # Quick validation: lint + unit tests
make check # Full CI (slow): lint + deny + attributions + unit tests + integration testsDo NOT:
- Run cargo commands directly (use make targets)
- Skip
make fastbefore committing
twoliter/- Main CLI entry point. Orchestrates builds, embeds tool binaries, manages project configuration and SDK interactions.
buildsys/- Build system for packages and variants. Handles cargo/rpm build orchestration.pubsys/- Publishing system. Publishes AMIs, TUF repos, SSM parameters, Kits, etc.pipesys/- Efficiently share content with docker builds via UDS
buildsys-config/- Build system configuration typespubsys-config/- Publishing system configuration
amispec/- AMI properties specification systembottlerocket-variant/- Variant type/model definitionserror-utils/- AWS SDK error handling helpersoci-cli-wrapper/- OCI CLI abstraction layer for container registry operationsparse-datetime/- DateTime parsing utilitiesserde-templated/- Supports deserializing structures where each field may be a template to renderunplug/- Used to disable network access during buildupdate-metadata/- Update metadata serialization (needed for pubsys)
Compressed binaries embedded in the twoliter CLI
tests/integration-tests/- Integration test suite (slow, run viamake integ)
Use conventional commits with 52/72 line lengths:
feat(buildsys): add new build target support
This commit adds support for building custom targets by extending
the build configuration options.
See docs/design/README.md for architecture details.