Skip to content

Own the runner's release-commit staging explicitly (audit step 2)#159

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/release-yml-owned-staging
Jul 16, 2026
Merged

Own the runner's release-commit staging explicitly (audit step 2)#159
Jammy2211 merged 1 commit into
mainfrom
feature/release-yml-owned-staging

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Step 2 of the audit design (#156/#157; campaign #155): give the runner's swept artifacts an owner in release.yml. Three staging changes, no new behaviour intended:

  • "Update jupyter notebooks" step: the bare git add *.ipynb changed meaning with bash glob state (root start_here.ipynb present → stages only that, leaving notebooks/ to the later git add -A sweep; absent → literal falls through to git's recursive pathspec). Replaced with explicit git add -- notebooks/ llms-full.txt workspace_index.json (+ root *.ipynb behind a compgen guard) — the catalogue files are committed where they are produced, and the commit message becomes honest (update notebooks and workspace catalogue).
  • Workspace "Bump Colab URL tag refs" step: git add -Agit add -u. The bumper rewrites existing tracked *.rst/*.md/*.ipynb/*.py in place; tracked-modifications-only is exactly its effect. This is the git add -A that swept llms-full.txt/workspace_index.json/README into a mislabeled commit (verified: 7e3c007 in autofit_workspace).
  • Library-side bump job: same git add -Agit add -u.

Preserved contracts, checked before editing: the Release <version>: commit-message prefix is what PyAutoBrain's activity gate matches (its test's own comment) — both messages keep the prefix; bump_colab_urls.sh is untouched; all six affected repos carry both catalogue files (verified); git add -- notebooks/ stages deletions from generate.py's rmtree-and-rebuild.

Testing limits, stated honestly: workflow branches cannot be CI-exercised pre-merge — validation here is yaml.safe_load (passes), the full PyAutoBuild suite (113/113; nothing parses release.yml), and the staging semantics argued above. The real proof is the next release run's commit contents; suggest checking that the "bump Colab URL tag refs" commits contain only URL rewrites after the next release/rehearsal.

Shipped under the human-authorized corrective-PR exception for Heart RED (standing this session). PR-open only; merge stays human.

API Changes

None — CI workflow staging semantics only.

Test Plan

  • yaml.safe_load(release.yml) passes.
  • Full PyAutoBuild suite: 113 passed.
  • Contract checks: activity-gate message prefix preserved; catalogue files present in all 6 matrix repos; compgen guard safe under bash -e.
  • Post-merge: inspect the next release/rehearsal's workspace commits — notebooks commit should carry notebooks/ + catalogue files; Colab commit should carry only URL rewrites.

Generated by the PyAutoLabs agent workflow.

Per the audit (#157, docs/pre_build_failure_audit.md): the notebooks step's
bare `git add *.ipynb` was bash-glob-regime-dependent, and the Colab steps'
`git add -A` swept the workspace catalogue (llms-full.txt,
workspace_index.json) and README into a commit labeled "bump Colab URL tag
refs" (verified 7e3c007). Notebooks step now stages notebooks/ + the catalogue
it produces, with an honest message; both Colab bump steps use `git add -u`
(tracked modifications only — exactly what the URL rewriter can produce). The
activity-gate's "Release <version>:" message prefix is preserved.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release Merged PR awaiting inclusion in the next release build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant