Rollup merge of #147172 - notriddle:tooldoc, r=Kobzol

bootstrap: build bootstrap docs with in-tree rustdoc

All of the docs need to be built with the same rustdoc. Otherwise, any change to the search index breaks everything, because the two rustdocs don't agree on the format.

Fixes https://github.com/rust-lang/rust/issues/147142
This commit is contained in:
Matthias Krüger 2025-09-30 20:46:46 +02:00 committed by GitHub
commit 4cbaa70101
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 18 deletions

View File

@ -1024,12 +1024,9 @@ macro_rules! tool_doc {
run.builder.ensure(Rustc::from_build_compiler(run.builder, compilers.build_compiler(), target));
compilers.build_compiler()
}
Mode::ToolBootstrap => {
// bootstrap/host tools should be documented with the stage 0 compiler
prepare_doc_compiler(run.builder, run.builder.host_target, 1)
}
Mode::ToolTarget => {
// target tools should be documented with the in-tree compiler
// when shipping multiple docs together in one folder,
// they all need to use the same rustdoc version
prepare_doc_compiler(run.builder, run.builder.host_target, run.builder.top_stage)
}
_ => {
@ -1132,7 +1129,11 @@ macro_rules! tool_doc {
tool_doc!(
BuildHelper,
"src/build_helper",
mode = Mode::ToolBootstrap,
// ideally, this would use ToolBootstrap,
// but we distribute these docs together in the same folder
// as a bunch of stage1 tools, and you can't mix rustdoc versions
// because that breaks cross-crate data (particularly search)
mode = Mode::ToolTarget,
is_library = true,
crates = ["build_helper"]
);
@ -1175,25 +1176,25 @@ tool_doc!(
// "specialization" feature in its build script when it detects a nightly toolchain.
allow_features: "specialization"
);
tool_doc!(Tidy, "src/tools/tidy", mode = Mode::ToolBootstrap, crates = ["tidy"]);
tool_doc!(Tidy, "src/tools/tidy", mode = Mode::ToolTarget, crates = ["tidy"]);
tool_doc!(
Bootstrap,
"src/bootstrap",
mode = Mode::ToolBootstrap,
mode = Mode::ToolTarget,
is_library = true,
crates = ["bootstrap"]
);
tool_doc!(
RunMakeSupport,
"src/tools/run-make-support",
mode = Mode::ToolBootstrap,
mode = Mode::ToolTarget,
is_library = true,
crates = ["run_make_support"]
);
tool_doc!(
Compiletest,
"src/tools/compiletest",
mode = Mode::ToolBootstrap,
mode = Mode::ToolTarget,
is_library = true,
crates = ["compiletest"]
);

View File

@ -1158,13 +1158,12 @@ mod snapshot {
[doc] embedded-book (book) <host>
[doc] edition-guide (book) <host>
[doc] style-guide (book) <host>
[build] rustdoc 0 <host>
[doc] rustc 0 <host> -> Tidy 1 <host>
[doc] rustc 0 <host> -> Bootstrap 1 <host>
[doc] rustc 1 <host> -> Tidy 2 <host>
[doc] rustc 1 <host> -> Bootstrap 2 <host>
[doc] rustc 1 <host> -> releases 2 <host>
[doc] rustc 0 <host> -> RunMakeSupport 1 <host>
[doc] rustc 0 <host> -> BuildHelper 1 <host>
[doc] rustc 0 <host> -> Compiletest 1 <host>
[doc] rustc 1 <host> -> RunMakeSupport 2 <host>
[doc] rustc 1 <host> -> BuildHelper 2 <host>
[doc] rustc 1 <host> -> Compiletest 2 <host>
[build] rustc 0 <host> -> RustInstaller 1 <host>
"
);
@ -2686,8 +2685,11 @@ mod snapshot {
.path("src/tools/compiletest")
.stage(2)
.render_steps(), @r"
[build] rustdoc 0 <host>
[doc] rustc 0 <host> -> Compiletest 1 <host>
[build] llvm <host>
[build] rustc 0 <host> -> rustc 1 <host>
[build] rustc 1 <host> -> std 1 <host>
[build] rustdoc 1 <host>
[doc] rustc 1 <host> -> Compiletest 2 <host>
");
}