Bump rainlang 0.1.5 -> 0.2.4 and the dep chain it spells (rain-solmem 0.1.28), no alias remappings - #2863
Conversation
… 0.1.28) - rainlang 0.1.5 -> 0.2.1; rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.8 (successor package), imports re-pointed. - rain-solmem 0.1.3 -> 0.1.28, rain-math-binary 0.1.1 -> 0.1.4, raindex-interface 0.1.3 -> 0.1.5, rain-extrospection 0.1.14 added (rainlang 0.2.1 spells it). - Every versioned import prefix moved in place across src/, test/, script/. - rainlang 0.2.x no longer ships deploy pins (rainlanguage/rainlang#552): tests bind the test concretes via rainlang-0.2.1/test/lib/deploy/LibTestInterpreterDeploy.sol. - forge-std-1.16.1, rain-sol-codegen-0.1.0 and rain-deploy-0.1.2 alias remappings dropped: nothing reached spells them any more; this repo's own imports move to rain-deploy-0.1.7 / rain-sol-codegen-0.1.36. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Er8WeWK6pTu7imaLpEZ3bg
Output of script/build-meta.sh -> forge script script/Build.sol (fixed point, two identical passes) -> script/build.sh, exactly as rainix-copy-artifacts runs it. The bumped upstream internals move the compiled sub-parser: bytecode hash, counterfactual Zoltu address and creation code in src/generated/candidate/RaindexV6SubParser.sol, the function-pointer tables in src/generated/RaindexV6SubParserPointers.sol, and the ABI fixture bytecode. meta/ is unchanged; RaindexV6, RouteProcessor4 and the arb/flash-borrower candidates are byte-identical so their pins stay; the frozen 0_1_14 / 0_1_15 snapshots are untouched. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Er8WeWK6pTu7imaLpEZ3bg
|
Important Review skippedToo many files! This PR contains 167 files, which is 67 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: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (167)
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 |
git-clean / copy-artifacts builds `nix shell .#rain-cli` for build-meta.sh. The `rain` flake input was locked to rain.cli 207d8f6b (2026-05-30), a rev whose output (/nix/store/c5a2msc8...-rain) is not on rainlanguage.cachix.org, so every run rebuilt it from source. crates.io now answers 403 to nixpkgs' fetchurl on https://crates.io/api/v1/crates/<name>/<version>/download (any `curl/...` user agent), and alloy 1.8.3 is the one crate not on cache.nixos.org, so the rebuild fails: "cannot download crate-alloy-1.8.3.tar.gz from any mirror". main is red on the same error since 2026-09-07 (last green 2026-09-04). rain.cli main 24814702 (2026-06-02, "latest rainix + soldeer re-lock" plus the version bump) evaluates to /nix/store/hfv8lqyw...-rain, which is on rainlanguage.cachix.org (the path sibling repos' copy-artifacts runs fetch), so CI takes it from the cache and never touches crates.io. build-meta.sh re-run on the new pin: meta/ byte-identical. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Er8WeWK6pTu7imaLpEZ3bg
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
…rop the rain-metadata-0.1.0 alias Re-spells every versioned import prefix in place after the origin/main merge that moved rain-deploy to 0.1.8: - `rain-deploy-0.1.7/` -> `rain-deploy-0.1.8/` (36 test files) - `rainlang-0.2.1/` -> `rainlang-0.2.4/`; 0.2.4 spells `rain-metadata-0.1.7/` itself, so the `rain-metadata-0.1.0/=dependencies/rain-metadata-0.1.7/` alias in foundry.toml goes: one version prefix is never mapped onto another. - `rain-math-float-0.1.1/` -> `rain-math-float-0.2.1/` (what rainlang 0.2.4 spells; `LibDecimalFloat` is signature-identical). The concrete `DecimalFloat` and `LibDecimalFloatDeploy` moved out in 0.2.x, so `script/SubgraphAbi.sol` and `src/abstract/RaindexDeploySuites.sol` now import them from `rain-math-float-deploy-0.1.2/`, a new pin. - `rain-lib-typecast-0.1.0/` -> `rain-lib-typecast-0.1.4/` (what rainlang 0.2.4 spells). `forge soldeer update` regenerated the lock and remappings; superseded lines and `dependencies/` dirs pruned. `forge build` is red at this pin set on exactly two upstream spellings, both fixed upstream and awaiting release: - `rainlang` 0.2.4 `test/abstract/RainlangExpressionDeployerDeploymentTest.sol` (reached via `OpTest`) spells `rain-deploy-0.1.7/`: rainlang PR bumps it to 0.1.8. - `raindex-interface` 0.1.5 `IRaindexV6.sol` / `IOrderBookV5.sol` spell `rain-math-float-0.1.1/`: raindex.interface PR bumps it to 0.2.1. Once those release, `rainlang` and `raindex-interface` move to the new versions here. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
… merge dropped The origin/main merge (0660959) lost the two `[rpc_endpoints]` aliases and two `[etherscan]` entries #2865 added with rain-deploy 0.1.8. `testSupportedNetworksAreFullyConfigured` fails without them (`supported network has no [rpc_endpoints] alias: bsc`). Both blocks are byte-equal to origin/main again. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
Both carry the rain-deploy 0.1.8 and rain-math-float 0.2.1 imports this tree already holds, so no package version is aliased onto another. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
What
Puts raindex on the latest published
rain-solmem(0.1.28) by moving the whole Soldeer chain that spells it:rainlang0.1.5 -> 0.2.4 and every pin 0.2.4 imports. Every versioned import prefix insrc/,test/andscript/moves in place. No alias remapping remains: therain-metadata-0.1.0/=dependencies/rain-metadata-0.1.7/line that earlier revisions of this PR kept is gone, because mapping one version prefix onto another is not acceptable (ruling 2026-09-12); the upstream package that spelled the old prefix was fixed instead (rainlang #581, released as 0.2.4).Subsumes #2831 (
rain-math-binary0.1.1 -> 0.1.4 here, past the 0.1.3 that PR targeted) and supersedes #2839 (0.1.26 via an alias remapping, which the 2026-08-13 ruling forbids).Why the chain
rainlang0.1.x spellsrain-solmem-0.1.3/in its published import paths and Soldeer installs one version per package name, so solmem cannot move alone.rainlang0.2.4 spellsrain-solmem-0.1.28/. The remaining pins are exactly whatrainlang0.2.4 andrainlang-interface0.2.8 import, read from the installed sources.rain-metadata-0.1.7/itself, which is what removed the aliasrain-interpreter-interfacerainlang0.2.4 spells (46 sites);LibDecimalFloatis signature-identical between the twoDecimalFloatandLibDecimalFloatDeployhere;script/SubgraphAbi.solandsrc/abstract/RaindexDeploySuites.solimport them from this prefix nowrainlang0.2.4 spellsrain-interpreter-interface-0.1.0/inIRaindexV6.sol, a second distinctIInterpreterV4type next torainlang-interface0.2.8; 0.1.5 spellsrainlang-interface-0.2.8/rainlang0.2.4 spells itrainlang0.2.4 importsforge soldeer updateregeneratedsoldeer.lockandremappings.txt; stale remapping lines anddependencies/dirs pruned. The only entry left infoundry.tomlremappingsis the@openzeppelin/contracts/one that resolves OpenZeppelin's own internal imports.Deploy pins
rainlang0.2.x ships no deploy pins. The 22 test files that importedrainlang-0.1.5/src/lib/deploy/LibInterpreterDeploy.solnow import the symbols they use fromrainlang-0.2.4/test/lib/deploy/LibTestInterpreterDeploy.soland calletchTestRainlang(vm)instead ofetchRainlang(vm)(same migration rain.dia#72 did).Candidates
Regenerated exactly as
rainix-copy-artifactsdoes (forge script script/Build.sol->forge build): the bumped upstream internals moved the compiledRaindexV6SubParseronce, at the 0.2.1 step (src/generated/candidate/RaindexV6SubParser.solbytecode hash0x704aadc1...->0xdd4c380f..., Zoltu address0x09Bc7AF2...->0xE14F3A7b..., plussrc/generated/RaindexV6SubParserPointers.solandcrates/test_fixtures/abis/RaindexV6SubParser.json). The 0.2.1 -> 0.2.4 / float 0.2.1 step leaves every candidate byte-identical:Build.solon this head reports no files changed andgit statusis clean afterwards.RaindexV6,RouteProcessor4and the arb / flash-borrower candidates never moved. Frozensrc/generated/0_1_14and0_1_15untouched.Merge fix
The
origin/mainmerge (0660959) had dropped therobinhoodandbscentries from[rpc_endpoints]and[etherscan]that #2865 added;testSupportedNetworksAreFullyConfiguredcatches this (supported network has no [rpc_endpoints] alias: bsc). Both blocks are restored to what main has.Blocked on two upstream releases
At the pins that exist today
forge buildfails on exactly two upstream spellings, both already fixed upstream and green:rainlang0.2.4test/abstract/RainlangExpressionDeployerDeploymentTest.sol(reached throughOpTest, which three test files here import) spellsrain-deploy-0.1.7/. Bump rain-deploy 0.1.7 -> 0.1.8 rainlang#582 bumps it to 0.1.8.raindex-interface0.1.5IRaindexV6.sol/ deprecatedIOrderBookV5.solspellrain-math-float-0.1.1/. Bump rain-math-float 0.1.1 -> 0.2.1 raindex.interface#75 bumps it to 0.2.1.Once those two release, this PR moves
rainlang-> that release andraindex-interface-> that release (import prefixes included) and nothing else.rain-metadata-deploy0.1.1 still spellsrain-deploy-0.1.7/in itsRainDeploySuitesBase.sol, but this repo only reaches itsLibMetaBoardDeploy.sol, which imports nothing outside the package, so it is not in the way; same forrain-math-float-deploy0.1.2, whoseLibDecimalFloatDeploy.solclosure never touchesrain-deploy.QA
forge script script/Build.sol->forge build, output committed verbatim and re-asserted independently by CIcopy-artifacts; upstream bytes pinned by the Soldeer checksum + integrity hashes insoldeer.lock; the restored[rpc_endpoints]/[etherscan]blocks are byte-equal toorigin/main.LibTestInterpreterDeploy, candidate regeneration, alias removal. Subsumes chore: bump soldeer rain-math-binary 0.1.1 -> 0.1.3 #2831, supersedes Bump rain-solmem 0.1.3 -> 0.1.26 #2839.Local verification on this head with the three upstream files from #582 and #75 copied over the installed
dependencies/copies (the only bytes those PRs change; not committed here), through the repo flake withARBITRUM_RPC_URLset:forge buildexit 0 (0 errors, the same pre-existing lint warnings as main);forge test176 suites, 686 passed, 10 failed. The 10:testProdDeployArbitrumwithSubParser not deployed(candidate moved, deploy pending, as before); 8 fork tests failing on*_RPC_URL not foundfor base / base_sepolia / flare / polygon (environment only); andtestSupportedNetworksAreFullyConfigured, which the merge fix above clears (re-run green). Until the two releases land, CIrainix-sol / testandcopy-artifactson this branch fail at the import resolution step, by construction.After the releases the expected CI state is: every check green except
rainix-sol / testfailing exactly the fiveLibRaindexDeployProdtestProdDeploy{Arbitrum,Base,BaseSepolia,Flare,Polygon}withSubParser not deployed, until aManual sol artifactsdispatch withsuite=subparser(key custody, human only) deploys the moved candidate.🤖 Generated with Claude Code
https://claude.ai/code/session_01V8ViHcKLVk2YoS2joH4HdN