)]}'
{
  "commit": "197cdaffea3649cea03a17e81f5c5198a97c4e1f",
  "tree": "18ed85463f4ba167f42980dcbfa5cc4e375bbb41",
  "parents": [
    "480d8520dfc8f8d77869d7d3b2011026272c9528",
    "cef0e9968b4279e9750719a21382b5a170beb619"
  ],
  "author": {
    "name": "Rust timing bot",
    "email": "rust-timer@users.noreply.github.com",
    "time": "Thu May 14 19:03:10 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 14 19:03:10 2026"
  },
  "message": "Unrolled build for #146220\nRollup merge of #146220 - weihanglo:rustdoc-emit, r\u003dGuillaumeGomez\n\nfeat(rustdoc): stabilize `--emit` flag\n\n### [---\u003e FCP \u003c---](https://github.com/rust-lang/rust/pull/146220#issuecomment-3740447985)\n\n## Stabilization Report: `rustdoc --emit`\n\n**Feature:** `rustdoc --emit`\n**Tracking issue:** rust-lang/rust#83784\n**Stabilization PR:** rust-lang/rust#146220\n\n### What we are stabilizing\n\nThis stabilizes the `rustdoc --emit` flag, which controls what types of output rustdoc produces. The flag accepts a comma-separated list of the following emit types:\n\n- `html-static-files` --- Shared static files with content-hashed filenames for safe caching.\n- `html-non-static-files` --- Per-crate documentation files with deterministic filenames.\n- `dep-info[\u003d\u003cpath\u003e]` --- A Makefile-compatible `.d` file listing all source files loaded during documentation generation. Same as rustc\u0027s dep-info files.\n\nWhen `--emit` is not specified, the default behavior is `--emit\u003dhtml-static-files,html-non-static-files` (i.e., full HTML documentation output, no dep-info).\n\n### What we are not stabilizing\n\n* Interaction between other unstable options, such as `-Zrustdoc-mergeable-info` and `--output-format\u003ddoctest`\n* Available options and the default options when `--emit` not specified.\n* Extension of per-type emit paths for options currently missing that.\n\n### Motivation\n\n#### Cargo\n\nThe primary consumer is Cargo, which needs `--emit\u003ddep-info\u003d\u003cpath\u003e` to precisely track the input dependencies of a rustdoc invocation (see the [`-Zrustdoc-depinfo`] unstable Cargo feature). Without dep-info, Cargo cannot detect changes to files pulled in via `#[path \u003d \"...\"]` or similar mechanisms and leads to stale documentation in incremental builds.\n\nCargo also uses the selective emission mechanism (`html-static-files` / `html-non-static-files`) when the unstable [`-Zrustdoc-mergeable-info`] feature is active. It skips writing shared static files and search index during per-crate doc generation and defer them to a final merge phase.\n\nUnder stable usage, Cargo passes all three emit types together.\n\n#### docs.rs\n\ndocs.rs is the other major consumer. It uses selective emission to avoid redundantly copying toolchain-wide static files for every crate, which has historically been a source of breakage. See the tracking rust-lang/rust#83784 and the about page for more \u003chttps://docs.rs/about/download\u003e.\n\n### Tests\n\n- `tests/run-make/emit-shared-files` --- Verifies selective emission of static vs non-static files.\n- `tests/run-make/rustdoc-dep-info` --- Verifies dep-info generation, including explicit path and `--out-dir` interaction.\n- `tests/run-make/rustdoc-scrape-examples-dep-info` --- Verifies dep-info works with scrape-examples.\n- `tests/run-make/rustdoc-default-output/` --- Verifies `--help` output shows `[html-static-files,html-non-static-files,dep-info]`\n\n[`-Zrustdoc-depinfo`]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#rustdoc-depinfo\n[`-Zrustdoc-mergeable-info`]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#rustdoc-mergeable-info\n",
  "tree_diff": []
}
