Skip to content

soldeer migration#18

Merged
thedavidmeister merged 1 commit into
mainfrom
2026-05-09-soldeer
May 9, 2026
Merged

soldeer migration#18
thedavidmeister merged 1 commit into
mainfrom
2026-05-09-soldeer

Conversation

@thedavidmeister

@thedavidmeister thedavidmeister commented May 9, 2026

Copy link
Copy Markdown
Contributor

Migrate from git submodules to soldeer.

Dependencies:

  • forge-std → forge-std-1.16.1 (soldeer)
  • rain.solmem → rain-solmem-0.1.3 (soldeer)

CI: drop the bespoke matrix workflow; use rainix's static, legal, and test reusables (plus the publish wrapper). soldeer.lock pinned.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Integrated Soldeer package manager for dependency management, replacing git submodules.
    • Added automated publishing workflow to Soldeer on version tags.
  • Documentation

    • Restructured README with clearer sections: Install (Soldeer), Develop, Publish, and License guidance.
  • Chores

    • Updated CI/CD workflows for modularized testing, linting, and legal checks.
    • Updated development environment configuration and ignore patterns.
    • Migrated library dependencies to versioned Soldeer packages.

Review Change Stack

Mirrors rain.solmem and the level-1 leaves. Closes (the soldeer issue
on rain.datacontract).

Dependencies migrated:
- forge-std → forge-std-1.16.1 (soldeer)
- rain.solmem → rain-solmem-0.1.3 (soldeer)

Source-side: rewrote 4 imports across LibDataContract.sol and the test
file from submodule paths to soldeer paths. The `..//../lib/...`
relative path that sneaked in for LibPointer is gone — soldeer
remappings make the path explicit.

CI: drop the bespoke matrix workflow; use rainix's static, legal, and
test reusables (and the publish wrapper). soldeer.lock pinned.

Verified: forge test passes (6/6).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@thedavidmeister thedavidmeister self-assigned this May 9, 2026
@coderabbitai

coderabbitai Bot commented May 9, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: c6c9eea6-09e3-4fa0-b2ef-a027cc68dc6d

📥 Commits

Reviewing files that changed from the base of the PR and between 68692df and eaae170.

⛔ Files ignored due to path filters (2)
  • flake.lock is excluded by !**/*.lock
  • soldeer.lock is excluded by !**/*.lock
📒 Files selected for processing (17)
  • .github/workflows/publish-soldeer.yaml
  • .github/workflows/rainix-sol-legal.yaml
  • .github/workflows/rainix-sol-static.yaml
  • .github/workflows/rainix-sol-test.yaml
  • .github/workflows/rainix.yaml
  • .gitignore
  • .gitmodules
  • .soldeerignore
  • README.md
  • REUSE.toml
  • flake.nix
  • foundry.toml
  • lib/forge-std
  • lib/rain.solmem
  • remappings.txt
  • src/lib/LibDataContract.sol
  • test/lib/LibDataContract.t.sol

Walkthrough

This PR migrates the repository from Git submodule-managed dependencies to Soldeer package management. It removes submodule declarations, establishes foundry.toml dependency configuration, updates all imports to versioned paths, refactors GitHub Actions workflows into modular reusable tasks, simplifies flake.nix outputs, and restructures documentation and project configuration files accordingly.

Changes

Soldeer Package Management Migration

Layer / File(s) Summary
Dependency Configuration
.gitmodules, foundry.toml, remappings.txt, lib/forge-std, lib/rain.solmem
Removes git submodule entries for lib/forge-std and lib/rain.solmem; adds foundry.toml with libs = ["dependencies"], [dependencies] block for forge-std-1.16.1 and rain-solmem-0.1.3, and [soldeer] config with recursive_deps = false; updates submodule commit hash; adds remappings for version-pinned dependency paths.
Source Code Import Updates
src/lib/LibDataContract.sol, test/lib/LibDataContract.t.sol
Changes imports from relative submodule paths (../../lib/rain.solmem/...) and unversioned libraries to version-pinned Soldeer paths (rain-solmem-0.1.3/src/lib/..., forge-std-1.16.1/src/Test.sol).
CI Workflow Refactoring
.github/workflows/*
Removes monolithic rainix.yaml matrix job; adds four new reusable workflow files (rainix-sol-test.yaml, rainix-sol-static.yaml, rainix-sol-legal.yaml, publish-soldeer.yaml) that delegate to upstream rainlanguage/rainix workflows and pass secrets.
Development Environment
flake.nix
Simplifies outputs function signature; replaces let ... in rec pattern with direct eachDefaultSystem; narrows devShells from full set to single default shell pointing to rainix.devShells.${system}.sol-shell.
Project Configuration
.gitignore, .soldeerignore, REUSE.toml
Adds .gitignore patterns for dependencies/ and .pre-commit-config.yaml; introduces .soldeerignore with exclusions for development and build artifacts; expands REUSE.toml annotations for new configuration files.
Documentation
README.md
Restructures from verbose prose to organized sections: "Install" (Soldeer via forge), "Develop" (nix tasks), "Tasks" (test/static/legal mappings), "Publish" (tag-based workflow), "License" (DecentraLicense 1.0 + REUSE 3.2), and "Contributions"; updates project description to emphasize sstore2 reimplementation with specific features.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 2026-05-09-soldeer

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 and usage tips.

@thedavidmeister thedavidmeister merged commit 2d3dfcf into main May 9, 2026
3 of 4 checks passed
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