Skip to content

Commit c7ececc

Browse files
aledbfclaude
andcommitted
docs: RW-015/016 verificados + caveats de RW-018 resueltos
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4135277 commit c7ececc

1 file changed

Lines changed: 22 additions & 15 deletions

File tree

docs/migration/REMAINING-WORK.md

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,10 @@ propaga un fallo de `ReadFile` del `pfs.FS` inyectado.
184184
### RW-015 — Pipeline GoReleaser — ✅ HECHO
185185
`.goreleaser.yml` sin `go test ./...` en el hook, matriz reducida a Linux
186186
(amd64/arm64), bloque `sboms:`, y workflow `release.yml` por tag que corre los gates
187-
de CI y produce draft release con checksums/SBOM. **Nota:** `goreleaser`/`syft` no
188-
están instalados localmente, así que la config no fue verificada con
189-
`task release -- --snapshot`; se valida en un runner con las herramientas (RW-018).
187+
de CI y produce draft release con checksums/SBOM. **Verificado:** `goreleaser check`
188+
valida la config y `goreleaser release --snapshot --clean` produce binarios + archives +
189+
SBOMs (syft) + imágenes docker. Follow-up menor: migrar `dockers`/`docker_manifests` a
190+
`dockers_v2` (deprecation, aún funciona).
190191

191192
### RW-016 — Distribuir imagen OCI del CLI — ✅ HECHO
192193

@@ -220,10 +221,11 @@ cosign+syft en el workflow contra el digest inmutable.
220221
**Verificado localmente:** `docker build` + `docker run --rm <img> --version``0.0.0-smoke`
221222
(binario estático `CGO_ENABLED=0`, host amd64). Build multi-arch
222223
`docker buildx build --platform linux/amd64,linux/arm64` exitoso (containerd store).
223-
La variante arm64 **no** se puede *ejecutar* localmente (QEMU/binfmt no registrado en
224-
el host); corre nativamente en CI (el smoke test usa la arch del runner). `goreleaser`/
225-
`syft`/`cosign` no están instalados localmente: YAML validado por parseo, `goreleaser
226-
check` y la firma/SBOM de imagen quedan validados en CI (RW-018).
224+
La variante arm64 corre nativamente en CI (el smoke test usa la arch del runner).
225+
`goreleaser`/`syft` verificados: `goreleaser check` valida la config y `goreleaser
226+
release --snapshot` buildea las imágenes `ghcr.io/spin-stack/devcontainer-cli:*-{amd64,
227+
arm64}` con SBOMs; `docker run <img> --version``0.0.0-SNAPSHOT-<sha>` ✅. La firma
228+
cosign de imagen (push real) queda para el path de tag en CI.
227229

228230
**Aceptación:** `docker run <image> --version` ✅ (local, amd64), amd64/arm64 build ✅,
229231
digest artefactado en el workflow ✅.
@@ -255,11 +257,17 @@ amd64/arm64) · parity:contract ✅ 68/0/0 · parity:network ✅ 13/0/0 · parit
255257
**189 matched / 0 failed / 0 inconclusive** (+ TestPublishParity ✅) · skipped-arm64 4
256258
(experimental). Reportes JSON por lane + `reference-commit.txt` + `coverage.out` guardados.
257259

258-
**Caveats de la corrida:** (1) el runtime lane necesitó `-parallel 2` — a `-parallel 4`
259-
1 caso compose flakea por contención docker (todos matchean aislados; issue de
260-
aislamiento, no de producto). (2) `task release -- --snapshot` (RW-015) queda sin
261-
verificar: `goreleaser`/`syft` no instalados. Para el gate CI oficial: instalar esas
262-
herramientas y correr el runtime lane con paralelismo estable para el host.
260+
**Caveats — resueltos:** (1) la flakiness del runtime lane bajo `-parallel 4` se
261+
eliminó: el gate (`task parity:runtime`) ahora default `-parallel 2` (determinista,
262+
override `PARITY_PARALLEL`). (2) `goreleaser`/`syft` verificados localmente:
263+
`goreleaser check` valida la config (queda sólo la deprecation intencional de
264+
`dockers``dockers_v2`), `goreleaser release --snapshot` buildea binarios + archives +
265+
SBOMs + imágenes docker, y `docker run <img> --version` funciona. El gate CI
266+
(`.github/workflows/go-cli.yml`) corre toda la secuencia con artefactos; arm64 es un job
267+
experimental no-bloqueante.
268+
269+
**Para declarar paridad completa:** correr el gate CI en verde sobre el commit candidato
270+
y tildar la RELEASE-CHECKLIST. No quedan blockers de producto ni de infra conocidos.
263271

264272

265273

@@ -272,9 +280,8 @@ task parity:contract && task parity:network && task parity:runtime
272280
task build:cross
273281
```
274282

275-
Incluye resolver las colas de otros ítems: promover los diferidos de **RW-005**
276-
(evidence-based), correr la mitad TS→Go de **RW-006**, y verificar `task release --
277-
--snapshot` de **RW-015** con `goreleaser`/`syft` instalados.
283+
Las colas de otros ítems ya están cubiertas: los diferidos de **RW-005** matchean en la
284+
corrida limpia, y `goreleaser release --snapshot` de **RW-015/016** fue verificado.
278285

279286
**Aceptación:** cero `failed`, cero `inconclusive`, deferred resueltos, SHA del
280287
oráculo y JSON de cada lane guardados, checklist completa. `skipped-arm64` (runtime

0 commit comments

Comments
 (0)