fix(ci): PR-based release flow compatible with main branch ruleset - #396
Merged
Conversation
- fail fast with set -euo pipefail when the atomic push is rejected;
previously the rejection was swallowed because the custom
'bash -l {0}' shell does not enable error propagation, so the
GitHub release and PyPI publish proceeded without the version
bump ever landing on main
- verify origin/main actually carries the new version and tag
before creating the GitHub release or publishing to PyPI
- skip auto-release for bot-maintained commits (chore(deps):,
Ollama model list updates)
Contributor
|
Contributor
|
Reconcile main with the 0.19.13 release published to PyPI by run 31941758228, whose version-bump and release-notes commits were rejected by the 'Require CI checks on main' ruleset and never landed. Restores the invariant that main's pyproject version matches the latest released version, so the next auto-release computes 0.19.14.
ericmjl
force-pushed
the
fix/release-push-hardening
branch
from
August 16, 2026 22:45
f1e2451 to
2a0dc71
Compare
This was referenced Aug 16, 2026
ericmjl
added a commit
that referenced
this pull request
Aug 16, 2026
- docs/designs/git-cli/: LLD + EARS for resolving .git paths via GitPython (git_dir / common_dir) so 'llamabot git hooks' and 'llamabot git compose' work in linked worktrees and from subdirectories; currently all three hardcoded .git/ paths raise NotADirectoryError in worktrees - docs/designs/release-pipeline/: retroactive LLD for the PR-based release flow shipped in #396 (ruleset context, invariants, rollback semantics, residual state) - link both from high-level-design.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
The 0.19.13 release this morning half-landed: the release workflow's direct push to main was rejected by the new Require CI checks on main ruleset (created 06:28 today), but the job's
bash -l {0}shell does not fail fast, so the rejected push was swallowed and the GitHub release + PyPI publish proceeded anyway. Result: PyPI has 0.19.13 but main still says 0.19.12, and every subsequent merge to main failed withVersion 0.19.13 already exists on PyPI.What this PR does
1. Reconciles main with the released 0.19.13 (
Bump version to 0.19.13commit)2. Reworks the release workflow to land commits via a PR instead of a direct main push
release/vX, dispatchespr-tests.yamlon it (GITHUB_TOKEN pushes don't trigger workflows — same pattern as update-ollama-models), enables auto-merge (rebase), and waits for the merge3. Fail-fast + skip hygiene
set -euo pipefailso a rejected push/merge can never be swallowed againchore(deps):, Ollama model list updates)Notes