ADR 0001: Repository Maintenance Model
- Status: Accepted
- Date: 2026-03-02
Context
Merlin is maintained by a very small team while carrying out-of-tree changes on top of IREE and nested LLVM forks. Maintenance cost and upstream drift are key risks.
Decision
- Keep upstream forks pinned and patch-driven:
- Pins:
build_tools/patches/manifest.env - Ordered patch series:
build_tools/patches/series.* - Prefer out-of-tree Merlin logic in this repository.
- Use one stable developer entrypoint:
tools/merlin.py- Add CI gates for:
- script lint/syntax
- CLI docs drift (
docs/reference/cli.md) - patch verify
- drift check
- Keep board flows in
benchmark/target/<board>/with deploy/run/parser scripts and environment templates.
Consequences
Positive:
- Lower maintenance overhead for 1-2 maintainers.
- Faster detection of upstream drift and accidental fork edits.
- Clearer onboarding via single command interface and process docs.
Trade-offs:
- Requires disciplined patch refresh/update when in-tree fork edits happen.
- Some workflows remain script wrappers around existing build systems.