From f1e1ac18dab2be90300388ca6add46d2beb34306 Mon Sep 17 00:00:00 2001 From: Michael Howell Date: Fri, 17 Jul 2026 10:40:37 -0700 Subject: [PATCH] rustdoc: rename the doc parts metadata params Follow up https://github.com/rust-lang/rust/pull/159415 --- src/compiler/compilation.rs | 2 +- src/compiler/fingerprint/rustdoc.rs | 6 +-- src/compiler/mod.rs | 3 +- src/ops/cargo_doc.rs | 5 +-- tests/testsuite/doc.rs | 62 ++++++++++++++--------------- 5 files changed, 38 insertions(+), 40 deletions(-) diff --git a/src/compiler/compilation.rs b/src/compiler/compilation.rs index 758add9d67e..5e4e335cf1b 100644 --- a/src/compiler/compilation.rs +++ b/src/compiler/compilation.rs @@ -112,7 +112,7 @@ pub struct Compilation<'gctx> { /// Libraries to test with rustdoc. pub to_doc_test: Vec, - /// Rustdoc fingerprint files to determine whether we need to run `rustdoc --merge=finalize`. + /// Rustdoc fingerprint files to determine whether we need to run `rustdoc --read-doc-meta-dir`. /// /// See `-Zrustdoc-mergeable-info` for more. pub rustdoc_fingerprints: Option>, diff --git a/src/compiler/fingerprint/rustdoc.rs b/src/compiler/fingerprint/rustdoc.rs index 8516aa109c7..42e7d4640fd 100644 --- a/src/compiler/fingerprint/rustdoc.rs +++ b/src/compiler/fingerprint/rustdoc.rs @@ -103,10 +103,10 @@ impl RustdocFingerprint { /// /// The closure will run before persisting the fingerprint, /// and will be given a list of doc parts directories for passing to - /// `rustdoc --include-parts-dir`. + /// `rustdoc --read-doc-meta-dir`. pub fn persist(&self, exec: F) -> CargoResult<()> where - // 1. paths for `--include-parts-dir` + // 1. paths for `--read-doc-meta-dir` F: Fn(&[&Path]) -> CargoResult<()>, { // Dedupe crate with the same name by file stem (which is effectively crate name), @@ -139,7 +139,7 @@ impl RustdocFingerprint { let mut doc_parts: Vec<_> = dedup_map.into_values().collect(); doc_parts.sort_unstable(); - // Prepare args for `rustdoc --include-parts-dir` + // Prepare args for `rustdoc --read-doc-meta-dir` let doc_parts_dirs: Vec<_> = doc_parts.iter().map(|p| p.parent().unwrap()).collect(); exec(&doc_parts_dirs)?; diff --git a/src/compiler/mod.rs b/src/compiler/mod.rs index dc606fe90bf..18b5179f13a 100644 --- a/src/compiler/mod.rs +++ b/src/compiler/mod.rs @@ -915,8 +915,7 @@ fn prepare_rustdoc(build_runner: &BuildRunner<'_, '_>, unit: &Unit) -> CargoResu if build_runner.bcx.gctx.cli_unstable().rustdoc_mergeable_info { // write out mergeable data to be imported rustdoc.arg("-Zunstable-options"); - rustdoc.arg("--merge=none"); - let mut arg = OsString::from("--parts-out-dir="); + let mut arg = OsString::from("--write-doc-meta-dir="); // `-Zrustdoc-mergeable-info` always uses the new layout. arg.push(build_runner.files().out_dir_new_layout(unit)); rustdoc.arg(arg); diff --git a/src/ops/cargo_doc.rs b/src/ops/cargo_doc.rs index e2405d5585e..9de066dcf45 100644 --- a/src/ops/cargo_doc.rs +++ b/src/ops/cargo_doc.rs @@ -157,10 +157,9 @@ fn merge_cross_crate_info(ws: &Workspace<'_>, compilation: &Compilation<'_>) -> cmd.retry_with_argfile(true); cmd.arg("-o") .arg(rustdoc_artifact_dir.as_path_unlocked()) - .arg("-Zunstable-options") - .arg("--merge=finalize"); + .arg("-Zunstable-options"); for parts_dir in doc_parts_dirs { - let mut include_arg = OsString::from("--include-parts-dir="); + let mut include_arg = OsString::from("--read-doc-meta-dir="); include_arg.push(parts_dir); cmd.arg(include_arg); } diff --git a/tests/testsuite/doc.rs b/tests/testsuite/doc.rs index defc7398b7a..5449e8084c7 100644 --- a/tests/testsuite/doc.rs +++ b/tests/testsuite/doc.rs @@ -3249,13 +3249,13 @@ fn mergeable_info_with_deps() { [LOCKING] 1 package to latest compatible version [DOCUMENTING] dep v0.0.0 ([ROOT]/foo/dep) [CHECKING] dep v0.0.0 ([ROOT]/foo/dep) -[RUNNING] `rustdoc [..]--crate-name dep [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name dep [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` [RUNNING] `rustc --crate-name dep [..]` [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out[..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out[..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 2 docs for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3310,10 +3310,10 @@ fn mergeable_info_no_deps() { [CHECKING] dep v0.0.0 ([ROOT]/foo/dep) [RUNNING] `rustc --crate-name dep --edition=2015 [..]` [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3376,14 +3376,14 @@ fn mergeable_info_workspace() { [DOCUMENTING] dep v0.0.0 ([ROOT]/foo/dep) [CHECKING] dep v0.0.0 ([ROOT]/foo/dep) [DOCUMENTING] bar v0.0.0 ([ROOT]/foo/bar) -[RUNNING] `rustdoc [..]--crate-name dep [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` -[RUNNING] `rustdoc [..]--crate-name bar [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name dep [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name bar [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out [..]` [RUNNING] `rustc --crate-name dep [..]` [DOCUMENTING] foo v0.0.0 ([ROOT]/foo/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 3 docs for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/bar/index.html [GENERATED] [ROOT]/foo/target/doc/dep/index.html @@ -3443,13 +3443,13 @@ fn mergeable_info_multi_targets() { .with_stderr_data( str![[r#" [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo src/lib.rs --target [HOST_TARGET] [..]--merge=none --parts-out-dir=[ROOT]/foo/target/[HOST_TARGET]/debug/build/foo-[HASH]/out [..]` -[RUNNING] `rustdoc [..]--crate-name foo src/lib.rs --target [ALT_TARGET] [..]--merge=none --parts-out-dir=[ROOT]/foo/target/[ALT_TARGET]/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo src/lib.rs --target [HOST_TARGET] [..]--write-doc-meta-dir=[ROOT]/foo/target/[HOST_TARGET]/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo src/lib.rs --target [ALT_TARGET] [..]--write-doc-meta-dir=[ROOT]/foo/target/[ALT_TARGET]/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for [ALT_TARGET] -[RUNNING] `rustdoc -o [ROOT]/foo/target/[ALT_TARGET]/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/[ALT_TARGET]/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/[ALT_TARGET]/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/[ALT_TARGET]/debug/build/foo-[HASH]/out` [MERGING] 1 doc for [HOST_TARGET] -[RUNNING] `rustdoc -o [ROOT]/foo/target/[HOST_TARGET]/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/[HOST_TARGET]/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/[HOST_TARGET]/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/[HOST_TARGET]/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/[HOST_TARGET]/doc/foo/index.html [GENERATED] [ROOT]/foo/target/[ALT_TARGET]/doc/foo/index.html @@ -3515,10 +3515,10 @@ fn mergeable_info_rebuild_detection() { .with_stderr_data( str![[r#" [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3579,10 +3579,10 @@ fn mergeable_info_rebuild_detection() { str![[r#" [DIRTY] foo v0.0.0 ([ROOT]/foo): the precalculated components changed [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3653,10 +3653,10 @@ fn mergeable_info_rebuild_with_depinfo() { .with_stderr_data( str![[r#" [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--emit=html-non-static-files,dep-info=[..] --merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--emit=html-non-static-files,dep-info=[..] --write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3717,10 +3717,10 @@ fn mergeable_info_rebuild_with_depinfo() { str![[r#" [DIRTY] foo v0.0.0 ([ROOT]/foo): the file `src/lib.rs` has changed ([TIME_DIFF_AFTER_LAST_BUILD]) [DOCUMENTING] foo v0.0.0 ([ROOT]/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--emit=html-non-static-files,dep-info=[..] --merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--emit=html-non-static-files,dep-info=[..] --write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3805,10 +3805,10 @@ fn mergeable_info_additive() { [CHECKING] dep v0.0.0 ([ROOT]/foo/dep) [RUNNING] `rustc --crate-name dep [..]` [DOCUMENTING] foo v0.0.0 ([ROOT]/foo/foo) -[RUNNING] `rustdoc [..]--crate-name foo [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name foo [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/foo/index.html @@ -3841,10 +3841,10 @@ fn mergeable_info_additive() { .with_stderr_data( str![[r#" [DOCUMENTING] dep v0.0.0 ([ROOT]/foo/dep) -[RUNNING] `rustdoc [..]--crate-name dep [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name dep [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 2 docs for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/dep/index.html @@ -3878,10 +3878,10 @@ fn mergeable_info_additive() { .with_stderr_data( str![[r#" [DOCUMENTING] bar v0.0.0 ([ROOT]/foo/bar) -[RUNNING] `rustdoc [..]--crate-name bar [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out [..]` +[RUNNING] `rustdoc [..]--crate-name bar [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out [..]` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 3 docs for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --include-parts-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/bar-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out --read-doc-meta-dir=[ROOT]/foo/target/debug/build/foo-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/bar/index.html @@ -3954,10 +3954,10 @@ fn mergeable_info_dep_collision() { [DOWNLOADED] dep v0.1.0 (registry `dummy-registry`) [DOWNLOADED] dep v0.2.0 (registry `dummy-registry`) [DOCUMENTING] dep v0.1.0 -[RUNNING] `rustdoc [..]--crate-name dep [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]--crate-version 0.1.0` +[RUNNING] `rustdoc [..]--crate-name dep [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]--crate-version 0.1.0` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/dep/index.html @@ -3993,10 +3993,10 @@ fn mergeable_info_dep_collision() { .with_stderr_data( str![[r#" [DOCUMENTING] dep v0.2.0 -[RUNNING] `rustdoc [..]--crate-name dep [..]--merge=none --parts-out-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]--crate-version 0.2.0` +[RUNNING] `rustdoc [..]--crate-name dep [..]--write-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out [..]--crate-version 0.2.0` [FINISHED] `dev` profile [unoptimized + debuginfo] target(s) in [ELAPSED]s [MERGING] 1 doc for host -[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --merge=finalize --include-parts-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out` +[RUNNING] `rustdoc -o [ROOT]/foo/target/doc -Zunstable-options --read-doc-meta-dir=[ROOT]/foo/target/debug/build/dep-[HASH]/out` [FINISHED] documentation merge in [ELAPSED]s [GENERATED] [ROOT]/foo/target/doc/dep/index.html