Skip to content

chore(tools): Align RUSTFLAGS and time cargo runs - #1018

Open
JeanMertz wants to merge 1 commit into
mainfrom
cargo-tools-rustflags-and-timing
Open

chore(tools): Align RUSTFLAGS and time cargo runs#1018
JeanMertz wants to merge 1 commit into
mainfrom
cargo-tools-rustflags-and-timing

Conversation

@JeanMertz

Copy link
Copy Markdown
Collaborator

Every cargo tool sets RUSTFLAGS, which replaces the rustflags list in .cargo/config.toml wholesale rather than adding to it. Only cargo_check and cargo_format were setting it, so cargo_test and cargo_expand compiled with a different flag set than their siblings. In a workspace relying on those config flags, alternating between the two groups invalidated a shared target directory and forced a full rebuild each time.

All four compiling tools now set the variable, and a new options.rustflags appends to the -W warnings base so a workspace can restate the flags it needs. A malformed value is refused rather than dropped, matching how options.root already behaves: compiling with flags the caller believes are in effect is worse than refusing to compile.

Each invocation is also timed, with the duration appended to successes and failures alike. "Check succeeded" reads identically after a warm cache and after a three-minute rebuild, and the elapsed time is the only thing that tells them apart.

Every cargo tool sets `RUSTFLAGS`, which replaces the `rustflags` list
in `.cargo/config.toml` wholesale rather than adding to it. Only
`cargo_check` and `cargo_format` were setting it, so `cargo_test` and
`cargo_expand` compiled with a different flag set than their siblings.
In a workspace relying on those config flags, alternating between the
two groups invalidated a shared target directory and forced a full
rebuild each time.

All four compiling tools now set the variable, and a new
`options.rustflags` appends to the `-W warnings` base so a workspace
can restate the flags it needs. A malformed value is refused rather
than dropped, matching how `options.root` already behaves: compiling
with flags the caller believes are in effect is worse than refusing to
compile.

Each invocation is also timed, with the duration appended to successes
and failures alike. "Check succeeded" reads identically after a warm
cache and after a three-minute rebuild, and the elapsed time is the
only thing that tells them apart.

Signed-off-by: Jean Mertz <git@jeanmertz.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant