Skip to content

Add command field to BuildStarted in build-analysis#16577

Merged
weihanglo merged 1 commit intorust-lang:masterfrom
kurasaiteja:add-command-to-build-started
Feb 3, 2026
Merged

Add command field to BuildStarted in build-analysis#16577
weihanglo merged 1 commit intorust-lang:masterfrom
kurasaiteja:add-command-to-build-started

Conversation

@kurasaiteja
Copy link

@kurasaiteja kurasaiteja commented Feb 1, 2026

What does this PR try to resolve?

This PR adds a command field to LogMessage::BuildStarted that records the CLI arguments Cargo was invoked with. Currently, when reviewing build-analysis logs in ~/.cargo/log/, there's no way to tell which command triggered a particular build session.
Added capture std::env::args() and included it in the BuildStarted message.

Example Output:

  {
    "reason": "build-started",
    "command": ["cargo", "build", "--release", "-p", "foo"],
    "cwd": "/home/user/project",
    ...
  } 

How to test and review this PR?

Run the build-analysis tests using cargo test --test testsuite build_analysis
All 10 tests pass, including log_msg_build_started which verifies the new field is present.

To manually test:

export CARGO_BUILD_ANALYSIS_ENABLED=true
cargo +nightly build -Zbuild-analysis
cat ~/.cargo/log/*.jsonl | head -1 | jq .command

@rustbot rustbot added Command-report S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 1, 2026
@rustbot
Copy link
Collaborator

rustbot commented Feb 1, 2026

r? @weihanglo

rustbot has assigned @weihanglo.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

.ok()
.map(|x| x.get() as u64);
logger.log(LogMessage::BuildStarted {
command: std::env::args().collect(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

I may probably collect args_os and do lossy conversion, so that at least we won't panic if there is any non-UTF8 arg

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good one! Will change

  Record the CLI arguments Cargo was invoked with in the BuildStarted
  log message.

  Fixes rust-lang#16528
@kurasaiteja kurasaiteja force-pushed the add-command-to-build-started branch from 2a7e2f5 to a0b2519 Compare February 3, 2026 05:19
Copy link
Member

@weihanglo weihanglo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@weihanglo weihanglo added this pull request to the merge queue Feb 3, 2026
Merged via the queue into rust-lang:master with commit afcd6f8 Feb 3, 2026
29 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 3, 2026
rust-bors bot pushed a commit to rust-lang/rust that referenced this pull request Feb 6, 2026
Update cargo submodule

12 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..b9f0d83fd6528158af09d37e64779a0414da1ee
2026-01-30 21:52:01 +0000 to 2026-02-05 19:27:30 +0000
- chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593)
- feat(lints): Add missing_lints_inheritance  (rust-lang/cargo#16588)
- chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589)
- chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587)
- feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585)
- Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577)
- Fix link for lockfile-publish-time (rust-lang/cargo#16582)
- docs(cli): Discuss commands and aliases (rust-lang/cargo#16581)
- fix(script): Correct style of help message (rust-lang/cargo#16580)
- chore(deps): update compatible (rust-lang/cargo#16578)
- chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579)
- fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
rust-bors bot pushed a commit to rust-lang/rust that referenced this pull request Feb 9, 2026
Update cargo submodule

15 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..14f99cc7806713d7353bb57c54e8af2740afe8f7
2026-01-30 21:52:01 +0000 to 2026-02-08 15:10:49 +0000
- refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602)
- Fix known hosts parsing (rust-lang/cargo#16596)
- chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601)
- chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593)
- feat(lints): Add missing_lints_inheritance  (rust-lang/cargo#16588)
- chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589)
- chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587)
- feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585)
- Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577)
- Fix link for lockfile-publish-time (rust-lang/cargo#16582)
- docs(cli): Discuss commands and aliases (rust-lang/cargo#16581)
- fix(script): Correct style of help message (rust-lang/cargo#16580)
- chore(deps): update compatible (rust-lang/cargo#16578)
- chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579)
- fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
rust-bors bot pushed a commit to rust-lang/rust that referenced this pull request Feb 11, 2026
Update cargo submodule

27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88
2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000
- chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624)
- fix(script): Load config relative to the script (rust-lang/cargo#16620)
- fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618)
- fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608)
- fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619)
- fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617)
- chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615)
- chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613)
- feat(timings): Enable text selection in the charts (rust-lang/cargo#16607)
- Add host.runner for wrapping host build target executions (rust-lang/cargo#16599)
- feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609)
- refactor(lints): Cleanup (rust-lang/cargo#16610)
- refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602)
- Fix known hosts parsing (rust-lang/cargo#16596)
- chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601)
- chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593)
- feat(lints): Add missing_lints_inheritance  (rust-lang/cargo#16588)
- chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589)
- chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587)
- feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585)
- Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577)
- Fix link for lockfile-publish-time (rust-lang/cargo#16582)
- docs(cli): Discuss commands and aliases (rust-lang/cargo#16581)
- fix(script): Correct style of help message (rust-lang/cargo#16580)
- chore(deps): update compatible (rust-lang/cargo#16578)
- chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579)
- fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
@rustbot rustbot added this to the 1.95.0 milestone Feb 11, 2026
@weihanglo weihanglo linked an issue Feb 12, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add command context to -Zbuild-analysis

4 participants