Skip to content

Simplify doc meta mode - #159473

Open
notriddle wants to merge 15 commits into
rust-lang:mainfrom
notriddle:rename-parts-to-dep-meta
Open

Simplify doc meta mode#159473
notriddle wants to merge 15 commits into
rust-lang:mainfrom
notriddle:rename-parts-to-dep-meta

Conversation

@notriddle

@notriddle notriddle commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

View all comments

Follow up #159415 (comment)

Get rid of the mode where you can finalize the CCI and generate more docs at the same time. It isn't used in Cargo, and probably won't be used elsewhere?

@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Jul 17, 2026
@rustbot

rustbot commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

r? @folkertdev

rustbot has assigned @folkertdev.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 74 candidates
  • Random selection from 17 candidates

@notriddle

Copy link
Copy Markdown
Contributor Author

r? @camelid

@rustbot rustbot assigned camelid and unassigned folkertdev Jul 17, 2026
@rustbot

rustbot commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

camelid is currently at their maximum review capacity.
They may take a while to respond.

Comment thread src/librustdoc/html/render/write_shared.rs
Comment thread tests/run-make/rustdoc-merge-cross-crate-info-kitchen-sink-separate-dirs/rmake.rs Outdated
Comment thread src/librustdoc/lib.rs
Comment thread src/doc/rustdoc/src/unstable-features.md Outdated
Comment thread src/doc/rustdoc/src/unstable-features.md Outdated
@camelid camelid added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 23, 2026
notriddle and others added 9 commits July 25, 2026 19:06
Since we're getting rid of the ability to do finalize and document at
the same time, we can't actually do this in the rustdoc-html test build
system and need to do it this way instead.
Co-authored-by: Noah Lev <37223377+camelid@users.noreply.github.com>
Co-authored-by: Noah Lev <37223377+camelid@users.noreply.github.com>
@notriddle
notriddle force-pushed the rename-parts-to-dep-meta branch from 9e2125b to d0fec14 Compare July 26, 2026 02:19
@rustbot

rustbot commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@camelid camelid added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 27, 2026

@camelid camelid left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, but I'd like to avoid the dummy crate and TyCtxt, and some of the tests seem to be translated wrong from the original files.

View changes since this review

Comment thread src/librustdoc/lib.rs Outdated
Comment thread src/librustdoc/lib.rs
Comment on lines +861 to +872
let config = core::create_config(
Input::Str {
name: rustc_span::FileName::Custom(String::new()),
input: String::new(),
},
options,
&render_options,
);
return wrap_return(
dcx,
rustc_span::create_session_globals_then(options.edition, &[], None, || {
run_merge_finalize(render_options)
interface::run_compiler(config, |compiler| {
run_merge_finalize(render_options, compiler)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here, but getting rid of the fake Input::Str is harder, and this seems less bad than making a fake crate and TyCtxt. So fine to just leave it.

Comment thread tests/run-make/rustdoc/merge-cross-crate-info/kitchen-sink-separate-dirs/rmake.rs Outdated
Comment thread tests/run-make/rustdoc/merge-cross-crate-info/no-merge-write-anyway/rmake.rs Outdated
@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 27, 2026
@rustbot

rustbot commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@rust-log-analyzer

This comment has been minimized.

@notriddle
notriddle force-pushed the rename-parts-to-dep-meta branch from c3d3011 to f73cd1e Compare July 28, 2026 04:05
If this parameter is supplied but `--read-doc-meta-dir` isn't, it runs in *intermediate mode*:
some pages may be written to the output dir, but there is a lot of functionality that won't work
until rustdoc is run in *finalize mode*.
When `--write-doc-meta-dir` is supplied, rustdoc will write the crate's shared metadata to

@weihanglo weihanglo Jul 29, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not the right question for this PR, and I haven't read the implementation here, though I am curious:

  • How does this interact with --out-dir. I guess --out-dir is ignored here?
  • How does this interact with all those --emit files (w/ or w/o --out-dir? Where will those files be emitted?

View changes since the review

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Context: I'd like to pass --emit=dep-info without specifying the full (absolute) path for those dep-info files. Because of this issue #159743 we cannot specify full path, and currently blocks rust-lang/cargo#17020.

(That said, it is a very Cargo specific issue I feel like)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The --out-dir is still used as the path for --emit files. --write-doc-meta-dir doesn't pay attention to --out-dir.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. So eventually if individual rustdoc doesn't need to emit html contents, cargo then can use --emit to control dep-info emission location exclusively. Thanks!

@camelid

camelid commented Jul 29, 2026

Copy link
Copy Markdown
Member

We're also missing the root-level help.html and settings.html files in the finalize step.

@notriddle

Copy link
Copy Markdown
Contributor Author

Good catch! settings.html and help.html are moved, so they get generated at finalize now.

@rust-log-analyzer

This comment has been minimized.

@notriddle
notriddle force-pushed the rename-parts-to-dep-meta branch from 23fae6c to 5f940df Compare July 30, 2026 05:57

@camelid camelid left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! r=me with comments addressed. Or feel free to just merge and then fix in a later PR since this is already a big improvement.

Also, could you rename the title and edit the PR description since the scope has changed and grown a bit?

View changes since this review

Comment thread src/librustdoc/html/render/write_shared.rs Outdated
Comment thread src/librustdoc/html/render/context.rs Outdated
Comment thread src/librustdoc/html/render/write_shared.rs Outdated
Comment thread src/librustdoc/lib.rs
@camelid

camelid commented Jul 31, 2026

Copy link
Copy Markdown
Member

Have we specified the behavior of rustdoc when two different invocations use the same --write-doc-meta-dir folder?

@notriddle

Copy link
Copy Markdown
Contributor Author

Have we specified the behavior of rustdoc when two different invocations use the same --write-doc-meta-dir folder?

Good point. I've added a mention of this to the unstable book.

@camelid

camelid commented Aug 2, 2026

Copy link
Copy Markdown
Member

Good point. I've added a mention of this to the unstable book.

I asked mostly because I wonder if we should forbid/not support this use case. Otherwise we need to support reading multiple crates' metadata from a single flag's metadata directory. It might force us into adding extra structure to our metadata directories to make sure that different crates' entries don't clash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants