Skip to content

feat: release-ci readiness profile — the nightly gate's CI evidence scope#47

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/nightly-release-implementation
Jul 9, 2026
Merged

feat: release-ci readiness profile — the nightly gate's CI evidence scope#47
Jammy2211 merged 1 commit into
mainfrom
feature/nightly-release-implementation

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Phase 2 of PyAutoLabs/PyAutoBuild#127 (design §5): the release-ci readiness profile — how the scheduled-nightly driver gets an honest GREEN in CI, where dev-box-local evidence does not exist.

  • pyauto-heart readiness --profile release-ci evaluates the same gates over the CI-assembled snapshot. Gaps in dev-box-local evidence (the local test_run cache; never-observed version_skew/script_timing/manifest_drift/profiling_drift/repo_state slices) are reported in a new na_reasons list — listed, never silently green, non-gating.
  • Present adverse evidence is never scoped out (a failing test_run stays YELLOW under every profile), and the required set — library ci_status, the release-validation report (fresh, passing, SHA-matched, release profile), verify_install — gates exactly as before. STALE/YELLOW still do not pass for releases.
  • The workspace script surface is not weakened: the release-validation report is that surface at release fidelity, and required-workflow conclusions gate the workspaces' main.
  • Default profile verdict unchanged; profile verdicts are a live compute and never persist to release_ready.json (its existing consumers see no change). Rider: fixes the inner profile variable rebinding in the validation gate (vr_profile) that would have clobbered the new parameter.

Validation

Full suite: 244 passed (7 new release-ci tests: local gaps → GREEN with na_reasons; missing required evidence still blocks; adverse local evidence still counts; SHA drift still blocks; default-path regression).

API Changes

  • readiness.compute() gains an optional profile="default" keyword (default behaviour unchanged); verdict dicts gain additive profile / na_reasons keys.
  • CLI: pyauto-heart readiness --profile {default,release-ci}.

Scripts Changed

None.

Companion PRs: PyAutoBrain (the driver that consumes this via the vitals faculty), PyAutoBuild (cron removal), PyAutoMind#43 — links in a comment.

🤖 Generated with Claude Code

…cope

Phase 2 of PyAutoLabs/PyAutoBuild#127 (design §5): `pyauto-heart readiness
--profile release-ci` evaluates the same gates over a CI-assembled
snapshot; gaps in dev-box-local evidence (the local test_run cache and the
never-observed slices) are reported as na_reasons — listed, never silently
green, non-gating — while present adverse evidence and the required set
(library CI, the release-validation report, verify_install) gate exactly
as before. Default profile verdict unchanged; profile verdicts are a live
compute and never persist to release_ready.json. Also fixes the inner
`profile` rebinding in the validation gate (now vr_profile).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Jammy2211

Copy link
Copy Markdown
Contributor Author

Phase-2 PR set for PyAutoLabs/PyAutoBuild#127: PyAutoLabs/PyAutoBrain#63 (driver) · PyAutoLabs/PyAutoBuild#129 (cron removal) · #47 (release-ci profile) · PyAutoLabs/PyAutoMind#43 (digest watchdog). Merge Brain and Build the same day (Build-first leaves no scheduled path; Brain-first double-schedules nothing — the driver dispatches, the old cron rehearses — but same-day is tidiest); Heart and Mind are independent.

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