# Release readiness · MAX25-Stack-Lite Offline and manual release gates for MAX25-Stack-Lite, scoped to `max25-terminal` / `max25-client`, localhost `max25d`, CRDOP, and BayCom/based (`max25-bcpr`) only. ## Offline gate matrix | Gate | Result | |------|--------| | `cmake` build + install (`MAX25_BUILD_MAX25_BCPR=ON` default) | Pass target | | `./scripts/terminology-check.sh` | Required | | `./scripts/release-check.sh` | Pass target | | `./scripts/tx-rx-test.sh` (L0 offline, RX before TX) | Pass target | | `test_bcpr_backend.py` | Pass | | `test_crdop_backend.py` | Pass | | `test_paths.py` | Pass | | `test_proto.py` / `test_auth.py` | Pass | | `stacks/terminal/test-terminal.sh` | Pass | ## Consistency gate matrix | Gate | Status | |------|--------| | Version in `VERSION` file (currently `1.8.0`) | Required | | Localhost-only TCP (`tcp_host` loopback; no `0.0.0.0`) | Required | | Device face BayCom/based = **`max25e0`** (not `bcpr-bc0`) | Required | | `MAX25_BUILD_MAX25_BCPR=ON` default on Linux/FreeBSD/BSD | Required — see `cmake/MAX25Platform.cmake` | | No `plugins/` tree, no `stacks/tncs/` — devices set directly in `max25d.ini` | Required | | HyBBX co-host, web UI, multi-RF orchestration | Out of scope — must stay absent from build/install tree | | Canonical start | `scripts/run-max25d.sh` (§0.21 root only when SER12/bcpr needs it) | ## Manual hardware gate matrix | Gate | Status | |------|--------| | BayCom/based `max25e0` (max25-bcpr) | active | | Live RX before TX (§0.20) | Required — see `scripts/tx-rx-test.sh`, `max25-bcpr-rxtx-smoke.sh` | | CRDOP soft modem bench | Optional | ## Tag gate matrix | Item | Status | |------|--------| | Annotated tag matching `VERSION` | Operator decision | | Push to remote | Operator decision | ## Related | Goal | Doc | |------|-----| | Build · wizard | [README.md](README.md) | | Doc index | [docs/README.md](docs/README.md) | | Changelog | [CHANGELOG.md](CHANGELOG.md) | | BayCom/based | [stacks/max25-bcpr/README.md](stacks/max25-bcpr/README.md) |