Uh oh!
There was an error while loading. Please reload this page.
fix(ci): rename the codegen script to script/Build.sol - #267
fix(ci): rename the codegen script to script/Build.sol#267thedavidmeister wants to merge 1 commit into
Conversation
rainix's copy-artifacts job now requires the codegen script to be exactly `script/Build.sol` when `src/generated/` is committed: ::error::src/generated/ is committed but script/Build.sol was not found, so the committed sources cannot be currency checked here. The codegen script must be script/Build.sol. The gate exists so a repo that renames or drops its codegen script goes red rather than silently skipping regeneration and reporting a green currency check. This repo's script was `script/BuildPointers.sol`, so the whole job fails at that step. It passed before only because the gate did not exist yet. Rename the file and the contract to match. The generated src/generated/LogTables.pointers.sol is unchanged: its "AUTOGENERATED BY ./script/BuildPointers.sol" header is a hardcoded string in rain-sol-codegen-0.1.0's LibCodeGen.filePrefix(), not a function of the script's filename, so regeneration is byte-identical and the currency check stays clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Warning Review limit reached
Next review available in:40 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What this fixes
The whole
copy-artifactsjob onmain, which fails at its first real step:rainix's
rainix-copy-artifacts.yamlmatches the codegen script nameexactly, on purpose: a repo that renames or drops it should go red rather
than skip regeneration and still report a green currency check. This repo's
script is
script/BuildPointers.sol, so the job dies at the gate and thecurrency check never runs at all.
This is not a regression in this repo — nothing here changed. The gate is new,
and
copy-artifactslast passed on 2026-07-15 only because the gate did notexist then.
What changed
script/BuildPointers.sol→script/Build.sol, and the contract inside itBuildPointers→Build. Plus the one stale reference inCLAUDE.md.src/generated/LogTables.pointers.solis not regenerated by this PR anddoes not need to be. Its header
still names the old path because that string is hardcoded in
rain-sol-codegen-0.1.0'sLibCodeGen.filePrefix()— it is not derived fromthe script's filename. So regeneration after the rename is byte-identical.
Hand-editing that header to say
Build.solwould be the thing that breaks thecurrency check, not the thing that fixes it.
QA
copy-artifactsjob itself, which fails on base at the "Regenerate generated sources" step with the error quoted above (observed on PR fix(test): drop vm.skip from the tagged deploy constants check #265, run 32508961076, job 96855392758) and is expected to get past it here. This PR's owncopy-artifactsrun is the verification.rainix-copy-artifacts.yamlsequence at rainix SHA3d1c85eca08ef5a852215f77c8f3684c8313a8b3- name gate,forge script ./script/Build.sol,forge build,forge script ./script/CopyArtifacts.sol --ffi,forge fmt,git diff --exit-code. Result: gate PASS, codegen rc=0, and the currency check clean (DIFF-RC=0, no untracked files), which confirms the regeneratedLogTables.pointers.solis byte-identical to the committed one.main. Covers exactly one: thecopy-artifactsname gate. It does not touch the deploy constants or the agent-context cap, which are separate causes with their own PRs.Overlap with #256 and #268
This PR is the same fix isolated; the two will conflict.
This PR's one-line
CLAUDE.mdedit is in the### Scriptssection, which#268 (the agent-context byte cap fix) deletes outright. If both land, take
#268's deletion.
Scope
A rename. No behaviour, no generated output, no test changed.