Bump rain-math-binary 0.1.1 -> 0.1.3 - #551
Conversation
Version-suffixed Soldeer remapping, so the version moves in foundry.toml, remappings.txt and every import that names it. The 0.1.1 -> 0.1.3 delta in the library is NatSpec/comment-only in src/lib/LibCtPop.sol, so there is no behavioural change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThe PR updates all listed ChangesDependency upgrade
Estimated code review effort: 1 (Trivial) | ~3 minutes Mergeability Score: ⚪ Minimal · up to This is a localized dependency-version and import-path update with lockfile regeneration and no stated behavior change. Dependency resolution succeeded and stale version references were removed; no actionable merge-blocking risk remains beyond normal CI checks. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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 |
|
🤖 ai:producer |
|
👤 human |
|
Rework note @f486aa33107f8dd515318a252c604778bde18ba8: Work the upgrade through in dependency order. Do not close the cluster and do not re-flag for a cost ruling: the payload being documentation does not change that the versions have to move, and the same cascade is owed on the next release whether or not this one lands. Order: 1) rainlang.interface — bump rain-math-binary to 0.1.3 there and open the PR; merging publishes a new rain-interpreter-interface via autopublish. 2) This PR — add a follow-up commit bumping rain-interpreter-interface to that new version, moving its version-suffixed remapping and imports exactly as this diff moves rain-math-binary's. CI goes green at that point, not before. 3) rainlang republishes on merge for its own consumers. 4) The six siblings — rain.pyth#32, rain.merkle#16, rain.flare#205, rain.erc4626.words#261, raindex#2831, rain.dia#66 — take the new versions in turn. Each step is one PR. Where a step is blocked on a publish that has not happened yet, that is ai:blocked-on with the typed --blocked-by ref, not a design question. Keep the version-suffixed import form throughout; do not introduce an unversioned alias or collapse a suffix to route around the flat dependency set. recursive_deps = false is what makes this repo's own remappings responsible for satisfying its dependencies' hardcoded imports, and that is the constraint the sequence exists to respect. |
Bumps the Soldeer dependency
rain-math-binaryfrom0.1.1to0.1.3.The
0.1.1 -> 0.1.3delta in that library is NatSpec/comment-only insrc/lib/LibCtPop.sol— there is no behavioural change, so this is amechanical version move.
This repo uses version-suffixed Soldeer remappings, so the version string
appears in
remappings.txtand inside everyimportthat names the package.That form is deliberate and is preserved here — the only change is
0.1.1->0.1.3in place. No unversioned alias was introduced and no version suffix wascollapsed away.
BLOCKED — this cannot compile yet, and CI is expected to be red
This PR is blocked upstream on
rain-interpreter-interfaceand will not gogreen until that package is republished against
rain-math-binary0.1.3. Itis staged here so the mechanical work is on the record; it is not ready to land.
foundry.tomlsets[soldeer] recursive_deps = false, so rainlang keeps a flatdependency set and rainlang's own
remappings.txtis what has to satisfy thehard-coded versioned imports inside its dependencies.
rain-interpreter-interface-0.1.0— which this repo pins — imports
rain-math-binary-0.1.1from compiledsrc/,not just from its tests:
dependencies/rain-interpreter-interface-0.1.0/src/lib/parse/LibParseMeta.sol:5dependencies/rain-interpreter-interface-0.1.0/src/lib/codegen/LibGenParseMeta.sol:13Both are squarely on rainlang's compile path —
src/lib/parse/LibParse.sol:23imports
LibParseMeta, andscript/Build.sol:18importsLibGenParseMeta—so once the
rain-math-binary-0.1.1/remapping is gone these imports dangle andforge buildfails. The latest publishedrain-interpreter-interface(0.1.2)still pins
rain-math-binary0.1.1, so no combination of currently publishedversions resolves this today.
(
rain-extrospection-0.1.1also referencesrain-math-binary-0.1.1, but onlyfrom its own
test/tree, which this repo does not compile. It is not part ofthe block.)
Follow-up required before this is mergeable: once
rainlang.interfacerepublishes
rain-interpreter-interfaceagainstrain-math-binary0.1.3, afollow-up commit on this branch bumps
rain-interpreter-interfaceto that newversion (and moves its version-suffixed remapping and imports the same way this
PR moves
rain-math-binary's). CI should be expected to go green only afterthat commit.
Files changed
foundry.toml"rain-math-binary" = "0.1.1"->"0.1.3"remappings.txtrain-math-binary-0.1.1/=dependencies/rain-math-binary-0.1.1/->-0.1.3/on both sidessoldeer.lockforge soldeer update(version, url, checksum, integrity)src/lib/op/bitwise/LibOpBitwiseCountOnes.solLibCtPopimport ->rain-math-binary-0.1.3/test/src/lib/op/bitwise/LibOpBitwiseCountOnes.t.solLibCtPopimport ->rain-math-binary-0.1.3/test/src/lib/parse/LibParseState.constantValueBloom.t.solLibCtPopimport ->rain-math-binary-0.1.3/6 files changed, 9 insertions(+), 9 deletions(-). Nothing else is touched — no
unrelated lint fixes, no refactors, no other dependency bumps.
QA
test. It moves a version string in
foundry.toml,remappings.txt,soldeer.lockand threeimportlines; the upstream0.1.1 -> 0.1.3deltais NatSpec/comment-only in
src/lib/LibCtPop.sol. The existingLibOpBitwiseCountOnesandLibParseState.constantValueBloomsuites are thecoverage for
LibCtPop. Not verified locally - see the delegation note below.equivalent falsification for a remapping bump is that a wrong or stale version
path fails to resolve at compile time rather than surviving silently. I ran
that check by grep rather than by compiler, and it is exactly what surfaced
the block documented above: sweeping for
rain-math-binary-0.1.1acrossdependencies/found the two liverain-interpreter-interface-0.1.0src/imports that this bump strands. A green compile is therefore not achievable
from this diff alone.
forge soldeer updateresolved
0.1.3independently and wrote the url, checksum and integrity intosoldeer.lock; I did not hand-edit any of those three values. The claim thatthe upstream delta is comment-only comes from the library source, not from
anything in this diff. The block was confirmed by reading the dependency
source on disk at the two line numbers cited above.
rain-math-binary0.1.1 -> 0.1.3and moveevery place the version-suffixed remapping names it; covered
foundry.toml,remappings.txt,soldeer.lock, and all three.solimports, verified by awhole-tree grep returning zero
rain-math-binary-0.1.1hits in tracked files.Deliberately not covered: occurrences inside gitignored
dependencies/, whichare published upstream artifacts and are the subject of the block, not
something to edit; and the pre-existing stale
rain-deploy-0.1.2/rain-extrospection-0.1.0remapping lines, which are out of scope for thisbump and are left exactly as found.
Verification of this change is delegated to CI. I did not run the test suite
locally for this diff, and I am not claiming a local green. CI is expected to be
RED, for the upstream reason stated in the BLOCKED section above — not for a
defect in this diff.
What I actually ran locally:
nix develop -c forge soldeer install— exit 0. Used only to populatedependencies/before the bump.nix develop -c forge soldeer update— exit 0. Output:Updated lockfile,Updated remappings,Done updating!. This regeneratedsoldeer.lockto0.1.3(new url0_1_3_19-07-2026_19:05:36_rain.math.zip, new checksum andintegrity). There is no
foundry.lockin this repo, sosoldeer.lockis theonly lockfile in the diff. Note that
soldeer updateappends a remappingrather than replacing one — it left both the
0.1.1and0.1.3lines inremappings.txt, and I deleted the stale0.1.1line by hand so exactly onerain-math-binaryremapping remains.git commitran the repo's installed pre-commit hooks:taploPassed,no-consumer-prettierPassed, all other hooks skipped (no matching files).directly: zero occurrences of
rain-math-binary-0.1.1remain in trackedfiles — sources, tests, config, lockfile, docs, scripts and
.github/workflows all clean; and the surviving occurrences under gitignored
dependencies/are the upstream ones documented in the BLOCKED section.What I did NOT run, and which CI is expected to cover:
forge build/forge test(rainix-sol-test). A baseline run on unmodifiedmainwas started but was deliberately killed before producing a result, so Ihave no baseline pass/fail counts and cannot distinguish pre-existing red
from anything this diff might introduce.
slither .,forge fmt --check,rainix-sol-single-contract(
rainix-sol-static).copy-artifactsregeneration. Because the upstream delta is comments-only,and this repo sets
bytecode_hash = "none"withcbor_metadata = false, thecompiled bytecode should be unchanged once the block clears, so the committed
src/generated/*.pointers.solandmeta/artifacts should still be current..gas-snapshotwas not regenerated. No CI job inrainix-solorcopy-artifactschecks it, so it should not gate this PR.