fix(log): emit fingeprint log also for no-rebuild unit#16408
fix(log): emit fingeprint log also for no-rebuild unit#16408epage merged 4 commits intorust-lang:masterfrom
Conversation
Consumer can reference to unit-registered event for details
| } | ||
| None => util::log_message::FingerprintStatus::Fresh, | ||
| }; | ||
| logger.log(LogMessage::UnitFingerprint { |
There was a problem hiding this comment.
It isn't too clear to me why this is needed if we know what all the build units are, then the assumption if there isn't a rebuild reason then it wasn't rebuilt.
There was a problem hiding this comment.
It was kinda a path towards recording previous builds. Even without 8bf836a, it is still useful if we start logging fingerprint value itself (which I was working towards but realized that capturing fs_status might be a bit tricky that we can't never get a useful diff from two fingerprints.)
There was a problem hiding this comment.
The idea came from #t-cargo > build analysis log format @ 💬
There was a problem hiding this comment.
What I'm wondering about is recording the values that were diffed so the user can do arbitrary diffs
In the fingerprint directory, we have a json file and I was wondering if we could replace that json file with one or more messages
e.g.
{"rustc":5092870430032522185,"features":"[]","declared_features":"[]","target":2199929927738793367,"profile":2241668132362809309,"path":10763286916239946207,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/build/foo/58363037c0a1f1bb/fingerprint/dep-lib-foo","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}There was a problem hiding this comment.
Well, either way, we can experiment and decide what we want as we work towards stabilization.
There was a problem hiding this comment.
Yeah that was also what I was wondering, but then
- Some information is kinda duplicate or can be derived from in other log messages.
- The complete file system status and environment status were not captured. The fingerprint is still a comparison result of them, unable to diff.
- Information there are hashes, which makes diffing less interesting (like, "this build is dirty because target file path changed from 10763286916 to src/foo/lib.rs"). And that's the reason
previous_run_idwas introduced. - It was hard to determine what is the minimal set of stable JSON schema we want to expose. We just don't provide a stable one, and instead emit an opaque JSON string.
Anyway, I think we're going to track a mix of diffable data and diffing results regardlessly.
2b5fb8b to
25c5e7c
Compare
This makes the log message more complete. Also consumers can check whether a crate is really "no rebuild needed" It also open a door if we want to log the current fingerprint value.
Update cargo submodule 13 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..3861f60f6b58f57524c0e7aab1f5c1ad83e35409 2025-12-13 16:29:21 +0000 to 2025-12-19 21:53:33 +0000 - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 13 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..3861f60f6b58f57524c0e7aab1f5c1ad83e35409 2025-12-13 16:29:21 +0000 to 2025-12-19 21:53:33 +0000 - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 13 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..3861f60f6b58f57524c0e7aab1f5c1ad83e35409 2025-12-13 16:29:21 +0000 to 2025-12-19 21:53:33 +0000 - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
Update cargo submodule 17 commits in e91b2baa632c0c7e84216c91ecfe107c37d887c1..94c368ad2b9db0f0da5bdd8421cea13786ce4412 2025-12-13 16:29:21 +0000 to 2025-12-26 19:39:15 +0000 - fix(vendor): unpack from local-registry cache path (rust-lang/cargo#16435) - feat(index): Stabilize pubtime (rust-lang/cargo#16372) - Experiment: Render timing pipeline in SVG (rust-lang/cargo#15091) - chore(triagebot): auto-label `Command-report` (rust-lang/cargo#16429) - fix(sbom): Don't set CARGO_SBOM_PATH when empty (like stable) (rust-lang/cargo#16419) - chore(ci): report-timings to upload HTML report (rust-lang/cargo#16416) - fix(report): get the same feature parity of `--timings` (rust-lang/cargo#16414) - fix(docs): Document the only possible values for DEBUG in build scripts (rust-lang/cargo#16413) - fix(log): emit fingeprint log also for no-rebuild unit (rust-lang/cargo#16408) - Fix link to `doc_cfg` docs in cargo book (rust-lang/cargo#16404) - Add best pratice for how to check in generated files (rust-lang/cargo#16405) - test: Use a larger default term width (rust-lang/cargo#16403) - Document more services and permissions of the cargo team (rust-lang/cargo#16402) - fix(new): Improve quality of package name error messages (rust-lang/cargo#16398) - feat(log): add more log events (rust-lang/cargo#16390) - chore: bump to 0.95.0; update changelog (rust-lang/cargo#16395) - Cache submodule into git db (rust-lang/cargo#16246) r? ghost
What does this PR try to resolve?
This makes the log message more complete.
Also consumers can check whether a crate is really "no rebuild needed"
It also open a door if we want to log the current fingerprint value.
Part of #15844.
How to test and review this PR?
The test diff should show the behavior change