Skip to content

Bump rain-datacontract 0.1.0 -> 0.1.3 (and rain-solmem 0.1.26 it pins) - #13

Open
thedavidmeister wants to merge 1 commit into
mainfrom
bump-rain-datacontract-0-1-3
Open

Bump rain-datacontract 0.1.0 -> 0.1.3 (and rain-solmem 0.1.26 it pins)#13
thedavidmeister wants to merge 1 commit into
mainfrom
bump-rain-datacontract-0-1-3

Conversation

@thedavidmeister

@thedavidmeister thedavidmeister commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

What

Bumps rain-datacontract 0.1.0 -> 0.1.3, the latest published revision.

Why rain-solmem rides along

rain-datacontract 0.1.3 hard-pins rain-solmem-0.1.26/... import paths (LibDataContract re-exports LibPointer), and with recursive_deps = false those resolve through this repo's declared pins. So the transitive rain-solmem pin moves 0.1.3 -> 0.1.26 with it. Nothing else in the compile graph imports solmem: this repo's own sources never do, and neither the vendored rain-string 0.2.0 nor rain-math-float 0.1.7 sources reference it — the old foundry.toml comment claiming rain-string -> rain-solmem was stale and is corrected in this diff (mirrors rain.math.float#270, where the same pair moved together in the library repo).

Dropped API check

datacontract 0.1.3 dropped its write API, including the DataContractMemoryContainer type. Everything this repo actually calls survives: every call site is LibDataContract.contractCreationCode (DecimalFloatDeploySuites, LibEtchLogTables, the deploy tests). The only casualty is test/abstract/LogTest.sol's type import and its dead using LibDataContract for DataContractMemoryContainer; directive — removed, no behaviour behind them.

Deploy pins

contractCreationCode is byte-identical between 0.1.0 and 0.1.3 (only its DataTooLarge error declaration moved from the library into ErrDataContract.sol, same signature), and the solmem import is an unused re-export. forge script script/Build.sol was re-run after the bump: the src/generated/candidate/ snapshots did not move — same log-tables creation code, same DecimalFloat bytecode, same Zoltu addresses. The frozen src/generated/0_1_1/ record is untouched.

Scope

  • foundry.toml + soldeer.lock: the two version pins, plus the corrected solmem-edge comment.
  • Versioned rain-datacontract-0.1.0/ -> rain-datacontract-0.1.3/ import paths across src/abstract/DecimalFloatDeploySuites.sol, script/lib/LibEtchLogTables.sol and four test files.
  • test/abstract/LogTest.sol: dead write-API references removed.
  • No remappings.txt in this repo (gitignored, soldeer regenerates it), so nothing to prune there.

QA

  • Discriminating tests: n/a — dependency pin bump with zero behavioural intent; no new behaviour exists to discriminate. The gate is the full existing suite plus the Build-script currency check that the candidates did not move.
  • Mutations applied: n/a — the diff contains no executable logic to mutate (version pins, a comment fix, import paths, deletion of a dead using directive; the compiler kills any wrong path/symbol edit with a build failure).
  • Oracle: the pre-bump suite on main (same tests, same assertions) plus rain-datacontract's 0.1.0..0.1.3 source diff, read in full: contractCreationCode byte-identical, read/readSlice doc-only changes, write API deleted (unused here), DataTooLarge moved files with an unchanged signature. Candidate pins re-derived by forge script script/Build.sol and byte-identical to main's.
  • Category check: no issue — housekeeping dep bump per the stale-deps campaign; covered: pin bump, forced transitive solmem pin, dropped-API audit of every call site, candidate regeneration, full-suite verification.

Verification

Full suite locally in the flake shell: 71 passed, 6 failed — the 6 failures are exactly the live-network prod-deployment fork tests (testProdDeployment*, testSuitesLiveOnEverySupportedNetwork) failing at vm.createSelectFork: environment variable ... not found, which need the CI RPC secrets and fail identically on an unmodified checkout. CI is the gate for those.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Updated supporting package versions for improved compatibility and maintenance.
    • Refreshed related dependency references throughout deployment and testing workflows.
    • Expanded dependency documentation to clarify transitive package requirements.
  • Refactor

    • Removed an unused data contract utility reference from test infrastructure without changing functionality.

datacontract 0.1.3 hard-pins rain-solmem-0.1.26 import paths, so the
transitive solmem pin moves 0.1.3 -> 0.1.26 with it; nothing else in the
compile graph imports solmem.

0.1.3 dropped the write API including DataContractMemoryContainer; this
repo only ever called contractCreationCode, so the only casualty is a
dead type import + using directive in LogTest.

contractCreationCode is byte-identical between 0.1.0 and 0.1.3, and the
regenerated candidates did not move.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b999d395-cb08-4745-b35e-ad32d0bf7dbc

📥 Commits

Reviewing files that changed from the base of the PR and between 859a0fc and d10cfc3.

⛔ Files ignored due to path filters (1)
  • soldeer.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • foundry.toml
  • script/lib/LibEtchLogTables.sol
  • src/abstract/DecimalFloatDeploySuites.sol
  • test/abstract/LogTest.sol
  • test/src/lib/deploy/LibDecimalFloatDeploy.checkLogTablesDeployed.t.sol
  • test/src/lib/deploy/LibDecimalFloatDeploy.t.sol
  • test/src/lib/deploy/LibDecimalFloatDeployCandidate.t.sol

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The project updates Rain dependency pins and changes all listed Solidity imports from rain-datacontract-0.1.0 to rain-datacontract-0.1.3. LogTest also removes an unused type import and using declaration.

Changes

Dependency migration

Layer / File(s) Summary
Update dependency pins
foundry.toml
The project updates the rain-solmem and rain-datacontract versions and expands dependency comments.
Align Solidity imports
script/lib/LibEtchLogTables.sol, src/abstract/DecimalFloatDeploySuites.sol, test/abstract/LogTest.sol, test/src/lib/deploy/*
Production and test files import rain-datacontract-0.1.3. LogTest removes the unused DataContractMemoryContainer import and using declaration.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to d10cf

This dependency pin and import cleanup is merge-ready after normal checks; no actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the dependency upgrades described in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (7 skipped: 7 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bump-rain-datacontract-0-1-3

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant