Repository navigation
Remove ALL git dependencies + submodule path-deps from raindex (zero exceptions) #2593
Description
Tracking issue: get raindex's Rust workspace off all git dependencies and submodule path-deps — no exceptions. End state: every dep resolves from crates.io (Solidity from soldeer), there are zero git = … entries, and the git submodules are deleted.
Direct git deps (root Cargo.toml)
| dep | current source | target | status |
|---|---|---|---|
alloy-ethers-typecast |
git rainlanguage/alloy-ethers-typecast | remove entirely (replaced by alloy Provider primitives) |
refactor done in working tree (soldeer branch); needs commit + lockfile regen |
rain-erc |
git rain.erc @rev | crates.io | ✅ rain-erc 0.1.1 published — swap ready |
rain-error-decoding |
git rain.error @rev | crates.io | ❌ not published — publish first |
wasm-bindgen-utils |
git rain.wasm @rev | crates.io | 0.0.12-alpha.20 on crates.io — needs a release / version alignment |
Submodule path-deps (lib/rain.interpreter/…)
| path-dep | crate | target | status |
|---|---|---|---|
rain-math-float |
rain-math-float | crates.io | ✅ 0.1.4 |
rain-metadata-bindings |
rain-metadata-bindings | crates.io | ✅ 0.1.1 |
rain-metaboard-subgraph |
rain-metaboard-subgraph | crates.io | 🔄 publishing (see rain.metadata#120 push-race) |
rain-metadata (cli) |
rain-metadata | crates.io | ❌ cli still has its own alloy-ethers-typecast git dep → remove it, then publish a clean 0.1.x |
rain_interpreter_bindings |
rainlang_bindings | crates.io | ❌ publish (rainlang autopublish) |
rain_interpreter_dispair |
rainlang_dispair | crates.io | ❌ publish |
rain_interpreter_parser |
rainlang_parser | crates.io | ❌ publish (needs bindings + dispair on crates.io first for version coord) |
rain-interpreter-eval |
rainlang-eval | crates.io | ❌ blocked by foundry-evm (git-only) — must be resolved, see below |
The foundry-evm blocker (must be resolved, NOT accepted)
rainlang-eval is a runtime dependency of raindex (crates/common fuzz/replays/add_order, crates/quote quote_debug) and currently depends on foundry-evm, which is git-only and cannot be published to crates.io. This is the hardest blocker, but it is not an accepted exception — to reach zero git deps it must be resolved, e.g.:
- migrate
rainlang-evalto a crates.io-published EVM (e.g.revmdirectly) instead offoundry-evm, or - vendor / replace the
foundry-evmusage with registry-published equivalents.
Interim milestone (optional, to delete the submodule sooner): raindex may temporarily consume rainlang-eval as a rev-pinned git dep pointing at github.com/rainlanguage/rain.interpreter so the submodule can be dropped ahead of the foundry-evm work. This is a stepping stone only — the final state still requires rainlang-eval (and therefore foundry-evm) on crates.io with no git deps remaining.
Solidity submodules → soldeer (raindex#2586)
sushixswap-v2, rain.deploy, rain.raindex.interface, rain.interpreter (contracts) factor out via the soldeer migration, not crates.io.
Sequenced plan
- Publish
rain-error-decoding; release/alignwasm-bindgen-utils. - Remove
alloy-ethers-typecastfrom therain-metadatacli, publishrain-metadata0.1.x. - Publish
rainlang_bindings,rainlang_dispair, thenrainlang_parser. - Resolve
foundry-evmforrainlang-evaland publish it to crates.io (hardest item — track as needed). - Land the typecast removal (already drafted) + Cargo.lock regen.
- Swap raindex root
Cargo.toml: every dep → crates.io versions (Solidity → soldeer). - Delete the now-unused submodules.
Done when
- raindex root
Cargo.tomlhas zerogit = …deps (includingrainlang-eval), no submodule path-deps, and the git submodules are removed.
Activity
linear commentedon May 26, 2026
RAI-680
[-]Remove all git dependencies + submodule path-deps from raindex (consume crates.io / soldeer)[/-][+]Remove ALL git dependencies + submodule path-deps from raindex (zero exceptions)[/+]