Skip to content

Commit 4fc4c39

Browse files
committed
Point setup-rust-toolchain at the crate, and record the corrections
A review finding on this PR, verified against the action's own documentation: `defaults.run.working-directory` governs `run:` steps only. Each `actions-rust-lang/setup-rust-toolchain` step executes from GITHUB_WORKSPACE, where this repository is a subdirectory and no toolchain file is visible, so it would silently install `stable` instead of the pin. `rust-src-dir` is the input that points it at the crate — the same directory that now holds the single `rust-toolchain.toml`, beside `.cargo/config.toml`. The reviewer's suggested value was the repository root, which was correct against the commit it read. It is the crate directory here, because the root toolchain file was removed in the previous commit rather than kept in sync. The board's PR entry gains an appended correction rather than an edit, per its own append-only rule, covering the four claims that first entry got wrong: the repo did have a toolchain pin, the push trigger is limited to `main`, `--manifest-path` is not equivalent to running in the crate directory, and `-D warnings` is no longer unmeasured. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
1 parent 1ea5c85 commit 4fc4c39

2 files changed

Lines changed: 47 additions & 0 deletions

File tree

.claude/board/PR_ARC_INVENTORY.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,32 @@ first real measurement, with the tiered `continue-on-error` +
3434
`TECH_DEBT.md` fallback named in the PR body if it comes back red on
3535
pre-existing debt.
3636

37+
**Correction (2026-09-05, head `1ea5c85`).** Appended per the append-only
38+
rule rather than edited above; the original lines stay as written.
39+
40+
- *"this repo had neither a workflow directory nor a toolchain pin before
41+
this PR"* — the workflow half is right, the toolchain half is not.
42+
`native/lgj-abi/rust-toolchain.toml` already pinned `1.97.1`. Adding a
43+
second file at the repository root made two pins for one toolchain, and
44+
cargo reads whichever is nearest the working directory. The root file is
45+
removed; the crate-level file is the authority, now `1.98.1` — forced,
46+
since `ndarray` 0.17.2 declares `rust-version = "1.98"`.
47+
- *"runs on every push/PR"* — the `push` trigger is limited to `main`, so
48+
the accurate statement is every pull request and every push to `main`.
49+
- *"all scoped to `native/lgj-abi` via `--manifest-path`"* — that scoping
50+
is what broke the first run. Cargo reads `.cargo/config.toml` from the
51+
working directory's ancestry, never from the manifest's directory, so
52+
the crate's `-Ctarget-cpu` baseline was dropped and
53+
`the_x86_64_build_has_a_vector_baseline` failed exactly as designed. The
54+
jobs now set `working-directory` to the crate, and CI exports the v3
55+
baseline explicitly because GitHub-hosted runners do not guarantee
56+
AVX-512. Each `setup-rust-toolchain` step also gained `rust-src-dir`:
57+
`defaults.run.working-directory` governs `run:` steps only, so without it
58+
the action reads no toolchain file and falls back to `stable`.
59+
- *"whether `-D warnings` is clean on `lgj-abi` today is unmeasured"* — now
60+
measured locally: clippy and fmt clean, 138 unit tests plus the G11 fence
61+
passing, under the same commands CI runs.
62+
3763
**Docs.** `LATEST_STATE.md` entry; this entry.
3864

3965
**Confidence.** High that the workflow shape is correct (it is a direct

.github/workflows/lint.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ jobs:
4747
path: lance-graph-java
4848
- uses: actions-rust-lang/setup-rust-toolchain@v1
4949
with:
50+
# `defaults.run.working-directory` applies to `run:` steps only, NOT
51+
# to action steps: this action executes from GITHUB_WORKSPACE, where
52+
# the checkout is a subdirectory and no toolchain file is visible. It
53+
# would silently fall back to `stable` instead of the pin. `rust-src-dir`
54+
# is the input that points it at the crate — which is also where
55+
# `rust-toolchain.toml` lives, beside `.cargo/config.toml`.
56+
rust-src-dir: lance-graph-java/native/lgj-abi
5057
# No `toolchain:` input — the action reads `rust-toolchain.toml`, so the
5158
# pinned version lives in exactly ONE place.
5259
components: rustfmt, clippy
@@ -80,6 +87,13 @@ jobs:
8087
path: OGAR
8188
- uses: actions-rust-lang/setup-rust-toolchain@v1
8289
with:
90+
# `defaults.run.working-directory` applies to `run:` steps only, NOT
91+
# to action steps: this action executes from GITHUB_WORKSPACE, where
92+
# the checkout is a subdirectory and no toolchain file is visible. It
93+
# would silently fall back to `stable` instead of the pin. `rust-src-dir`
94+
# is the input that points it at the crate — which is also where
95+
# `rust-toolchain.toml` lives, beside `.cargo/config.toml`.
96+
rust-src-dir: lance-graph-java/native/lgj-abi
8397
components: rustfmt, clippy
8498
- uses: Swatinem/rust-cache@v2
8599
with:
@@ -114,6 +128,13 @@ jobs:
114128
path: OGAR
115129
- uses: actions-rust-lang/setup-rust-toolchain@v1
116130
with:
131+
# `defaults.run.working-directory` applies to `run:` steps only, NOT
132+
# to action steps: this action executes from GITHUB_WORKSPACE, where
133+
# the checkout is a subdirectory and no toolchain file is visible. It
134+
# would silently fall back to `stable` instead of the pin. `rust-src-dir`
135+
# is the input that points it at the crate — which is also where
136+
# `rust-toolchain.toml` lives, beside `.cargo/config.toml`.
137+
rust-src-dir: lance-graph-java/native/lgj-abi
117138
components: rustfmt, clippy
118139
- uses: Swatinem/rust-cache@v2
119140
with:

0 commit comments

Comments
 (0)