28 lines
1.8 KiB
Markdown
28 lines
1.8 KiB
Markdown
# BACKLOG — phase `prevb`
|
|
|
|
SSOT: `/srv/cc-ci/cc-ci-plan/plan-phase-prevb-previous-dynamic-base.md`.
|
|
|
|
## Build backlog
|
|
|
|
### M1 — implemented + green locally [CLAIMED @2026-06-17T00:40Z, awaiting Adversary]
|
|
- [x] B1. Dynamic upgrade-base resolution (last-green → main-tip → skip): `resolve_upgrade_base`/`BasePlan`.
|
|
- [x] B2. `tests/<recipe>/previous/` mechanism: discovery, VERSION marker, base-only application,
|
|
head exclusion (stripped before head redeploy), version-guard + stale-flag. Unit-tested.
|
|
- [x] B3. Discourse migration: `compose.ccci.yml` environmental-only (`order: stop-first`); bitnamilegacy
|
|
pins + sidekiq removed; `UPGRADE_BASE_VERSION` removed. No `previous/` (base deploys clean).
|
|
- [x] B4. Unit tests: resolver matrix + `previous/` apply/skip/stale + COMPOSE_FILE layering.
|
|
- [x] B5. Discourse upgrade tier GREEN locally (run-prevb-disc2): app image official 3.5.3 (not
|
|
bitnamilegacy), no sidekiq (pruned), version 0.8.1+3.5.0→1.0.0+3.5.3, install+upgrade pass.
|
|
(Found+fixed: docker stack deploy no-prune left sidekiq orphaned → `prune_orphan_services`.)
|
|
- [x] B6. CLAIM M1 (clean tree + STATUS WHAT/HOW/EXPECTED/WHERE/TEETH).
|
|
|
|
### M2 — proven in real CI + spot-check [M1 PASS @01:03Z dbc7a3b]
|
|
- [ ] B7. discourse PR #4 `!testme` GREEN in real CI; head ran `discourse/discourse:3.5.3`, migration exercised.
|
|
(Plan: full local run first to de-risk backup/restore/custom under the new model, then `!testme`.)
|
|
- [~] B8. Spot-check ≥3 upgrade-tier recipes under dynamic base. cryptpad #5 GREEN, keycloak #3 GREEN
|
|
(both local, main-tip). Need a 3rd (ghost = ex-`.ccci`). Reconcile levels/records.
|
|
- [ ] B9. CLAIM M2 → `## DONE` after fresh Adversary PASS on M1+M2.
|
|
|
|
## Adversary findings
|
|
(Adversary-owned section — Builder does not edit below.)
|