Skip to content

CI: give the jobs the ndarray sibling that .cargo/config.toml demands - #48

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/ci-ndarray-sibling
Sep 5, 2026
Merged

AdaWorldAPI merged 1 commit into
mainfrom
claude/ci-ndarray-sibling

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Sep 5, 2026 •

Copy link
Copy Markdown
Owner

Both jobs added by the previous PR fail before compiling anything:

error: failed to load source for dependency `ndarray`
Caused by: unable to update /home/runner/work/a2ui-rs/ndarray
Caused by: No such file or directory (os error 2)

.cargo/config.toml carries

[patch."https://github.com/AdaWorldAPI/ndarray"]
ndarray = { path = "../ndarray" }

so every cargo invocation in this repository redirects the ndarray git coordinate to a sibling checkout — cargo fmt included, because it resolves the workspace through cargo 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/checkout cannot write outside $GITHUB_WORKSPACE, so this repository is checked out into a named subdirectory with ndarray beside it. That is the same shape AdaWorldAPI/lance-graph's own style.yml already uses for its siblings.

Each setup-rust-toolchain also gains rust-src-dir, which is not incidental. defaults.run.working-directory governs run: steps only, so without it the action reads no rust-toolchain.toml and installs stable instead of the pin — the identical trap this sweep hit in lance-graph-java, where a test caught it.

Verification

Run in the layout CI now reproduces: cargo metadata resolves, which is precisely 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, so those two jobs get their first real measurement here.


Generated by Claude Code

https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V

Summary by CodeRabbit

  • Chores
    • Updated the lint workflow to run formatting, Clippy checks, and tests from the designated project checkout.
    • Improved Rust toolchain setup and cache configuration for more reliable continuous integration checks.

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
@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: b90156f0-9443-4621-8901-9234da5aa9c5

📥 Commits

Reviewing files that changed from the base of the PR and between edf6174 and 6121450.

📒 Files selected for processing (1)
  • .github/workflows/lint.yml

📝 Walkthrough

Walkthrough

The lint workflow now runs format, Clippy, and test jobs from a nested a2ui-rs checkout. Each job also checks out the sibling ndarray repository and uses the nested workspace and Rust toolchain.

Changes

Lint workflow setup

Layer / File(s) Summary
Nested checkout validation jobs
.github/workflows/lint.yml
Format, Clippy, and test jobs use the nested a2ui-rs checkout, sibling ndarray checkout, nested Rust toolchain, and scoped workspace cache.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: claude

Poem

I hop through workflows, tidy and bright
Nested paths guide each check just right
Clippy and tests march in a row
With ndarray beside them, ready to go
Format leaves every line aglow


Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Sep 5, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review September 5, 2026 21:36
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@AdaWorldAPI
AdaWorldAPI merged commit 8b51487 into main Sep 5, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants