Skip to content

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

Open
daniel-noland wants to merge 1 commit into
pr/daniel-noland/cargo-upgradefrom
pr/daniel-noland/rust-docs-closure
Open

build(nix): stop shipping 727MB of rust-docs in every CI job's closure#1747
daniel-noland wants to merge 1 commit into
pr/daniel-noland/cargo-upgradefrom
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

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 36a47675-90f6-4462-b37b-57fe83667ed7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

…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 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:+merge-ready Run all checks which will be run in the merge queue regardless of label status

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants