Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions PROGRESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ satisfied phases; `--json` matches the spec contract; `down` decrements refs;
- [ ] X9 `internal/migrate` + `import` — TODO

### M7 GA (rolling)
- [ ] G1 integration lane (`//go:build integration`) — TODO (can scaffold early)
- [x] G1 integration lane (`//go:build integration`) — **DONE** (PR #17, `9b6dfca`); CI overhaul + `tests/` folder (functional + daemon e2e) — **DONE** (PR #18, `79f4eef`)
- [ ] G2 macOS arm64 CI runner — TODO
- [ ] G3 docs (quickstart/migration/threat-model/troubleshooting) — TODO
- [ ] G4 goreleaser tap + `.deb`/`.rpm` + Apache LICENSE + tag `v1.0` — partial (LICENSE done)
- [ ] G5 two-terminal race tests — BLOCKED (C5)
- [ ] G5 two-terminal race tests — TODO *(unblocked: C5 in; add to `tests/e2e` behind DEVSTACK_E2E)*

## Human steps pending (owner)
- Make the repo public when GA bits land: `gh repo edit open-source-cloud/devstack --visibility public --accept-visibility-change-consequences` (history is secret-clean).
Expand All @@ -92,4 +92,5 @@ satisfied phases; `--json` matches the spec contract; `down` decrements refs;
- (night 1) **C1 merged** (PR #1, `9900b87`) — `saga_phase` v2 migration + CRUD, race-clean, merge-on-green proven. Next ready (parallel): C2, C3a, S1, N1..N4, X1, X8, X9, G1.
- (night 2) **C2, C3a, C3b, C3c, C4 merged** (PRs #2–6) — the entire health/hooks substrate: read-only docker inspect/logs, config health/hooks/dependsOn structs, the `internal/health` poller, generate's compose `healthcheck:`/`depends_on` lowering, and the `internal/hooks` runner + `hook_run` ledger. Each green via `make ci`+determinism+`-tags=integration` against the local Engine 29.5.3; PR-poll-then-merge enforces the green gate (main is unprotected, so plain `--auto` would merge instantly). **C5 (core saga) is now unblocked** — its deps C1,C2,C3b,C4 are all in. Also ready: C8, S1, N1..N4, X1, X8, X9, G1.
- (night 2 cont.) **C5a, C5b, C6, C7, C8 merged** (PRs #8–12) — **M2-remainder complete**. The resumable/compensating orchestrate engine + the real up phases, the `up`/`down`/`status` CLI, and `shared gc`/`doctor --rebuild-state`. Verified the whole `up` saga end-to-end against the host daemon (shared-postgres came up *healthy* via the cross-project gate; re-run all-skips; `--json` matched; `down` dropped refs) then fully tore it down — the machine was clean before and after. Process note: poll ALL ≥9 PR checks to green before merge (an early poll once merged C6 before the slow checks registered — it passed retroactively, but the lesson stuck).
- (night 2 cont.) **G1 + CI/test overhaul merged** (PRs #17–18) — owner asked for a `tests/` folder + better CI mid-night. Added `tests/e2e` (functional CLI flows + a real `up→status→re-up→down` daemon e2e, `//go:build e2e`, daemon tier gated on `DEVSTACK_E2E=1` with self-cleanup); **consolidated CI from 7 jobs → 2** (`ci` cheap→expensive fail-fast ladder with module/build caching + Docker for the integration & e2e steps; `release-dryrun` separate). The full `ci` lane (incl. real-daemon integration + e2e) runs green on GitHub's runner in ~4.5 min. This also delivers the saga **daemon e2e** that C5 deferred. `make integration` / `make e2e` added.
- (night 2 cont.) **S1 + N1 merged** (PRs #14–15) — started the M4 + M5 parallel tracks: the `secret://` core (parser/Provider/registry/batched Resolve) and the Caddy proxy route table + labels. **Gotcha learned the hard way:** pushing a non-semver milestone tag (`m2-done`) broke `release-dryrun` on the next PR (goreleaser `git describe`); deleted the tag, re-ran, green. Decision #1 updated — milestones go in this log, never as tags. **Next ready (all parallel): the provision saga phase (host-port coupling), S2 (SOPS via shelling to `sops`), S3/S5, N2–N4 (sudo/account-gated → mock/temp-file tests), X1 config completion, X8 self-update notifier, X9 migrate/import, G1 integration lane (also unblocks the saga daemon e2e).** Consider G1 next — it activates the already-written `-tags=integration` tests (docker/health/hooks) in CI and provides the isolation harness the saga e2e needs.
Loading