Skip to content

fix(release): defer same-release package checks instead of skipping verification - #602

Merged
randlee merged 2 commits into
developfrom
fix/deferred-same-release-package-checks
Aug 31, 2026
Merged

fix(release): defer same-release package checks instead of skipping verification#602
randlee merged 2 commits into
developfrom
fix/deferred-same-release-package-checks

Conversation

@randlee

@randlee randlee commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replaces the incomplete no_verify sibling-skip behavior with deferred_same_release: preflight performs no cargo package command at all for a crate when an earlier manifest-declared same-release dependency hasn't published yet, while still running workspace/manifest/publish-order checks.
  • Closes the gap left by fix(release): derive package checks from manifest #600, where sc-compose's own package step still hard-failed resolving sc-composer-beads = "^1.6.1" against the live registry index.
  • Candidate/tag provenance behavior is unchanged.

Validation

  • 68 passed, 6 skipped (release-artifacts test suite)
  • 16 publish-kit tests passed
  • py_compile and git diff --check passed

🤖 Generated with Claude Code

@randlee

randlee commented Aug 31, 2026

Copy link
Copy Markdown
Owner Author

Final Quality Report

Generated: 2026-08-30
QA Pass: 1
Sprint/Task: fix-602 / fix-602-qa-1
Branch: fix/deferred-same-release-package-checks
Commit: 847b907
PR: #602
Final Verdict: PASS

Machine Status (JSON)

{
  "sprint": "fix-602",
  "task": "fix-602-qa-1",
  "branch": "fix/deferred-same-release-package-checks",
  "commit": "847b907",
  "pr": 602,
  "verdict": "PASS",
  "findings": {
    "blocking": 0,
    "important": 3,
    "minor": 6
  },
  "blocking_ids": [],
  "merge_readiness": "ready-pending-ci",
  "merge_reason": "10/10 deliverables closed, 0 blocking findings after overrule. Confirm clippy completed (merge state UNSTABLE solely on in-progress clippy). Merge requires explicit user approval.",
  "next_action": "none",
  "owner": "none",
  "recommendation": "Merge once CI is green. The removed check was structurally unsatisfiable: `cargo package` resolves dependencies from the registry, so it can never pass for a crate whose same-release sibling has not yet published — the normal mid-release state. Recommend auditing remaining preflight gates against the rule that preflight should fail only on conditions fixable without publishing; everything else warns."
}

Validated Scope

  • deferred_same_release mode replaces PR fix(release): derive package checks from manifest #600's incomplete no_verify skip; no cargo package runs for crates depending on an earlier same-release sibling
  • Live plan vs real release/publish-artifacts.toml, exit 0: sc-sha|verify|, sc-composer|deferred_same_release|sc-sha, sc-composer-beads|deferred_same_release|sc-composer, sc-compose|deferred_same_release|sc-composer,sc-composer-beads
  • Reported gate-2 false failure ("sc-composer-beads 1.6.1 is not on crates.io") cannot occur
  • Manifest/publish_order checks still run unconditionally; candidate-tag/provenance policy unchanged
  • Tests: 104 passed / 7 skipped
  • Reviewers: req-qa PASS (10/10 deliverables), rust-qa PASS, arch-qa FAIL (overruled), simplification-reviewer CONDITIONAL (overruled)

Findings Summary (Final)

  • Blocking: 0
  • Important: 3
  • Minor: 6

Residual Risks

  • arch-qa ARCH-001/ARCH-002 OVERRULED. done < <(python3 ...) at release-preflight.yml:360,392 is fail-open under set -euo pipefail. Verified pre-existing on develop (git show develop:... | grep -n) and untouched by this PR's diff. Routed to a separate ticket; does not gate this PR.
  • SIMPL-602-1.github/scripts/release_manifest.py:189 docstring is grammatically broken and self-contradictory. The only defect this PR authored. Trivial follow-up commit.
  • ATM-QA-001 — preflight now performs zero local package-level verification for 3 of 4 crates. Compensating control: release.yml:292 runs cargo publish --locked with no --no-verify. Document in docs/publishing.md and docs/release-checklist.md.
  • QA-001 — deferral proven by static YAML text-splitting, not live workflow execution.
  • SIMPL-602-5/-6 — PR fix(release): derive package checks from manifest #600 carry-forwards still open, incl. release_manifest.py:197 defaulting a missing publish key to publishable while validate_publish_order indexes crate["publish"] directly.
  • arch-qa explicitly ruled RULE-012 NOT violated.

Merge Readiness

  • Status: ready-pending-ci
  • Reason: 10/10 deliverables closed, 0 blocking findings after overrule. Confirm clippy completed (merge state UNSTABLE solely on in-progress clippy). Merge requires explicit user approval.

Recommendation

Merge once CI is green. The removed check was structurally unsatisfiable: cargo package resolves dependencies from the registry, so it can never pass for a crate whose same-release sibling has not yet published — the normal mid-release state. Recommend auditing remaining preflight gates against the rule that preflight should fail only on conditions fixable without publishing; everything else warns.
2026-08-31T06:18:49.772533Z INFO compose.command started command started
2026-08-31T06:18:49.773842Z INFO compose.resolve attempt resolve attempt
2026-08-31T06:18:49.774222Z INFO compose.resolve resolved resolve completed
2026-08-31T06:18:49.77728Z INFO compose.include_expand expanded include expansion completed
2026-08-31T06:18:49.777681Z INFO compose.validate completed validation completed
2026-08-31T06:18:49.779847Z INFO compose.render completed render completed
2026-08-31T06:18:49.779998Z INFO compose.command completed command completed

@randlee
randlee requested a review from rand-lee August 31, 2026 06:20
@randlee
randlee merged commit 26c7cb4 into develop Aug 31, 2026
18 checks passed
@randlee
randlee deleted the fix/deferred-same-release-package-checks branch August 31, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant