Skip to content

build(nix): stop shipping 727MB of rust-docs in every CI job's closure - #1747

Merged
daniel-noland merged 1 commit into
mainfrom
pr/daniel-noland/rust-docs-closure
Aug 26, 2026
Merged

build(nix): stop shipping 727MB of rust-docs in every CI job's closure#1747
daniel-noland merged 1 commit into
mainfrom
pr/daniel-noland/rust-docs-closure

Conversation

@daniel-noland

Copy link
Copy Markdown
Collaborator

Stacked on #1746 — review/merge that first.

fromRustupToolchain applies components as extensions on top of a profile,
and profile defaults to rustup's default, which already carries rust-docs.
So rust-docs was arriving twice, and deleting it from the component list alone
would have removed nothing.

Naming profile = "minimal" is what actually drops it. Verified by set-diffing
the joined component paths of the toolchain derivation across three variants:

variant rust-docs in the joined paths
today ("rust-docs" listed, no profile) yes, twice
component deleted, profile still unset yes, still there
this PR (deleted + profile = "minimal") no

A full diff of the deduplicated path sets between the last two shows exactly
one line: rust-docs. Nothing else about the toolchain moves.
passthru.availableComponents.rust-src — which default.nix uses in three
places — still resolves to the same store path.

Why bother

727MB of prebuilt HTML, in the closure of all 8 dev-shell jobs. The lab runners
are ephemeral (directory /nix does not exist; creating it every job), so it is
pulled over the network each time, not cached on disk. Measured against the
current dev shell: 5.96GB closure, 325 paths, ~22s to realize.

Nothing in the tree reads it — grep for rust-docs, share/doc/rust, and
rustup doc finds only this comment.

Cost

Every rust-built store path in the shell changes hash, so the first CI run after
this merges repopulates that half of Cachix.

🤖 Generated with Claude Code

@daniel-noland
daniel-noland requested a review from a team as a code owner August 23, 2026 23:56
@daniel-noland
daniel-noland requested review from sergeymatov and removed request for a team August 23, 2026 23:56
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c29b1cab-5089-49e0-a753-49cc40a14179

📥 Commits

Reviewing files that changed from the base of the PR and between 2a10caf and bfb86f8.

📒 Files selected for processing (1)
  • nix/overlays/llvm.nix

Included review availability: 4 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

Changes

Rust toolchain configuration

Layer / File(s) Summary
Configure the minimal Rust toolchain
nix/overlays/llvm.nix
The rustup toolchain now uses profile = "minimal" and no longer includes rust-docs. The channel and remaining components are unchanged.

Suggested reviewers: sergeymatov, fredi-raspall, mvachhar, qmonnet

Merge Risk: ⚪ Minimal · up to bfb86

The PR removes unused Rust documentation from CI toolchain closures, reducing download and storage cost without changing the remaining toolchain contents; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: removing the 727 MB rust-docs payload from CI job closures through the Nix Rust toolchain configuration.
Description check ✅ Passed The description directly explains the profile change, component removal, validation results, closure-size reduction, cache impact, and dependency on PR #1746.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)


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

@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/rust-docs-closure branch from 2873bf8 to 72c2398 Compare August 23, 2026 23:56
@codecov

codecov Bot commented Aug 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@daniel-noland daniel-noland added the ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status label Aug 24, 2026
@daniel-noland daniel-noland self-assigned this Aug 24, 2026
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/rust-docs-closure branch from 72c2398 to a9ffad3 Compare August 26, 2026 18:11
Base automatically changed from pr/daniel-noland/cargo-upgrade to main August 26, 2026 19:39
…ust-docs

Verified by set-diffing the joined component paths of the three variants: the
resulting toolchain differs from today's by rust-docs and nothing else.

Every rust-built store path in the dev shell changes hash, so the first CI run
after this repopulates that half of the cache.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Daniel Noland <daniel@githedgehog.com>
@daniel-noland
daniel-noland force-pushed the pr/daniel-noland/rust-docs-closure branch from a9ffad3 to bfb86f8 Compare August 26, 2026 19:39
@daniel-noland daniel-noland removed the ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status label Aug 26, 2026
@daniel-noland
daniel-noland added this pull request to the merge queue Aug 26, 2026
Merged via the queue into main with commit a2916ca Aug 26, 2026
31 of 45 checks passed
@daniel-noland
daniel-noland deleted the pr/daniel-noland/rust-docs-closure branch August 26, 2026 22:06
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