Ed Page
7220445a9d
feat: rustdoc depinfo rebuild detection via -Zrustdoc-depinfo ( #15359 )
...
### What does this PR try to resolve?
This leverages the unstable `--emit=depinfo` option from rustdoc,
so that rustdoc invocation rebuild can be better tracked
without traversing the entire directory.
Some design decisions made in the current implementation:
* Rustdoc's depinfo doesn't and shouldn't emit to `target/doc`,
as the directory is considered part of the final artifact directory.
In regard to that, we specify the dep-info output path to
the fingerprint directory of rustdoc invocation.
It looks like this
`target/debug/.fingerprint/serde-12d29d32b3b8b38f/doc-lib-serde.d`.
* We also start supporting `-Zchecksum-freshness` as a side effect.
Could make it a separate PR if desired.
* `-Zbinary-dep-depinfo` is not enabled along with this,
since doc generations don't really require any binary dependencies.
### How should we test and review this PR?
The tests added has covered these cases:
* target src outside package root, e.g., `lib.path = "../lib.rs"`
* `#[doc = include_str!("../outside/pkgroot")]`
* `#[path = "../outside/pkgroot"]`
* `env!`
### Additional information
Fixes #12266
Closes #15205
2025-03-31 14:12:26 +00:00
..
2025-03-27 11:55:55 -04:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2024-05-27 21:27:03 -05:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-25 23:02:37 -04:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-03-20 22:16:27 +08:00
2025-02-09 12:46:36 -08:00
2024-12-05 10:50:51 -05:00
2024-07-12 15:57:00 -05:00
2025-02-09 12:46:36 -08:00
2025-01-20 21:53:13 +08:00
2024-07-12 15:57:00 -05:00
2025-02-10 14:29:15 -06:00
2024-07-24 10:42:51 -05:00
2024-09-30 14:23:47 -04:00
2024-12-24 10:33:21 -05:00
2025-03-20 12:16:40 +09:00
2024-07-24 10:42:50 -05:00
2025-01-01 14:10:00 +08:00
2025-03-19 20:20:45 +08:00
2025-03-26 23:47:08 +00:00
2025-03-20 22:16:27 +08:00
2024-07-18 15:22:29 -05:00
2024-11-21 13:48:27 -06:00
2024-07-12 15:57:00 -05:00
2025-03-26 23:47:08 +00:00
2024-10-25 11:21:52 +08:00
2024-11-14 09:06:18 +02:00
2024-07-12 15:57:00 -05:00
2024-11-25 22:01:44 +01:00
2025-02-01 14:14:05 -05:00
2024-11-25 09:27:09 -06:00
2025-02-04 10:46:09 -06:00
2024-11-15 09:33:23 -06:00
2024-07-19 10:50:42 -05:00
2024-07-12 15:57:00 -05:00
2024-12-05 16:11:11 -06:00
2025-01-20 15:20:27 -06:00
2024-07-12 15:57:00 -05:00
2025-01-30 13:39:10 +00:00
2025-01-26 13:25:17 -08:00
2024-10-17 06:26:47 +08:00
2024-07-12 15:57:00 -05:00
2024-07-12 15:57:00 -05:00
2024-12-24 10:33:21 -05:00
2024-07-12 15:57:00 -05:00
2024-08-30 09:26:56 -05:00
2024-10-31 21:35:57 +01:00
2025-03-28 22:07:30 -07:00
2024-08-22 16:57:06 -05:00
2024-11-27 13:10:32 -06:00
2024-07-12 15:57:00 -05:00
2025-02-11 15:10:39 +09:00
2025-02-21 21:46:22 +08:00
2025-02-04 18:33:15 +00:00
2024-10-01 11:48:31 -05:00
2024-11-07 15:55:35 -06:00
2024-11-15 09:33:23 -06:00
2025-02-04 19:52:07 +00:00
2025-03-15 03:04:18 -05:00
2025-03-15 03:04:18 -05:00
2025-03-21 16:32:28 -07:00
2024-08-22 16:57:06 -05:00
2024-11-07 15:55:35 -06:00
2024-11-29 22:23:08 -05:00
2024-12-18 15:44:01 -06:00
2025-02-14 19:43:16 +00:00
2024-07-06 11:28:13 +08:00
2025-03-30 04:45:07 -07:00
2025-02-04 10:46:09 -06:00
2025-01-04 11:19:35 -08:00
2024-11-25 09:27:09 -06:00
2024-07-19 10:50:42 -05:00
2024-11-07 15:55:35 -06:00
2024-09-30 13:25:33 -04:00
2024-08-22 16:57:06 -05:00
2024-07-14 04:09:34 +08:00
2024-10-25 00:35:30 +08:00
2025-03-20 22:16:27 +08:00
2024-09-24 20:43:02 -04:00
2024-11-25 09:27:09 -06:00
2025-01-13 10:40:13 -06:00
2024-07-18 15:22:29 -05:00
2024-11-21 13:48:27 -06:00
2025-03-25 23:02:37 -04:00
2024-07-19 10:50:42 -05:00
2024-07-19 10:50:42 -05:00
2024-11-07 15:55:35 -06:00
2024-07-26 23:26:48 +08:00
2024-11-07 15:55:35 -06:00
2025-03-06 09:00:00 -08:00
2024-08-30 09:26:56 -05:00
2024-07-09 08:03:09 +08:00
2024-07-12 15:57:00 -05:00
2024-11-29 22:23:08 -05:00
2025-03-04 11:03:27 -06:00
2024-08-15 16:56:49 -05:00
2025-01-20 21:53:15 +08:00
2024-07-18 15:22:29 -05:00
2025-02-04 18:33:15 +00:00
2025-03-26 13:37:01 -04:00
2025-03-25 13:15:34 -04:00
2024-12-13 11:00:57 -06:00
2024-08-22 16:57:06 -05:00
2024-09-19 11:42:33 -05:00
2024-12-05 16:11:11 -06:00
2025-02-04 10:46:09 -06:00
2024-11-18 20:52:53 -06:00
2024-08-22 16:57:06 -05:00
2024-11-07 15:55:35 -06:00
2024-08-22 16:57:06 -05:00
2025-02-04 10:46:09 -06:00
2024-11-12 22:57:45 -05:00
2024-11-29 22:23:08 -05:00
2024-11-07 15:55:35 -06:00
2025-03-09 23:20:11 +03:00
2024-11-18 20:52:53 -06:00
2024-12-19 08:37:24 -05:00
2025-02-04 10:46:09 -06:00
2024-07-24 10:42:50 -05:00
2024-11-21 13:48:27 -06:00
2024-11-23 10:20:59 -05:00
2025-03-04 11:03:27 -06:00
2024-08-22 16:57:06 -05:00
2024-08-30 09:26:56 -05:00
2024-08-22 16:57:06 -05:00
2025-03-11 13:15:54 -05:00
2024-11-25 09:27:09 -06:00
2024-11-07 15:55:35 -06:00
2025-03-15 17:55:15 -05:00
2024-11-07 15:55:35 -06:00
2024-12-18 09:30:17 -05:00
2024-07-12 15:57:00 -05:00
2024-12-05 16:30:09 -06:00
2024-07-18 15:22:29 -05:00
2025-02-26 14:57:14 -06:00
2025-02-27 14:50:56 -06:00
2024-11-07 15:55:35 -06:00
2024-07-12 15:57:00 -05:00
2024-11-14 09:06:18 +02:00
2024-11-15 09:33:23 -06:00
2025-01-27 19:06:22 -08:00
2025-03-27 18:28:09 -07:00
2024-08-22 16:57:06 -05:00
2024-07-12 15:57:00 -05:00
2024-07-24 10:42:50 -05:00
2024-10-25 00:35:30 +08:00
2025-03-11 09:37:02 -07:00
2024-07-12 15:57:00 -05:00
2024-07-12 15:57:00 -05:00
2024-11-07 15:55:35 -06:00
2024-11-08 15:27:33 -06:00
2024-12-13 10:31:53 -06:00
2025-03-11 11:07:39 -05:00
2024-07-18 15:22:29 -05:00