[Feature] Make the Release Console guided, resumable, and repository-aware #15

Closed
opened 2026-07-22 03:46:14 +02:00 by zemion · 5 comments
Owner

Goal

Turn the Release Console into a versatile, guided operator workflow that supports Core and the different module repository shapes without exposing invalid or unsafe actions.

This is a focused implementation follow-up to #13. Guarded Core source tagging and publication from commit 30f9ed1 are the first integrated foundation.

Acceptance Criteria

  • Model release work as an explicit, resumable sequence: doctor/preflight, target selection, version/contract/migration gates, tag, build/sign/package, publish, catalog update, source publication, and install verification.
  • Derive available steps from repository capabilities so Core, backend-only modules, WebUI modules, documentation, and catalog artifacts receive the right workflow.
  • Show the recommended next action, prerequisites, blocking reasons, and remediation; keep unavailable actions visible but disabled.
  • Provide a complete preview/dry run before mutation and require narrowly scoped confirmations for tag, publish, signing, and catalog changes.
  • Support dependency-ordered multi-repository plans, partial-failure reporting, safe retries, and continuation from durable run state.
  • Distinguish local source state, remote tags, package publication, catalog publication, and installed release state.
  • Record privacy-safe audit events for every mutating step without exposing credentials, signing material, or bearer tokens.
  • Exercise Core and representative module release paths, stale/dirty worktrees, alignment failures, signing failures, publication retries, and interrupted-run recovery in automated tests.

UX Direction

Use the shared Card, DataGrid, status, confirmation, and top-right Save/Discard/action patterns. The console should explain why a step is blocked and guide the operator to the next safe step rather than presenting a flat set of release buttons.

## Goal Turn the Release Console into a versatile, guided operator workflow that supports Core and the different module repository shapes without exposing invalid or unsafe actions. This is a focused implementation follow-up to #13. Guarded Core source tagging and publication from commit `30f9ed1` are the first integrated foundation. ## Acceptance Criteria - [ ] Model release work as an explicit, resumable sequence: doctor/preflight, target selection, version/contract/migration gates, tag, build/sign/package, publish, catalog update, source publication, and install verification. - [ ] Derive available steps from repository capabilities so Core, backend-only modules, WebUI modules, documentation, and catalog artifacts receive the right workflow. - [ ] Show the recommended next action, prerequisites, blocking reasons, and remediation; keep unavailable actions visible but disabled. - [ ] Provide a complete preview/dry run before mutation and require narrowly scoped confirmations for tag, publish, signing, and catalog changes. - [ ] Support dependency-ordered multi-repository plans, partial-failure reporting, safe retries, and continuation from durable run state. - [ ] Distinguish local source state, remote tags, package publication, catalog publication, and installed release state. - [ ] Record privacy-safe audit events for every mutating step without exposing credentials, signing material, or bearer tokens. - [ ] Exercise Core and representative module release paths, stale/dirty worktrees, alignment failures, signing failures, publication retries, and interrupted-run recovery in automated tests. ## UX Direction Use the shared Card, DataGrid, status, confirmation, and top-right Save/Discard/action patterns. The console should explain *why* a step is blocked and guide the operator to the next safe step rather than presenting a flat set of release buttons.
Author
Owner

Progress 2026-07-22: the release workflow now blocks selected WebUI module/version drift at planning, tag mutation, and signed-catalog generation (5447299), including a no-partial-tag regression. A real release exercise published exact annotated tags for Core v0.1.13 and Campaign v0.1.10, built both remote Git references, validated full pip dependency resolution, signed stable catalog sequence 202607220843 with release-key-1, and atomically published website tag catalog-stable-202607220843. Core v0.1.13 also repairs wheel-only Alembic runtime packaging and locks Campaign 0.1.10. Remaining #15 scope includes durable/resumable run state and a first-class deployed/public-catalog state; the production nginx endpoint currently needs an operator rebuild after the catalog repository push.

Progress 2026-07-22: the release workflow now blocks selected WebUI module/version drift at planning, tag mutation, and signed-catalog generation (`5447299`), including a no-partial-tag regression. A real release exercise published exact annotated tags for Core v0.1.13 and Campaign v0.1.10, built both remote Git references, validated full pip dependency resolution, signed stable catalog sequence 202607220843 with `release-key-1`, and atomically published website tag `catalog-stable-202607220843`. Core v0.1.13 also repairs wheel-only Alembic runtime packaging and locks Campaign 0.1.10. Remaining #15 scope includes durable/resumable run state and a first-class deployed/public-catalog state; the production nginx endpoint currently needs an operator rebuild after the catalog repository push.
Author
Owner

Codex State: progress

Summary

  • The mandatory release-composition gate exposed and rejected a stale Campaign backend pin.
  • Aligned requirements-release.txt to Campaign v0.1.10, matching Core's bundled Campaign WebUI and the signed stable catalog.

Changed Files

  • requirements-release.txt

Verification

  • Version alignment passed for all 65 repositories including the release composition; 23 release/version tests passed.

Next / Blocked

  • The larger guided, resumable, repository-aware Release Console work remains open.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - The mandatory release-composition gate exposed and rejected a stale Campaign backend pin. - Aligned requirements-release.txt to Campaign v0.1.10, matching Core's bundled Campaign WebUI and the signed stable catalog. ### Changed Files - `requirements-release.txt` ### Verification - `Version alignment passed for all 65 repositories including the release composition; 23 release/version tests passed.` ### Next / Blocked - The larger guided, resumable, repository-aware Release Console work remains open. Suggested status label: `status/in-progress`
Author
Owner

Codex State: progress

Summary

  • Selective plans now expose structured gate findings, a recommended next action, remediation, and source-preflight readiness.
  • Malformed repository, Core WebUI bundle, Core dashboard, and manifest metadata now fail closed as blocked plans instead of becoming HTTP 500 errors.
  • A real Core 0.1.13 plan reaches tag preview; Files 0.1.9 is correctly blocked with exact Core release bundle and lockfile remediation.

Changed Files

  • tools/release/govoplan_release/selective_planner.py
  • tools/release/govoplan_release/dashboard.py
  • tools/release/webui/index.html

Verification

  • 103 meta tests passed; version alignment passed for 65 repositories; static contracts passed

Next / Blocked

  • Durable resumable run state, dependency-ordered execution, audited mutations, safe retries, and interrupted-run recovery remain open.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Selective plans now expose structured gate findings, a recommended next action, remediation, and source-preflight readiness. - Malformed repository, Core WebUI bundle, Core dashboard, and manifest metadata now fail closed as blocked plans instead of becoming HTTP 500 errors. - A real Core 0.1.13 plan reaches tag preview; Files 0.1.9 is correctly blocked with exact Core release bundle and lockfile remediation. ### Changed Files - `tools/release/govoplan_release/selective_planner.py` - `tools/release/govoplan_release/dashboard.py` - `tools/release/webui/index.html` ### Verification - `103 meta tests passed; version alignment passed for 65 repositories; static contracts passed` ### Next / Blocked - Durable resumable run state, dependency-ordered execution, audited mutations, safe retries, and interrupted-run recovery remain open. Suggested status label: `status/in-progress`
Author
Owner

Codex State: progress

Summary

  • Promoted the Release Workflow into a full-width seven-phase guide: Inspect, Targets, Validate, Source, Package, Publish, and Verify.
  • The guide is derived from dashboard, selective-plan, and durable-run state; it shows the next safe action and jumps to the exact section or run step.
  • Draft plans are invalidated when release inputs change, persisted runs remain selectable, unrelated repository problems are notices rather than global locks, and installation verification remains visibly unavailable until its external CI gate runs.

Changed Files

  • tools/release/webui/index.html
  • docs/RELEASE_CONSOLE.md
  • tests/test_release_plan_guidance.py

Verification

  • python -m unittest tests.test_release_plan_guidance tests.test_release_console_security tests.test_release_run_state: 61 passed

Next / Blocked

  • Still open: dependency-ordered mixed Core/module execution, bounded version-metadata mutation, explicit repository-capability execution plans, and a receipt-bound local installation-verification executor.

Suggested status label: status/in-progress

## Codex State: progress ### Summary - Promoted the Release Workflow into a full-width seven-phase guide: Inspect, Targets, Validate, Source, Package, Publish, and Verify. - The guide is derived from dashboard, selective-plan, and durable-run state; it shows the next safe action and jumps to the exact section or run step. - Draft plans are invalidated when release inputs change, persisted runs remain selectable, unrelated repository problems are notices rather than global locks, and installation verification remains visibly unavailable until its external CI gate runs. ### Changed Files - `tools/release/webui/index.html` - `docs/RELEASE_CONSOLE.md` - `tests/test_release_plan_guidance.py` ### Verification - `python -m unittest tests.test_release_plan_guidance tests.test_release_console_security tests.test_release_run_state: 61 passed` ### Next / Blocked - Still open: dependency-ordered mixed Core/module execution, bounded version-metadata mutation, explicit repository-capability execution plans, and a receipt-bound local installation-verification executor. Suggested status label: `status/in-progress`
zemion added
status
in-progress
and removed
status
ready
labels 2026-07-31 02:27:24 +02:00
Author
Owner

Codex State: completed

Summary

  • Completed the guided seven-phase Release Console workflow with durable, resumable run state and repository-capability-aware plans.
  • Added bounded version metadata updates and receipt-bound commits, dependency-ordered module/Core execution, Core release-lock regeneration, a pre-publication alignment gate, and safe partial retry/reconciliation behavior.
  • Added receipt-bound local installation verification for the exact signed candidate wheels; deployment startup and module-combination checks remain correctly identified as CI gates.
  • Worktree receipts now bind bounded dirty path names and bytes without persisting content, and the console keeps unavailable actions visible with exact blockers/remediation and narrow confirmations.
  • Fixed migration-audit parsing for development wrappers that reference their release-track migration metadata.

Changed Commit

  • f1fd143 - Complete guided release console workflow

Verification

  • python -m unittest discover -s tests: 318 tests passed.
  • Ruff, compile checks, and git diff --check: passed.
  • Live Calendar 0.1.9 + Core 0.1.15 dry run: source preflight ready; all 15 dependency-ordered steps planned, including version, commit, Core bundle, alignment, catalog publication, and installation verification.

All acceptance criteria are implemented and pushed; closing this issue.

## Codex State: completed ### Summary - Completed the guided seven-phase Release Console workflow with durable, resumable run state and repository-capability-aware plans. - Added bounded version metadata updates and receipt-bound commits, dependency-ordered module/Core execution, Core release-lock regeneration, a pre-publication alignment gate, and safe partial retry/reconciliation behavior. - Added receipt-bound local installation verification for the exact signed candidate wheels; deployment startup and module-combination checks remain correctly identified as CI gates. - Worktree receipts now bind bounded dirty path names and bytes without persisting content, and the console keeps unavailable actions visible with exact blockers/remediation and narrow confirmations. - Fixed migration-audit parsing for development wrappers that reference their release-track migration metadata. ### Changed Commit - `f1fd143` - Complete guided release console workflow ### Verification - `python -m unittest discover -s tests`: 318 tests passed. - Ruff, compile checks, and `git diff --check`: passed. - Live Calendar `0.1.9` + Core `0.1.15` dry run: source preflight ready; all 15 dependency-ordered steps planned, including version, commit, Core bundle, alignment, catalog publication, and installation verification. All acceptance criteria are implemented and pushed; closing this issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan#15