chore: remove submodule-era residue (dead foundry.lock, .gitmodules and root lib/ references) - #259
chore: remove submodule-era residue (dead foundry.lock, .gitmodules and root lib/ references)#259thedavidmeister wants to merge 1 commit into
Conversation
This repo has no submodules: no `.gitmodules`, no root `lib/`, and `git ls-files --stage` reports zero gitlinks. `foundry.toml` sets `libs = ['dependencies']` and `soldeer.lock` is the live lockfile. - delete `foundry.lock`, the git-submodule lockfile, whose 6 pins all name `lib/` paths that do not exist and contradict `soldeer.lock` (forge-std 1801b054 = v1.14.0 vs soldeer 1.16.1, plus a `lib/rain.math.fixedpoint` pin with no soldeer counterpart). It made `forge build` emit 6 `Dependency '...' not found at expected path` warnings on every build. - drop the `foundry.lock` and `.gitmodules` annotation paths from `REUSE.toml`. - drop `.gitmodules`, `/foundry.lock` and `/lib` from `.soldeerignore`. - fix `.coderabbitai.yaml` -> `.coderabbit.yaml` in `.soldeerignore`; the misspelling meant a real CodeRabbit config would be published to soldeer rather than ignored. Matches rainlang.interface and rain.tofu.erc20-decimals. Closes #258 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: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
💤 Files with no reviewable changes (1)
WalkthroughThe change updates ChangesRepository metadata cleanup
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This change removes obsolete submodule-era metadata and corrects an ignore rule without changing application behavior; no actionable merge-blocking risk remains after normal checks and review. Possibly related issues
🚥 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 |
Closes #258
Why
This repo has no git submodules. There is no
.gitmodules, no rootlib/, andgit ls-files --stage | grep ^160000is empty. Dependencies come from soldeer —foundry.tomlsetslibs = ['dependencies']andsoldeer.lockis the live lockfile for the 7 packages underdependencies/.foundry.lockis Foundry's git submodule lockfile. Every one of its 6 pins names alib/path that does not exist, and the set contradicts the live one: it pinned forge-std at1801b054(v1.14.0) while soldeer resolves 1.16.1, it pinnedlib/rain.math.fixedpointwhich has no soldeer counterpart at all, and it had no entry for@openzeppelin-contractsorrain-solmem, which are live. Nothing read it, so nothing reconciled it — but it was not silent:forge buildemitted oneDependency '...' not found at expected pathwarning per entry, 6 on every build.Submodules cannot come back either — rainix CI runs a
no-submodulescheck that fails on a root.gitmodulesor any committed gitlink.What changed
foundry.lock.REUSE.toml— dropped the"foundry.lock"and".gitmodules"annotation paths. Both named files absent from the tree..soldeerignore— dropped.gitmodules,/foundry.lockand/lib. These three go not because the paths are absent today but because they are submodule-era:.gitmodulesand rootlib/are the submodule layout itself, and/foundry.lockis the file this PR deletes. rainix CI'sno-submodulescheck fails the build on a root.gitmodulesor any gitlink, so no future commit can reintroduce anything these three would filter.src/lib/is unrelated and unaffected: the pattern was/lib, anchored to the repo root..soldeerignore— corrected.coderabbitai.yamlto.coderabbit.yaml. The CodeRabbit config filename has noaiin it, so the misspelled line would have let a real config get published to soldeer instead of ignored. This matches the line-2 entry inrainlang.interfaceandrain.tofu.erc20-decimals, both of which carry a real.coderabbit.yaml.Left alone deliberately
CLAUDE.md. Itslib/...bullets sit under the### Solidity Layer (src/)heading and describesrc/lib/; line 132 already says dependencies are soldeer-managed, "not git submodules". Not stale, so not touched.Every other
.soldeerignoreentry, whether or not the path exists today..soldeerignoreis a publish filter, not an inventory of the tree: an entry naming a currently-absent file is a forward-looking rule that keeps that file out of the soldeer package if it is ever added. Deleting such a line silently removes that protection. So.DS_Store,.pre-commit-config.yaml,CLAUDE.md,/out,/cache,/dependencies,/target,/node_modules,/dist,/docsand the rest all stay — several of them are build outputs that only exist atforge soldeer install/forge build/cargo build/forge doctime and are therefore present exactly whensoldeer pushruns. That same reasoning is why.coderabbitai.yamlwas corrected in place rather than deleted: dropping a misspelled ignore removes protection instead of restoring it.REUSE.tomlis the opposite case, which is why its two dead paths do go: its annotations describe files that actually exist and assign them licensing, so a path with no file behind it is residue rather than a rule.QA
nix develop github:rainlanguage/rainix/53e96a7d0a97d7c7c75c3b2412521324776fdac6#sol-shell:git ls-files --stage | grep ^160000-> no output, exit 1. Zero gitlinks, so deleting the.gitmodulesreferences removes nothing live. This is the precondition for the whole change and it was checked before any deletion.forge build-> exit 0,grep -c "not found at expected path"= 0. Onmainthe same command emits 6. That count going 6 -> 0 is the discriminating observation for thefoundry.lockdeletion.reuse lint(thelegaljob's exact command) -> exit 0, "Files with copyright information: 154 / 154", "Files with license information: 154 / 154", 0 missing licenses. Removing two annotationpathentries left every file still covered — the reverse result (a file dropping out of coverage) is what would have failed here.forge soldeer install-> exit 0,dependencies/resolves all 7 packages fromsoldeer.lockwith nofoundry.lockpresent, confirming nothing read it.grep -rnover the whole tree forgitmodules,foundry\.lockandcoderabbit: the only hits were the 4 lines this PR removes plus the 1 it corrects. Post-change the tree has zero references to any of them outsidedependencies/.Done whenlist, plus the live dependency set insoldeer.lockand the on-disk tree — both independent offoundry.lock, which is precisely the point: the deleted file disagreed with both and nothing noticed.foundry.lockdeleted, (b) bothREUSE.tomlentries removed, (c) all four.soldeerignorelines removed or corrected, (d) noDependency '...' not found at expected pathwarnings, (e) no reference to.gitmodules, rootlib/orfoundry.lockanywhere outsidedependencies/, (f) CI green. Covered a, b, c, d, e. See the CI note below for f.CI
legalis green, which is the job this diff could plausibly have broken.Three failures on this branch are pre-existing on
mainand untouched by this diff.mainlast ran on 2026-07-15, so its status badge predates two of them.rainix-sol / staticandrainix-rs-static, stepno-ignored-tests:./test/src/lib/deploy/LibDecimalFloatDeployTaggedConstants.t.sol:24: vm.skip(true);.main's last run (29418592792) fails on the same step, naming that same file, line and expression.rainix-sol / test, stepforge test: 6 failures, and the set is byte-identical tomain's last run (29418592976) —testAllPublishedSoldeerTagsHaveAFullConstantSuite(missing*_0_1_7deploy constants, see Migrate deploy constants to the per-version snapshot canon (src/generated/<tag>/), retiring the flat *_0_1_1 model + its FFI/registry test #252) plustestProdDeployment{Arbitrum,Base,BaseSepolia,Flare,Polygon}("DecimalFloat not deployed").copy-artifacts, stepRegenerate generated sources:src/generated/ is committed but script/Build.sol was not found. This repo's codegen script isscript/BuildPointers.sol. The requirement landed in rainix98071056at 2026-07-15T13:46:33Z — 29 minutes aftermain's lastcopy-artifactsrun started, somainis green on this job only because it has not run since.None of the three involve
foundry.lock,REUSE.toml,.soldeerignore, submodules or licensing. Fixing them is separate work.🤖 Generated with Claude Code