Conversation
`cargoLock.lockFile` routes through nixpkgs `importCargoLock`, which on rainix's pinned nixpkgs (4ba039de, 2026-05-13) downloads each crate from `https://crates.io/api/v1/crates/<name>/<ver>/download`. crates.io now answers 403 to the User-Agent nix's fetcher sends, so every consumer that misses the Cachix cache fails at fetch time rather than at build time - e.g. rainlanguage/raindex `git-clean / copy-artifacts`, which died on `crate-alloy-1.8.3.tar.gz.drv ... curl: (22) ... error: 403`. nixpkgs fixed `importCargoLock` to use static.crates.io in f830e611 (2026-05-27), which is after rainix's pin, so we cannot wait for it. `pkgs.rustPlatform.fetchCargoVendor` already exists in the pinned nixpkgs and pulls from the static.crates.io CDN, which serves nix fine. rainix itself vendors its own `rainix-static` package this way for exactly this reason. Cargo.lock has no git dependencies, so dropping `allowBuiltinFetchGit` costs nothing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe Rain package build replaces ChangesCargo dependency vendoring
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The change uses fixed-hash Cargo vendoring without identified build or dependency-integrity risks and is ready to merge. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
|
Closing per Josh: tracking as an issue rather than a fix PR for now. |
What
Replaces
cargoLock.lockFile/cargoLock.allowBuiltinFetchGiton therainpackage withpkgs.rustPlatform.fetchCargoVendor.Why
cargoLock.*routes through nixpkgsimportCargoLock, which on rainix's pinned nixpkgs (4ba039de, 2026-05-13) downloads every crate fromhttps://crates.io/api/v1/crates/<name>/<ver>/download. crates.io now answers HTTP 403 to the User-Agent nix's fetcher sends, so the build fails at fetch time for anyone who misses the Cachix cache.That is the failure in rainlanguage/raindex
git-clean / copy-artifacts:https://github.com/rainlanguage/raindex/actions/runs/34754720078
nixpkgs fixed
importCargoLockto usestatic.crates.ioinf830e611(2026-05-27) — after rainix's pin, so we can't just wait for it.fetchCargoVendoralready exists in the pinned nixpkgs and pulls from the static.crates.io CDN, which serves nix fine. rainix itself vendors its ownrainix-staticpackage this way for exactly this reason.Cargo.lockhas zero git dependencies, so droppingallowBuiltinFetchGitcosts nothing. No flake.lock / rainix input changes.Verification (local)
nix build .#rain -L— succeeds end to end; vendor hashsha256-TrZzMmDnC07lhfjKdKfwNtrzbeRcxKewqTqmiZD2fic=./result/bin/rain --help— runspre-commit run --all-files(rainix rust-shell) — all hooks passrainix-rs-static— passcargo test— passreuse lint— compliantConsumers
Downstream repos that take
rain.clias a flake input (e.g. raindex'sraininput) need anix flake update rainafter this merges to pick the fix up.🤖 Generated with Claude Code
https://claude.ai/code/session_01HiqQdxokJ4edjAFyAkN9G3
Summary by CodeRabbit