Remove the submodule-era residue — dead foundry.lock, .gitmodules and lib/ references - #34
Conversation
This repo migrated from git submodules to soldeer and the migration was never finished. There is no .gitmodules, no lib/ and no gitlinks on main; dependencies resolve under dependencies/ per foundry.toml's libs = ['dependencies'], with soldeer.lock as the live lockfile. foundry.lock is Foundry's submodule lockfile. It still pinned lib/forge-std at 1801b0541f4fda118a10798fd3486bb7051c5dd6 (forge-std v1.14.0) while the build uses forge-std 1.16.1, and forge build emitted "Warning: Dependency 'lib/forge-std' not found at expected path" on every run. Nothing read the foundry.lock side, so nothing reconciled them. Deleted: - foundry.lock - REUSE.toml annotation entries ".gitmodules" and "foundry.lock" - .soldeerignore entries .gitmodules, /foundry.lock, /lib and /target (/target: this repo has no Rust — no Cargo.toml, no crates/, and target is not in .gitignore, so nothing produces one) Left in place deliberately: .soldeerignore's .DS_Store, .vscode, .pre-commit-config.yaml, /out, /cache, /dependencies and /docs are absent from a clean checkout by design but present when soldeer push runs, so they are correct ignores; REUSE.toml's ".audit/**" is live, .audit/scope.json is tracked. Configuration only. No Solidity source, no deployed bytecode, no audited artifact changes. forge test is 8 passed before and after. 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 (2)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. WalkthroughRepository metadata removes obsolete submodule-era paths from ChangesDependency Reference Cleanup
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This configuration-only cleanup removes obsolete submodule-era references without changing executable behavior; no actionable merge-blocking risk remains after normal checks and review. Possibly related issues
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 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 |
Closes #33
What this removes
This repo migrated from git submodules to soldeer and the migration was never finished. Verified on a fresh clone of
main(3e218a3):git ls-files --stage | awk '$1 == "160000"'— empty, no gitlinks.gitmodules, nolib/in the treefoundry.tomlsetslibs = ['dependencies'];soldeer.lockpinsforge-std1.16.1foundry.lockis Foundry's submodule lockfile and still carried a pin for a path that does not exist:{ "lib/forge-std": { "rev": "1801b0541f4fda118a10798fd3486bb7051c5dd6" } }1801b054is forge-stdv1.14.0. The build uses 1.16.1. Nothing reconciled the two, because nothing reads thefoundry.lockside.Removed
foundry.lockREUSE.toml".gitmodules",(line 9),"foundry.lock",(line 19).soldeerignore.gitmodules(6),/foundry.lock(16),/lib(18),/target(23)/target: this repo has no Rust — noCargo.toml, nocrates/, andtargetis not in.gitignore. Nothing produces one.Deliberately left alone
.soldeerignore's.DS_Store,.vscode,.pre-commit-config.yaml,/out,/cache,/dependencies,/docsare absent from a clean checkout by design — OS junk, local dev files, or artifacts generated atforge soldeer install/forge build/ devShell entry, and therefore present whensoldeer pushruns. Correct ignores, kept.REUSE.toml's".audit/**"is live:.audit/scope.jsonis tracked.The warning is gone
nix develop -c forge build --force, same tree, before and after.Before:
After:
The two surviving warnings are pre-existing and unrelated (nightly-build notice,
[package]section deprecation).Nothing dangling remains
grep -rn "lib" --exclude-dir=dependencies --exclude-dir=out --exclude-dir=cache --exclude-dir=.git --exclude="*.pdf" .on the branch:Every hit read individually: a Nix attribute, three references to the real
src/lib/source tree (both files exist), thelibssetting that points forge atdependencies/, and a Soliditylibrarykeyword. None is submodule residue. Zero hits forfoundry.lock,gitmodulesortarget.Local verification
All via
nix develop -c:forge testforge fmt --checkreuse lintslither .Configuration only. No Solidity source, no deployed bytecode, no audited artifact changes.
QA
forge buildemitsWarning: Dependency 'lib/forge-std' not found at expected pathon base (3e218a3, transcribed above) and does not emit it on this head. Verified by running the samenix develop -c forge build --forceon both, in the same working tree..soldeerignore's/out,/cache,/dependenciesor/docswould be wrong because those are produced locally (dependencies/forge-std-1.16.1/exists afterforge soldeer install,out/afterforge build), which is why they are kept; removingREUSE.toml's".audit/**"would be wrong because.audit/scope.jsonis tracked (git ls-filesconfirms) andreuse lintreports 18/18 files covered on this head.git ls-files --stage | awk '$1 == "160000"'returns empty (no gitlinks);.gitmodulesandlib/do not exist;foundry.tomlsetslibs = ['dependencies']andsoldeer.lockpins forge-std 1.16.1 while the deletedfoundry.lockpinned1801b054= forge-std v1.14.0. Independent confirmation the pin can never become live: rainix CI'sno-submodulescheck fails on a root.gitmodulesor any committed gitlink.foundry.lock,.gitmodulesandlib/references in a repo with no submodules #33 asks for (a)foundry.lockdeleted, (b)REUSE.tomllines 9 and 19 removed, (c).soldeerignorelines 6, 16, 18, 23 removed, (d) the build warning gone, (e) no reference to.gitmodules,lib/orfoundry.lockanywhere outsidedependencies/, (f) CI green. Covered a, b, c, d, e — each with output transcribed above; line numbers were re-checked against the live files and all four matched the issue. (f) is CI's to report on this head. The issue's list is treated as the category, not an example set: the whole tree was swept for the residue shape, and the only hits outsidedependencies/are the six legitimatelibuses enumerated above, each read individually rather than pattern-matched.🤖 Generated with Claude Code
Summary by CodeRabbit