Skip to content

Add VerifyGeneratedTools CI gate for tool wrapper drift#5

Closed
dennisdoomen wants to merge 1 commit into
mainfrom
dennisdoomen-verify-generated-tools-ci
Closed

Add VerifyGeneratedTools CI gate for tool wrapper drift#5
dennisdoomen wants to merge 1 commit into
mainfrom
dennisdoomen-verify-generated-tools-ci

Conversation

@dennisdoomen

Copy link
Copy Markdown
Owner

Problem

GenerateTools regenerates the .Generated.cs tool wrappers from their .json specs, but it's a manual target with no CI enforcement. A contributor can edit a tool's .json spec without regenerating its wrapper, merge silently, and ship stale wrapper code in the next release.

Outcome

Adds a VerifyGeneratedTools target 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 the ubuntu-latest required PR gate ahead of Test and Pack, so drift between a .json spec and its generated wrapper is caught before merge instead of shipping in the next release.

Includes the regenerated .fallout/build.schema.json and .github/workflows/ubuntu-latest.yml (both generated from build/Build.CI.GitHubActions.cs / the target list — not hand-edited).

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>
@dennisdoomen dennisdoomen added enhancement New feature or request target/2026 labels Jul 19, 2026
@dennisdoomen

Copy link
Copy Markdown
Owner Author

Superseded by Fallout-build#512 (opened against the upstream repo instead of the fork).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request target/2026

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant