3.3 KiB
3.3 KiB
REPORT — 20260829 08:30 — mred version update (Redmine 524 finish turn)
Repo: ukrrs/mopac-redmine-go, branch main, pushed 788f6fe..5abd352.
Prior state: main@788f6fe clean, zero delivered from the study turn; this
turn implemented the full scope. All dev ran inside the digest-pinned
Docker builder (./dev.sh); TDD (tests red first, then implementation).
Diff summary (3 atomic conventional commits, pushed to origin/main)
| Commit | Content |
|---|---|
26824c3 feat(redmine) |
Client.UpdateVersion (PUT /versions/N.json — partial: only set fields serialized; the 204 empty body is never parsed, out=nil path) and Client.GetVersion (GET /versions/N.json, backs the -o json re-fetch). Fake Redmine gained the matching PUT/GET endpoints (partial apply, 204-with-empty-body, 404 on unknown id) plus a Version(id) assertion accessor. |
37118f0 feat(cli) |
`mred version update ID [--status open |
5abd352 docs(readme) |
Command-reference row, quickstart example, library-surface signatures (GetVersion/UpdateVersion), partial-update + 204 note, status-table line. |
Verification
./dev.sh check(build + vet + test, Docker): green, all packages../dev.sh smoke(real CLI vs containerized fake, port 8601): smoke: OK (existing surface unregressed; redaction pass clean).- New tests, all table-driven against the existing fake:
- Library:
TestUpdateVersionPartial(4 cases: status flip, due change, name change, combined — each pins the exact PUT request body so "only provided flags are sent" is asserted, plus untouched-attribute survival; every case round-trips the 204-empty-body reply),TestGetVersion(round-trip + 404→ErrNotFound),TestUpdateVersionMissing(404 mapping with parseablehttp 404). - CLI:
TestVersionUpdate(8 cases: status flip, due change, name change, combined flags with stored-state assertions, no-flags usage error, bad-status usage error, non-numeric id usage error, unknown id → exit 2 withhttp 404on stderr) andTestVersionUpdateJSONRefetches(json mode re-fetches and emits the updated version). - Count: 22 passing test entries (4 top-level functions, 12 table subtests). Full suite: 3 packages ok, 0 failures.
- Library:
Production read verification (read-only, after push)
Using the 0600 config derived from ~/.creds/redmine.env
(~/.config/mred/env, per the documented bootstrap):
mred version list -p MOPAC→ exit 0, all 5 versions present (34 closed V1 Core due 2026-08-28; 35 open Beta due 2026-08-31; 36 open Production due 2026-09-01; 37 closed Phase 3 - Integrations due 2026-09-07; 38 open Selfhost Alpha due 2026-08-29).mred version list -p MOPAC -o json→ 5 ids, exit 0.- No mutation of production: the only commands run against the live
tracker are
version listreads (GET).version updatewas exercised exclusively against the fake.
No journal/status writes were made to Redmine 524 — left Resolved for PMO re-verification per protocol.