Repository navigation
ci: aggressive log legibility — cut noise so real failures stand out - #67
Merged
Merged
Conversation
The hermetic LLVM toolchain correctly scopes --unwindlib=none to link actions, but the clang++ driver still emits 'argument unused during compilation: --unwindlib=none' on the exec-config ([for tool]) link steps where it is a no-op (process_wrapper, cargo_build_script_runner, ...). That benign warning is printed on effectively every tool compile, burying real failures under thousands of lines of log noise. Suppress it with -Wno-unused-command-line-argument on link + host_link opts. Verified by A/B cold build of //nativelink-error: 3 warnings without, 0 with. First slice of the CI warning-clean workstream (TRA-1385).
- MODULE.bazel: remove compatibility_level = 0, which Bazel reports as a no-op it will remove in a future release (one WARNING per invocation). - multi_worker_cas_test / connection_manager_test: these integration tests aren't linted by CI's Bazel clippy aspect, so they'd drifted. Auto-fixable lints fixed; the intentional test-only patterns (raw tokio runtimes to simulate isolated workers, mid-fn test consts, small truncating casts) get a documented file-level allow. src stays strict. cargo clippy --workspace --all-targets: 19 errors -> 0. Part of the CI warning-clean workstream (TRA-1385).
Make CI logs scannable so a real warning/failure stands out instead of being buried under per-action compile progress and per-test PASSED chatter. New --config=nl-quiet group (presentation-only; never hides warnings/errors): noshow_progress, show_result=0, test_summary=terse. Wired into the Bazel Dev (nix), sanitizers, and Bazel Native lanes. Verified: the nativelink-store test suite log drops from 56 lines to 10; on the full //... suite the ratio is larger. Opt-in via --config so local interactive builds keep live progress. Part of the CI warning-clean / log-legibility workstream (TRA-1385).
This comment has been minimized.
This comment has been minimized.
The previous suppression was scoped to --config=nl-toolchain, but the sanitizer and Bazel-Native lanes activate the same @llvm clang via --extra_toolchains (not nl-toolchain), so the warning still spammed those logs. Move the -Wno-unused-command-line-argument link/host_link opts to unconditional .bazelrc lines so every lane (and local builds) get them.
RBE toolchain-example lanes get raw --noshow_progress/--show_result=0 (separate workspace, mixed test/build); LRE gets --config=nl-quiet.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
The aggressive version of the CI log-legibility work (TRA-1385). Goal: a real
warning or failure is visible at a glance, not after grepping megabytes.
Superset of #66 — if this is approved, #66 is redundant and should be closed.
nl-quietlog reduction (new). A presentation-only--configgroup —noshow_progress,show_result=0,test_summary=terse— wired into theBazel Dev, sanitizers, and Bazel Native lanes. Suppresses only progress and
per-test PASSED chatter; never hides a warning, error, or the compiler output
preceding them. Opt-in via
--config, so local builds keep live progress.--unwindlib=nonesuppression, applied unconditionally in.bazelrc.The hermetic LLVM toolchain scopes the flag to link actions correctly, but
clang++ still prints "argument unused during compilation" on exec-config
(
[for tool]) links where it's a no-op. Unconditional (not--config-scoped)so it also covers the sanitizer and Bazel-Native lanes, which activate the
same
@llvmclang via--extra_toolchainsrather than--config=nl-toolchain.compatibility_level = 0removal (Bazel's own "no-op, remove it" WARNING).cargo clippy --workspace --all-targets19 errors → 0; documented allows for intentional test-only patterns).
How was this verified?
nativelink-storetest suite log drops from 56 lines to10; on the full
//...suite the ratio is larger.--config=nl-toolchain: 3 warningswithout the suppression, 0 with. And a cold
--config=asanbuild (the lanethat was still spamming them) now emits 0 — confirming the unconditional
placement reaches the non-nl-toolchain lanes, which the earlier scoped version
did not.
cargo clippy --workspace --all-targets→ 0 errors.Risk
Low.
nl-quietis presentation-only and opt-in; the unwindlib change onlysuppresses a provably-benign driver warning; compatibility_level is a Bazel
no-op; the clippy changes touch only test files. No behavior change to shipped
code. Two opinionated follow-ups (a warning ratchet to keep this from
re-rotting, and failure-surfacing to
$GITHUB_STEP_SUMMARY) are held for yourcall — they change CI policy, so I'd rather you pick the gate than land it
unilaterally.
Deliberately out of scope (flagged, not touched): the
-Wbuiltin-macro-redefinedwarnings (x3, asan/native lanes only) from aws-lc-sys's bindgen — tested and
confirmed
--copt/--host_coptdo NOT reach bindgen's libclang, so the fix isclang_flagson the external@rules_rs//3rd_party/aws-lc-sysbindgen target(a patch-override, not a warning-config change). Also:
generic-array(6-deeptransitive under aws-sdk-s3; needs the RustCrypto/AWS migration), the external
flake's
stdenv.isDarwin, and the maintainer'sworkspace.cargo-features-managerkeep-list (a real feature-prune safety net, and it only warns on
cargo).AI assistance
Claude (Fable 5) did the tracing, implementation, and A/B verification from my
direction; I reviewed every line. Flagged for core-team review before merge.