Repository navigation
CI: give the jobs the ndarray sibling that .cargo/config.toml demands - #48
Conversation
Both new jobs fail before compiling anything:
error: failed to load source for dependency `ndarray`
Caused by: unable to update /home/runner/work/a2ui-rs/ndarray
`.cargo/config.toml` patches the `AdaWorldAPI/ndarray` git coordinate
to `path = "../ndarray"`, so every cargo invocation in this repository
— `cargo fmt` included, since it resolves the workspace through
`cargo metadata` — looks for a sibling checkout.
That file calls itself a local development override the shipped build
never sees, and it is right about the Railway image, whose Dockerfile
copies only the manifests and `crates/`. It is wrong about CI. The file
is committed, so a runner checks it out and cargo honours it. Nothing
had ever run cargo here before this week, which is why the assumption
held until the gate arrived to test it.
Deleting the override to suit CI would discard a deliberate operator
ruling — prefer the local fork source over a fetch — so the jobs give
CI the sibling instead. `actions/checkout` cannot write outside
$GITHUB_WORKSPACE, so this repository goes into a named subdirectory
with `ndarray` beside it, the shape lance-graph's own `style.yml`
already uses.
Each `setup-rust-toolchain` gains `rust-src-dir`. That is not
incidental: `defaults.run.working-directory` governs `run:` steps only,
so without it the action reads no `rust-toolchain.toml` and installs
`stable` rather than the pin — the same trap this sweep hit in
lance-graph-java, caught there by a test.
Verified in the layout CI now reproduces: `cargo metadata` resolves,
which is the step that was failing, and `cargo fmt --all --check` is
clean. Clippy and the test suite are CI's to measure — the workspace
pulls a wgpu fork and is larger than this machine can build.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe lint workflow now runs format, Clippy, and test jobs from a nested ChangesLint workflow setup
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Poem
Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_66931193-08f9-4efa-b59d-eedcff05957d) |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Both jobs added by the previous PR fail before compiling anything:
.cargo/config.tomlcarriesso every cargo invocation in this repository redirects the
ndarraygit coordinate to a sibling checkout —cargo fmtincluded, because it resolves the workspace throughcargo metadata.That file describes itself as a local development override the shipped build never sees, and it is right about the Railway image, whose Dockerfile copies only the manifests and
crates/. It is wrong about CI: the file is committed, so a runner checks it out and cargo honours it. Nothing had ever run cargo in this repository before this week, so the assumption went untested until a gate arrived to test it.The fix
Deleting the override to suit CI would discard a deliberate operator ruling — prefer the local fork source over a fetch — so the jobs give CI the sibling instead.
actions/checkoutcannot write outside$GITHUB_WORKSPACE, so this repository is checked out into a named subdirectory withndarraybeside it. That is the same shapeAdaWorldAPI/lance-graph's ownstyle.ymlalready uses for its siblings.Each
setup-rust-toolchainalso gainsrust-src-dir, which is not incidental.defaults.run.working-directorygovernsrun:steps only, so without it the action reads norust-toolchain.tomland installsstableinstead of the pin — the identical trap this sweep hit inlance-graph-java, where a test caught it.Verification
Run in the layout CI now reproduces:
cargo metadataresolves, which is precisely the step that was failing, andcargo fmt --all --checkis clean. Clippy and the test suite are CI's to measure — the workspace pulls a wgpu fork and is larger than this machine can build, so those two jobs get their first real measurement here.Generated by Claude Code
https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
Summary by CodeRabbit