Skip to content

Migrate rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3 - #71

Merged
thedavidmeister merged 4 commits into
mainfrom
2026-08-19-issue-107-rainlang-interface
Aug 19, 2026
Merged

Migrate rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3#71
thedavidmeister merged 4 commits into
mainfrom
2026-08-19-issue-107-rainlang-interface

Conversation

@thedavidmeister

@thedavidmeister thedavidmeister commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Refs rainlanguage/rainlang.interface#107

Migrates the soldeer dependency rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3, following the interface repo/package rename (legacy rain-interpreter-interface is frozen; all new publishes go to rainlang-interface).

Changes

  • foundry.toml: rain-interpreter-interface = "0.1.0" -> rainlang-interface = "0.2.3".
  • All 11 imports across 6 src/ files rewritten from rain-interpreter-interface-0.1.0/src/... to rainlang-interface-0.2.3/src/.... Every imported file and symbol exists unchanged in 0.2.3.
  • Soldeer resolution is flat, so [dependencies] now also declares what rainlang-interface-0.2.3/src itself imports: @openzeppelin-contracts 5.6.1, rain-lib-hash 0.1.0, rain-math-binary 0.1.4, rain-sol-codegen 0.1.0, rain-solmem 0.1.3 (forge-std 1.16.1 already declared).
  • soldeer.lock regenerated via forge soldeer update; stale rain-interpreter-interface-0.1.0/ remapping removed from remappings.txt.
  • Deleted stale foundry.lock, which still pinned the pre-soldeer lib/rain.interpreter.interface git submodule and made every forge build warn Dependency 'lib/rain.interpreter.interface' not found at expected path (sibling soldeer repos have no foundry.lock).
  • CLAUDE.md dependencies section updated from the stale git-submodule description to the soldeer reality.
  • forge fmt collapsed three single-symbol import blocks that fit within the line width now that the package name is shorter.

Interface changes absorbed

None. Diffing rain-interpreter-interface 0.1.0 against rainlang-interface 0.2.3 package src: identical except src/lib/parse/LibParseMeta.sol and src/lib/codegen/LibGenParseMeta.sol, which only bump their rain-math-binary import path 0.1.1 -> 0.1.4. Neither file is imported by this repo. All symbols this repo consumes (IInterpreterCallerV4, EvaluableV4, SignedContextV1, IInterpreterV4, IInterpreterStoreV3, LibEvaluable, and the deprecated v1/v2 caller/deployer interfaces) are byte-identical.

QA

  • Discriminating tests: n/a — interface-only library with no test suite; forge test compiles and reports no tests, and this change is a dependency rename with zero behavioral surface.
  • Mutations applied: n/a — no executable logic changed; the only mutation surface is import paths, where any wrong path fails compilation.
  • Oracle: forge build green against the renamed package, plus a byte-level diff of the old (0.1.0) vs new (0.2.3) package src proving the consumed interfaces are identical.
  • Category check: dependency migration (rename + version bump), no interface or behavior changes in this repo's own API.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Maintenance

    • Updated project dependencies to use the latest Rain language interfaces.
    • Added support for OpenZeppelin Contracts and additional Rain utility packages.
    • Updated dependency mappings to ensure consistent package resolution.
  • Documentation

    • Clarified dependency management through Soldeer, including direct and transitive packages.
    • Removed outdated instructions for Git submodules and manual remappings.
  • Compatibility

    • Updated legacy and current interfaces to reference the new dependency packages.
    • No contract declarations or user-facing behavior changed.

baku-ccron and others added 2 commits August 19, 2026 04:15
The interface repo/package was renamed (rain.interpreter.interface ->
rainlang.interface); legacy rain-interpreter-interface is frozen and all
new publishes go to rainlang-interface.

- foundry.toml: rain-interpreter-interface 0.1.0 -> rainlang-interface
  0.2.3; declare the flat transitive set rainlang-interface's src
  imports (@OpenZeppelin-Contracts 5.6.1, rain-lib-hash 0.1.0,
  rain-math-binary 0.1.4, rain-sol-codegen 0.1.0, rain-solmem 0.1.3).
- Rewrite all src import paths to rainlang-interface-0.2.3/src/...
- Regenerate soldeer.lock via forge soldeer update; drop the stale
  rain-interpreter-interface-0.1.0 remapping.
- Delete stale foundry.lock pinning the pre-soldeer git submodule
  lib/rain.interpreter.interface (silences the forge build warning).
- Update CLAUDE.md dependencies section from submodule-era description
  to soldeer.

No interface changes absorbed: the consumed files are byte-identical
between the two packages.

Refs rainlanguage/rainlang.interface#107

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rainlang-interface-0.2.3 is shorter than rain-interpreter-interface-0.1.0,
so three previously wrapped single-symbol import blocks now fit on one line.

Refs rainlanguage/rainlang.interface#107

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

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 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?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

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 configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 92ff1ea0-47b0-49ce-bb3f-9f68c4706e63

📥 Commits

Reviewing files that changed from the base of the PR and between c9efbb5 and 1f293e7.

📒 Files selected for processing (1)
  • CLAUDE.md

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: 4044e2df-bbc8-4760-9b2a-11680cf289fc

📥 Commits

Reviewing files that changed from the base of the PR and between 5ff39ae and c9efbb5.

⛔ Files ignored due to path filters (2)
  • foundry.lock is excluded by !**/*.lock
  • soldeer.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • CLAUDE.md
  • foundry.toml
  • remappings.txt
  • src/interface/IRaindexV6.sol
  • src/interface/deprecated/v1/IOrderBookV1.sol
  • src/interface/deprecated/v2/IOrderBookV2.sol
  • src/interface/deprecated/v3/IOrderBookV3.sol
  • src/interface/deprecated/v4/IOrderBookV4.sol
  • src/interface/deprecated/v5/IOrderBookV5.sol

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


Walkthrough

The PR migrates dependency configuration from rain-interpreter-interface to rainlang-interface, adds supporting Soldeer packages, updates remappings, and repoints imports in current and deprecated Solidity interfaces.

Changes

Rainlang dependency migration

Layer / File(s) Summary
Update dependency configuration
CLAUDE.md, foundry.toml, remappings.txt
Documentation now describes Soldeer-managed dependencies. Foundry dependencies and remappings add supporting packages and replace rain-interpreter-interface.
Repoint Solidity imports
src/interface/IRaindexV6.sol, src/interface/deprecated/...
Current and deprecated interfaces import the same Rain symbols from rainlang-interface-0.2.3.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to c9efb

This change updates the dependency name and remappings without changing the repository’s interface behavior; no actionable merge-blocking risk remains after normal checks and review.

Possibly related PRs

🚥 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 describes the dependency migration from rain-interpreter-interface 0.1.0 to rainlang-interface 0.2.3.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-08-19-issue-107-rainlang-interface

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.

baku-ccron and others added 2 commits August 19, 2026 06:30
The static gate fails at 4162 bytes against the 4096 cap, 66 over. The
multi-line forge-lint suppression bullet is standard tool syntax, not
repo knowledge; cutting it (and the denofmt reflow) lands under the cap.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@thedavidmeister
thedavidmeister merged commit c1ce9f6 into main Aug 19, 2026
4 checks passed
@github-actions

Copy link
Copy Markdown

@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:

  • Simple bug fixes, typos, or minor refactoring
  • Single-purpose changes affecting 1-2 files
  • Documentation updates
  • Configuration tweaks
  • Changes that require minimal context to review

Review Effort: Would have taken 5-10 minutes

Examples:

  • Fix typo in variable name
  • Update README with new instructions
  • Adjust configuration values
  • Simple one-line bug fixes
  • Import statement cleanup

Medium (M)

Characteristics:

  • Feature additions or enhancements
  • Refactoring that touches multiple files but maintains existing behavior
  • Breaking changes with backward compatibility
  • Changes requiring some domain knowledge to review

Review Effort: Would have taken 15-30 minutes

Examples:

  • Add new feature or component
  • Refactor common utility functions
  • Update dependencies with minor breaking changes
  • Add new component with tests
  • Performance optimizations
  • More complex bug fixes

Large (L)

Characteristics:

  • Major feature implementations
  • Breaking changes or API redesigns
  • Complex refactoring across multiple modules
  • New architectural patterns or significant design changes
  • Changes requiring deep context and multiple review rounds

Review Effort: Would have taken 45+ minutes

Examples:

  • Complete new feature with frontend/backend changes
  • Protocol upgrades or breaking changes
  • Major architectural refactoring
  • Framework or technology upgrades

Additional Factors to Consider

When deciding between sizes, also consider:

  • Test coverage impact: More comprehensive test changes lean toward larger classification
  • Risk level: Changes to critical systems bump up a size category
  • Team familiarity: Novel patterns or technologies increase complexity

Notes:

  • the assessment must be for the totality of the PR, that means comparing the base branch to the last commit of the PR
  • the assessment output must be exactly one of: S, M or L (single-line comment) in format of: SIZE={S/M/L}
  • do not include any additional text, only the size classification
  • your assessment comment must not include tips or additional sections
  • do NOT tag me or anyone else on your comment

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

SIZE=M

You are interacting with an AI system.

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