Recover stashed driver-gaps work from pre-v2-mxgw-merge working tree
Captures uncommitted work that lived in the working tree on
v2-mxgw-integration but was orthogonal to the migration. Stashed
during the v2-mxgw merge to master (2026-04-30) and replanted here on
a feature branch off master so it's git-visible rather than living in
the stash list.
Two distinct buckets:
1. Tracked fixture/config refinements (10 files, ~36 lines):
- scripts/e2e/test-opcuaclient.ps1
- src/ZB.MOM.WW.OtOpcUa.Admin/appsettings.json
- 5 docker-compose.yml under tests/.../IntegrationTests/Docker/
(AbCip, Modbus, OpcUaClient, S7)
- 4 fixture .cs files (AbServerFixture, ModbusSimulatorFixture,
OpcPlcFixture, Snap7ServerFixture)
2. Untracked driver-gaps queue artifacts (~8000 lines):
- docs/plans/{abcip,ablegacy,focas,opcuaclient,s7,twincat}-plan.md
— per-driver gap plans
- docs/featuregaps.md — cross-cutting analysis
- docs/v2/focas-deployment.md, docs/v2/implementation/focas-simulator-plan.md
- followup.md — auto/driver-gaps queue follow-ups
- scripts/queue/ — PR-queue automation tooling (12 files including
pr-manifest.yaml at 1473 lines)
This commit is a snapshot for recoverability — review and split into
focused PRs (or discard) before merging anywhere downstream.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
36
scripts/queue/README.md
Normal file
36
scripts/queue/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Plan-execution queue
|
||||
|
||||
Gitea-backed work queue that drives the per-driver implementation plans (`docs/plans/*-plan.md`) to completion in **Mode B** (autonomous: auto-merges into the `auto/driver-gaps` integration branch when build+tests pass).
|
||||
|
||||
## Pieces
|
||||
|
||||
- `pr-manifest.yaml` — canonical list of every PR across all six plans.
|
||||
- `setup-labels.sh` — idempotently creates the queue labels in Gitea.
|
||||
- `file-issues.sh` — files one Gitea issue per manifest entry (idempotent — skips ids that already exist).
|
||||
- `next-pr.sh` — picks the next eligible queue issue (queued, blockers all done) as JSON.
|
||||
- `start-pr.sh ISSUE BRANCH` — flips queued → in-progress and creates the branch off `auto/driver-gaps`.
|
||||
- `open-pr.sh ISSUE BRANCH TITLE BODY_FILE` — opens a PR from BRANCH into `auto/driver-gaps`.
|
||||
- `merge-pr.sh PR` — merges a PR with branch-delete (Mode B).
|
||||
- `finish-pr.sh ISSUE success PR` / `finish-pr.sh ISSUE failed REASON_FILE` — closes / marks failed.
|
||||
|
||||
## Flow per loop iteration
|
||||
|
||||
1. `next-pr.sh` → issue#, branch, canonical id.
|
||||
2. `start-pr.sh` → mark in-progress, create branch.
|
||||
3. Loop driver dispatches a Claude Agent to implement the PR on the branch.
|
||||
4. Loop runs `dotnet build` + `dotnet test`.
|
||||
5. On green: `open-pr.sh`, `merge-pr.sh`, `finish-pr.sh success`.
|
||||
6. On red: capture log → `finish-pr.sh failed log.txt`. Issue stays open with `queue/failed` label for retry.
|
||||
|
||||
## Environment
|
||||
|
||||
- Gitea repo: `dohertj2/lmxopcua` on `gitea.dohertylan.com`.
|
||||
- Token: read from `%LOCALAPPDATA%\tea\config.yml` (or `$GITEA_TOKEN` override).
|
||||
- Integration branch: `auto/driver-gaps` (created off master).
|
||||
- Per-PR branches: `auto/<driver>/<plan-pr-id>`.
|
||||
|
||||
## Reset / debug
|
||||
|
||||
- Re-list eligible issues: `bash scripts/queue/next-pr.sh`.
|
||||
- Manually unblock: remove `queue/blocked` label and add `queue/queued`.
|
||||
- Drop a failed PR back into queue: remove `queue/failed`, add `queue/queued`.
|
||||
Reference in New Issue
Block a user