Repository navigation
fix(ci): spec governance validates the PR merge commit, not the PR head (unblocks #1561) - #1569
Merged
Merged
Conversation
… the PR head (Spec 11.01 section 3.7) The job checked out pull_request.head.sha. A branch cut before formal_specs/ existed has no lean-toolchain, so lake build failed with no default toolchain configured, and the job validated a tree that is not what merges (#1561 is such a branch). It now checks out github.sha, the synthetic merge commit of the PR head into the current base, i.e. the tree that would land. The [spec-exempt: ...] marker keeps working: validate_specs.py already searches every commit message in BASE..HEAD, and the merge commit's second parent is the contributor's head. Push events are unchanged (github.sha is the pushed commit). Jinja-Render-Check: rendered=1; formats=yaml; result=pass Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
minguyen9988
added a commit
that referenced
this pull request
Oct 10, 2026
Lean proofs and spec validator failed here because the job checked out this branch's head, which predates formal_specs/; #1569 makes it validate the merge commit with 2.11.0. No content change.
minguyen9988
added a commit
that referenced
this pull request
Oct 10, 2026
* Add THIRD_PARTY_NOTICES.md * THIRD_PARTY_NOTICES.md: align with the notice regenerated for 2.11.0 (#1560) This branch and #1560 both add THIRD_PARTY_NOTICES.md, so the PR cannot merge into 2.11.0 (add/add conflict). Take the 2.11.0 version as the base of this PR; the next commit adds the one runtime component this branch listed that the 2.11.0 notice lacks. * THIRD_PARTY_NOTICES.md: align with 2.11.0 again after #1564 #1564 added the protobuf-java row to the 2.11.0 notice, which re-created the add/add conflict with this branch. The file here is now identical to the 2.11.0 version, so the PR merges cleanly. * ci: re-run checks after #1568 The Review gates job failed on this branch because the workflow ran the check script from the PR head, which predates it; #1568 makes it use the base branch copy. No content change. * ci: re-run checks after #1569 Lean proofs and spec validator failed here because the job checked out this branch's head, which predates formal_specs/; #1569 makes it validate the merge commit with 2.11.0. No content change. --------- Co-authored-by: minguyen9988 <136291932+minguyen9988@users.noreply.github.com>
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.
Fixes the Lean proofs and spec validator failure on #1561, and on any PR whose branch was cut before formal_specs existed.
The cause: the job checked out pull_request.head.sha. A branch cut from the develop-era commit has no formal_specs/lean/lean-toolchain, so lake build failed with no default toolchain configured. The job was also validating a tree that is not what would merge.
The fix: it now checks out github.sha. On pull_request that is the synthetic merge commit of the PR head into the current base, which is the tree that would land.
Whole-Change-Verification: ran=YAML lint of the workflow, python3 scripts/validate_specs.py --changed-base on 8749d6c (84 specs, PASSED), and a read of the validator range logic in check_changed_base; result=pass
Created on behalf of the team that co-maintains this connector; maintainers own the merge.
Generated with Claude Code (https://claude.com/claude-code)