Repository navigation
Bump Rust toolchain 1.97.1 -> 1.98.1 - #111
Conversation
No other genuine version pin exists in this repo: every "Install Rust toolchain" CI step reads rust-toolchain.toml (`rustup show`), the MSRV job derives its version from Cargo.toml's workspace.package.rust-version at runtime, and the Dockerfile installs from the copied rust-toolchain.toml. Only a prose comment in ruff_r2il/Cargo.toml duplicated the old toolchain number; reworded it to point at rust-toolchain.toml instead of restating the version. Also drops `from_iter_instead_of_collect = "warn"` from ruff_annotate_snippets's [lints.clippy] table: the lint was removed in 1.98 and the stale entry now fires `renamed_and_removed_lints` (a warning that explicitly ignores -D warnings, so it wasn't failing CI, just stale). The only other 1.98 clippy delta, `chunks_exact_to_as_chunks`, cannot fire anywhere in this repo: no source file calls `.chunks_exact(`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
|
Warning Review limit reachedNext included review available in 32 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 71 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (3)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (3)
💤 Files with no reviewable changes (1)
Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour. 📝 WalkthroughWalkthroughThe pull request updates the Rust toolchain from 1.97.1 to 1.98.1, aligns a pinning comment with workspace configuration, and removes one Clippy lint setting. ChangesRust configuration maintenance
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This updates the pinned Rust toolchain and related configuration cleanup; no current merge-readiness risk is identified. Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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_f86f7eb5-5ec7-40e0-abad-754a1ce0bf11) |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
The toolchain bump turns `-D warnings` red on four pre-existing sites.
None of the four lints is new in 1.98; they were simply never enforced
against this code before the pin moved.
`format_push_string` (ty_python_semantic tests, two sites): the
`push_str(&format!(..))` pairs allocate an intermediate `String` per
loop iteration. Rewritten as `let _ = write!(..)`, the idiom this repo
already uses at 105 call sites, with `use std::fmt::Write as _` at the
top of the file per the imports-at-the-top rule. The anonymous import
form avoids colliding with the file's `use super::*`.
`useless_format` (ruff_linter, two sites): `format!("{x}")` on a value
that already renders to the same string, replaced with `to_string()`.
Output is unchanged in all four cases. The `write!` rewrite was checked
against a standalone reproduction of the loop rather than a full
workspace build, which will not fit in the available disk here; CI runs
the real gate.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
The previous commit replaced `format!("{snapshot}")` with
`snapshot.to_string()`, which silenced `useless_format` and immediately
tripped `implicitly_cloning_a_string`: `snapshot` is already a `String`,
so `to_string` goes through `Deref<Target = str>` and allocates a second
copy of the same bytes.
It is the last use of the binding in that function and the macro takes
it by value, so passing it directly is both what the code means and
what the lints want. The argument's type is unchanged — `format!` also
produced a `String`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
|
The job is killed by its own This is not new and not related to the four clippy fixes here. The last ten runs of that workflow in this repository are cancelled, every one, across two unrelated branches months apart. Its sibling Re-running it would hit the same deterministic timeout, so the one permitted re-run is left unspent. Raising the budget would fix it, but that is a change to an unrelated workflow and I cannot verify a build that takes longer than the limit from here, so I have not widened this PR with it. Generated by Claude Code |
|
Three more checks have since gone red — All three are The base-branch test settles it: every run of What matters for this PR did pass: Raising the budgets would be a change to unrelated CI affecting every job in the repository, and I cannot verify a suite that exceeds the limit from here, so I have not widened this PR with it. Re-running would hit the same deterministic timeouts. Generated by Claude Code |
|
Correcting my previous comment, and narrowing it: the rollup's own log shows nine of the ten required jobs passed and exactly one gates this PR. So And the cause is sharper than "fork runners are slow." Line 347 reads: runs-on: ${{ github.repository == 'astral-sh/ruff' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
timeout-minutes: 20Upstream runs this job on a sixteen-core Depot runner. A fork falls back to The minimal fix is that same pattern, one line: timeout-minutes: ${{ github.repository == 'astral-sh/ruff' && 20 || 45 }}It changes nothing upstream and only relaxes the budget where the runner is smaller. I am proposing rather than pushing it, since it is unrelated CI and I cannot verify a suite that exceeds the current limit from here — but it is a one-line change to the single job blocking this PR, not the sweeping CI edit I described earlier. Generated by Claude Code |
Summary
rust-toolchain.tomlchannel from1.97.1to1.98.1.from_iter_instead_of_collect = "warn"fromruff_annotate_snippets's[lints.clippy]table — the lint was removed in 1.98 and the stale entry now emitsrenamed_and_removed_lints(a warning that explicitly ignores-D warnings, so it was stale rather than CI-breaking).ruff_r2il/Cargo.tomlthat duplicated the old toolchain number, so it points atrust-toolchain.tomlinstead of restating a version that will drift again.Pin audit
Grepped for every other place a toolchain version could be pinned; none needed a change:
.github/workflows/*.{yaml,yml}"Install Rust toolchain" step readsrust-toolchain.tomlimplicitly (rustup show/dtolnay/rust-toolchain@stable) — no explicit1.97string anywhere.cargo-build-msrvCI job derives its version fromworkspace.package.rust-versioninCargo.tomlat runtime (SebRollen/toml-action+rustup default "${MSRV}"), independent of the toolchain channel — left untouched (still1.95).Dockerfileinstalls from the copiedrust-toolchain.toml, no separate version string.ruff_r2il/Cargo.toml(fixed above).1.98 clippy delta
Only two new-in-1.98 items apply here:
clippy::from_iter_instead_of_collect(removed) — found and removed, see above.clippy::chunks_exact_to_as_chunks(new, style, default-on) — cannot fire anywhere in this repo;grep -rn '\.chunks_exact('acrosscrates/returns zero hits.Test Plan
Disk-constrained environment (~7 GB free on a shared quota); verified a scoped subset rather than the full CI command, with
CARGO_PROFILE_DEV_DEBUG=0 CARGO_INCREMENTAL=0on every invocation:cargo fmt --all --check— clean, exit 0.cargo clippy -p ruff_cpp_spo -p ruff_csharp_spo -p ruff_python_spo -p ruff_ruby_spo -p ruff_sqlalchemy_spo --all-targets -- -D warnings— clean, exit 0, no warnings.cargo clippy -p ruff_annotate_snippets --all-targets -- -D warnings— clean, exit 0, before-and-after thefrom_iter_instead_of_collectremoval (confirmed the stale-lint warning present before, gone after).crates/ruff_r2il(workspace-excluded) does not compile onmaintoday —E0063/E0004against its siblingr2sleighcheckout's currentr2il/r2ssaAPI (missingAddressSpace::aliasesfield, unhandledSpaceId::Unresolvedvariant). This is a pre-existing cross-repo drift issue, unrelated to the toolchain bump (verified the failure is a type-level API mismatch, not a compiler regression) — left unfixed as out of scope for this PR.Not run, explicitly: the full
cargo clippy --workspace --all-targets --all-features --locked -- -D warningsCI command, andcargo test/cargo nextest runacross the workspace — both would not fit the available disk budget in this environment. CI will run the full command on this PR.🤖 Generated with Claude Code
https://claude.ai/code/session_01AGVLyRZNEKKBSfBDJfbY3V
Generated by Claude Code
Summary by CodeRabbit