Add VerifyGeneratedTools CI gate for tool wrapper drift#5
Closed
dennisdoomen wants to merge 1 commit into
Closed
Conversation
GenerateTools only runs when a contributor remembers to invoke it, so a .json spec edited without regenerating its .Generated.cs could merge silently and ship stale wrapper code in the next release. VerifyGeneratedTools regenerates the tool wrappers from their .json specs and asserts the working copy stays clean, and is wired into the ubuntu-latest required PR gate ahead of Test and Pack. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Owner
Author
|
Superseded by Fallout-build#512 (opened against the upstream repo instead of the fork). |
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.
Problem
GenerateToolsregenerates the.Generated.cstool wrappers from their.jsonspecs, but it's a manual target with no CI enforcement. A contributor can edit a tool's.jsonspec without regenerating its wrapper, merge silently, and ship stale wrapper code in the next release.Outcome
Adds a
VerifyGeneratedToolstarget that regenerates the tool wrappers from a known-clean checkout and asserts the working copy stays clean afterward, failing the build if regeneration produces a diff. Wires it into theubuntu-latestrequired PR gate ahead ofTestandPack, so drift between a.jsonspec and its generated wrapper is caught before merge instead of shipping in the next release.Includes the regenerated
.fallout/build.schema.jsonand.github/workflows/ubuntu-latest.yml(both generated frombuild/Build.CI.GitHubActions.cs/ the target list — not hand-edited).