Skip to content

fix(ci): make release-health alerts fail observable - #288

Merged
abrichr merged 4 commits into
mainfrom
fix/release-health-hardening-20260727
Jul 27, 2026
Merged

fix(ci): make release-health alerts fail observable#288
abrichr merged 4 commits into
mainfrom
fix/release-health-hardening-20260727

Conversation

@abrichr

@abrichr abrichr commented Jul 27, 2026

Copy link
Copy Markdown
Member

What changed

  • grants the detector the actions: read permission required by its workflow-runs API calls
  • treats a missing GitHub Release as an incomplete release even when PyPI received the package
  • separates safe semantic-release and existing-tag recovery commands
  • reduces the scheduled backstop from eight to two runs per day while preserving immediate failed/cancelled/skipped release checks
  • prevents API outages, pending CI, in-flight releases, and propagation windows from falsely closing the standing issue
  • ignores draft releases, paginates compare results, and fails closed on incomplete GitHub state

Root cause

PR #283 merged before its independent review hardening commit was pushed. The merged detector could silently exit on a missing Actions permission, downgrade an incomplete GitHub publication to a warning, and close an existing issue when required provider state was unavailable.

Validation

  • python scripts/check_release_health.py --self-test
  • actionlint .github/workflows/release-health.yml
  • ruff check and ruff format --check
  • python -m py_compile scripts/check_release_health.py
  • python scripts/check_release_consistency.py
  • public-artifact inventory and git diff --check

This PR does not publish or dispatch a release.

@abrichr

abrichr commented Jul 27, 2026

Copy link
Copy Markdown
Member Author

Coordination hold: keep building and reviewing this PR, but do not merge it until #289 lands. This is exact-SHA merge sequencing for the receipt false-success hardening, not a release freeze.

@abrichr
abrichr force-pushed the fix/release-health-hardening-20260727 branch from 986d62b to c000235 Compare July 27, 2026 21:17
@abrichr

abrichr commented Jul 27, 2026

Copy link
Copy Markdown
Member Author

#289 has landed. Please keep building/reviewing this PR, but do not merge until the exact-main v1.25.1 patch candidate is published and independently verified. This is a short release-candidate guard to prevent an unrelated feat/fix from changing the authorized semantic version, not a broad release freeze.

abrichr and others added 4 commits July 27, 2026 18:14
Uncommitted changes recovered from a worktree under /private/tmp, on a
branch that already carried one unpushed commit. Preserved as-is; not
reviewed and not proposed for merge in this state.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
The reviewed inventory records a SHA-256 for every artifact-suffix file,
workflows included, so the `wheel` job's check_release_consistency.py gate
failed on the hardened release-health.yml until the manifest is explicitly
regenerated. Only that one workflow's digest changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NyCHrzA1psrKMFfroYbzaM
@abrichr
abrichr force-pushed the fix/release-health-hardening-20260727 branch from c000235 to d0cdede Compare July 27, 2026 22:15
@abrichr
abrichr marked this pull request as ready for review July 27, 2026 22:16
@abrichr

abrichr commented Jul 27, 2026

Copy link
Copy Markdown
Member Author

Release sequencing update: v1.25.1 has been published and independently verified (tag/release commit lineage, GitHub/PyPI byte-identical artifacts, archive boundary checks, and both attestations). The temporary publication hold is lifted; resume normal review and merge sequencing from current main.

@abrichr
abrichr merged commit f133bbd into main Jul 27, 2026
17 checks passed
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