Bump rain-sol-codegen to 0.1.36 (rain-deploy 0.1.7, forge-std 1.16.2) - #321
Bump rain-sol-codegen to 0.1.36 (rain-deploy 0.1.7, forge-std 1.16.2)#321thedavidmeister wants to merge 4 commits into
Conversation
….16.2 Coherent forward pin set: forge-std 1.16.2 + rain-deploy 0.1.7 + rain-sol-codegen 0.1.36. Import-prefix rewrites across ~105 files, BuildPointers.sol migrated to the 0.1.36 buildFileForTaggedContract API with a pointerFile() helper so frozen 0_1_1/ keeps .pointers.sol while new cuts carry .sol. The 12 candidate files are git mv'd X.pointers.sol -> X.sol (required before regeneration: the 0.1.36 orphan check reverts on .pointers.sol siblings) and regenerated. Pin values did not move: codegen is script-side only. All 12 renamed candidates differ from their pre-bump artifacts only in comment header lines; BYTECODE_HASH, DEPLOYED_ADDRESS and CREATION_CODE are byte-identical, so the next release deploys the same bytecode. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 107 files, which is 7 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (14)
📒 Files selected for processing (107)
You can disable this status message by setting the 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 |
|
The two red checks are pre-existing live-chain drift on main, not this PR:
The checks this PR can affect are green: git-clean (regeneration reproduces committed artifacts exactly), static, legal. The chain-drift fix ("flip the map pin PR") is a separate operational PR, out of scope for a toolchain bump whose pinned values are byte-identical. |
main retired the 20260810-revoke-fireblocks-service-signer script and its two tests; this branch had only rewritten their forge-std imports from 1.16.1 to 1.16.2. Took the deletion. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
rain-sol-codegen 0.1.36 writes a tag snapshot to `src/generated/<tag>/<ContractName>.sol` — 0.1.3 wrote `<ContractName>.pointers.sol` — and its orphan check refuses to leave the old-suffixed file beside the new one, so the bump renames all twelve candidates. Every one of them is now a second source file whose name is the name of the contract's own file. `vm.getCode` selects an artifact by matching the trailing path components of its source, so `X.sol:X` stopped naming one file the moment a second `X.sol` existed, and the three StoxUnifiedDeployer tests died on `multiple matching artifacts found` at the first etch. The full source path names the concrete contract and nothing else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Every rainix shell carries `rainix-static`, a rust build, and crates.io is answering 403 to the runners: `crate-zip-2.4.2.tar.gz` fails all four curl attempts, `rainix-static-0.1.0.drv` fails with it, and the shell never exists — so `Install soldeer dependencies` dies and nothing this lane asserts ever runs. The rainix reusable workflows already substitute from the `rainlanguage` cache via their shared `nix-cachix-setup` preamble, which is why `rainix-sol` built a shell on the same commit that this lane could not. This lane is hand-rolled and had to be told. Same fix as rainlanguage/rain.metadata#298. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bumps the codegen toolchain as a coherent forward pin set:
rain-sol-codegen0.1.3 → 0.1.36,rain-deploy0.1.4 → 0.1.7,forge-std1.16.1 → 1.16.2. This is not a vendored wall: the three pins resolve everything together — rain-deploy 0.1.7'sLibRainDeployis a verified API superset of 0.1.4's, with no dual installs and no redirect remappings. Same pattern as rain.math.float#270.What changed
foundry.tomlpins bumped,soldeer.lockregenerated, remappings clean; import-prefix rewrites across ~105 files.script/BuildPointers.solmigrated to the 0.1.36 API:buildFileForTaggedContract(vm, deployed, deployTag(), name, body), plus a newpointerFile()helper so frozen0_1_1/keeps.pointers.solforever while new cuts carry.sol.git mv'dX.pointers.sol→X.soland regenerated. The rename had to happen BEFORE regeneration: the 0.1.36 orphan check reverts when a.pointers.solsibling exists.LibProdDeployV4.solregenerated;LibProdDeployCurrent.solunchanged; frozen0_1_1/untouched.Pin values did not move
Codegen 0.1.36 is script-side only. The candidates are renamed and re-headed, but every pinned value is byte-identical: a diff loop over all 12 renames (
git show HEAD:…X.pointers.solvs newX.sol) shows the only differing lines are//comment headers and blanks —BYTECODE_HASH,DEPLOYED_ADDRESS, andCREATION_CODEare byte-identical in every file. The next release deploys the SAME bytecode.Verification
forge build+forge script ./script/BuildPointers.sol+forge fmt— regeneration reproduces the committed files unchanged (PIPELINE_OK).nix develop -c forge test: 716 passed; the 168 failures are allvm.createSelectFork: environment variable *_RPC_URL not found(fork tests without local RPC secrets; CI has them).QA
///blank header lines differ; pinned addresses/hashes/bytecode byte-identical) plus the regeneration pipeline reproducing the committed files unchanged.forge build/regeneration or produces artifacts that the diff loop would flag.0_1_1/snapshots untouched (append-only preserved) andLibProdDeployCurrent.solunchanged.🤖 Generated with Claude Code