Plan the single-command release workflow
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# Single-Command Release Workflow and Gate Review
|
||||
|
||||
Status: accepted target; detailed design and implementation planning remain separate.
|
||||
Status: accepted target; execution order and acceptance checks are defined in the
|
||||
[implementation plan](implementation.md).
|
||||
|
||||
## Intent and baseline
|
||||
|
||||
@@ -55,19 +56,19 @@ must remain separate; this task introduces none.
|
||||
|
||||
## Gate review target
|
||||
|
||||
Keep the full deterministic offline suite as the core check. Evaluate every
|
||||
additional current gate for distinct protection, cost, and overlap; do not retain
|
||||
or remove it solely because it appears in a template. Record the selected rationale
|
||||
in the adopted release policy, with commands in the runbook and implementation.
|
||||
Keep the full deterministic offline suite as the core check. The selected gates
|
||||
below provide distinct protection without repeating validation. Their rationale
|
||||
belongs in the adopted release policy, with commands in the runbook and tooling
|
||||
once implemented.
|
||||
|
||||
| Current check | Review question |
|
||||
| Check | Selected end state and rationale |
|
||||
| --- | --- |
|
||||
| Race detector | Does its coverage of ownership and concurrent loads justify retaining it as the single full-suite mode? Avoid a second ordinary suite. |
|
||||
| Vet | What additional static defects does it catch beyond the test invocation, and is that protection worth a separate gate? |
|
||||
| Module hygiene | Is reproducibility protection distinct from ordinary dependency-change review and offline tests? |
|
||||
| Formatting and whitespace | Which checks belong in ordinary development rather than blocking publication? Avoid repeated scans without distinct value. |
|
||||
| Linux amd64/arm64 builds | Preserve existing supported targets unless deliberately changed; remove only demonstrably redundant work, not support commitments by implication. |
|
||||
| Toolchain selection | Preserve minimum-line validation without adding a second-toolchain gate or per-release latest-version research. |
|
||||
| Race detector | One full race-enabled suite protects ownership and concurrent loads; no second ordinary suite. |
|
||||
| Vet | One full vet pass provides additional static analysis; disable the smaller test-time vet pass to avoid overlap. |
|
||||
| Module hygiene | Tidiness belongs to dependency-change review, not a recurring release audit. Offline tests/builds use readonly module mode to avoid incidental manifest edits. |
|
||||
| Formatting and whitespace | Ordinary development checks, not publication gates; the everyday checker remains unchanged. |
|
||||
| Linux amd64/arm64 builds | Retain both CGO-disabled builds: they cover supported configurations distinct from native race compilation. |
|
||||
| Toolchain selection | One maintained Go 1.25 patch, with no second-toolchain gate or per-release latest-version research. |
|
||||
|
||||
Examples, consumer fixtures, documentation links, and import/public boundary tests
|
||||
are already in the suite; they must not become separately repeated release checks.
|
||||
@@ -103,35 +104,18 @@ Tests should exercise success and meaningful failure/recovery paths in disposabl
|
||||
local repositories, without real publication or credentials. Match coverage to
|
||||
the chosen push strategy and protect against unintended refs or stale candidates.
|
||||
|
||||
Coordinate provenance and licensing with the [policy roadmap](policy.md).
|
||||
Preserve provenance and licensing established by the completed
|
||||
[policy roadmap](policy.md).
|
||||
Operational documentation changes land with the implementation they describe.
|
||||
No library behavior, dependency update, release tag, or push is authorized by
|
||||
implementing this roadmap alone.
|
||||
|
||||
## Open Decisions
|
||||
## Publication strategy
|
||||
|
||||
### Final gate set
|
||||
|
||||
Recommendation: use the current single race suite and Linux support matrix as the
|
||||
starting point, retaining additional checks only with specific nonredundant
|
||||
justification. Assess the remaining checks during implementation planning before
|
||||
changing the binding policy. This protects selected behavior without treating
|
||||
the existing checker as an untouchable inventory.
|
||||
|
||||
Alternative: retain the entire existing checker and automate only publication.
|
||||
This minimizes behavioral change and is a viable initial scope, but it does not
|
||||
complete the requested gate review unless each retained check is justified.
|
||||
|
||||
### Publication strategy
|
||||
|
||||
Recommendation: retain explicit main-then-tag pushes inside the command. This
|
||||
matches the proven local workflow and avoids a new dependency on atomic-push
|
||||
support; recovery must describe a partially published sequence.
|
||||
|
||||
Alternative: atomically push main and the tag after validating remote ancestry.
|
||||
This avoids a branch-only intermediate result but requires confirming server
|
||||
support and adapting failure tests. Select one strategy in the implementation
|
||||
plan rather than silently switching between them.
|
||||
Use explicit main-then-tag pushes inside the command. This matches the proven
|
||||
local workflow and avoids a new dependency on atomic-push support. A branch-only
|
||||
intermediate result is possible; recovery distinguishes it from completed or
|
||||
unknown publication. Atomic publication is not part of this target.
|
||||
|
||||
## Completion criteria
|
||||
|
||||
@@ -139,5 +123,4 @@ One documented command publishes a prepared candidate with the reviewed minimum
|
||||
gate set, no duplicate suite runs, and automated exact-source safeguards. Local
|
||||
regression tests demonstrate successful publication and safe failure handling.
|
||||
The policy, runbook, and scripts agree, and successful tag publication is reported
|
||||
without waiting for external completion evidence. Detailed stages belong in the
|
||||
later implementation plan, not this target-state roadmap.
|
||||
without waiting for external completion evidence.
|
||||
|
||||
Reference in New Issue
Block a user