Repository navigation
build(ci): pin Rust 1.99 and share Cargo acquisition policy - #4543
Conversation
|
bc2bd2b to
d8e95ad
Compare
There was a problem hiding this comment.
Note
Newer findings are available below. Devin Review posted a newer report on this PR, in addition to the findings presented here.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
…into t3/cargo-acquisition-fix
`--strategy=TestRunner=dynamic` cannot execute `local` tests, so release packager gates fail before the fixture runs.
Clippy 1.99 denies large_futures on the four pending-stop wrappers.
Keep master's parallel job start and 4543's feature-gates body.
The hosted Windows workspace build exhausted its disk while linking test and benchmark binaries. fastbuild already uses debuginfo=0, but the Rust toolchain still declared a PDB for every executable and the MSVC fastbuild feature requested /DEBUG:FASTLINK. Bazel retained copies in its output tree and disk cache. Set the toolchain strip mode coherently so the declared outputs match rustc, and disable the MSVC PDB feature in the Windows CI config. Keep debug builds, unoptimized CI compilation, all targets, and test assertions intact. Failure evidence: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/40262687638/job/121378315631
The generic cargo_bootstrap helper kills native provisioning after 600 seconds. Two cold hosted runs progressed through unique upstream dependencies until the cutoff: the latest compiled aws-config at 05:21:51 and aws-smithy-http-client at 05:22:08, then was killed at 05:22:30. It never reached workspace compilation or tests. Give the pinned optimized compiler build an explicit 30-minute budget within the existing 90-minute job. Keep the shared bootstrap artifacts, source checksum, locked dependency graph, and workspace test deadlines unchanged. This isolates the measured cold compiler cost from application test policy. Failure evidence: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/40271873114/job/121406236336
Bazel 9.3.1 pins rules_cc 0.2.17. Its feature resolver rejects an unsupported feature that another enabled feature unconditionally implies; the MSVC fastbuild feature implies generate_pdb_file, so disabling only the latter causes an analysis error. Disable the C toolchain fastbuild feature for both target and exec configurations. Preserve its /Od and /INCREMENTAL:NO settings explicitly, while omitting /Z7 and /DEBUG:FASTLINK. The Rust compilation mode and opt/debug/strip mappings, CRT selection, explicit dbg feature, and every CI target remain unchanged. Verified against rules_cc 0.2.17 cc/private/toolchain_config/configure_features.bzl and cc/private/toolchain/windows_cc_toolchain_config.bzl, and Bazel 9.3.1 src/MODULE.tools and CppOptions.java. git diff --check passes; hosted Windows CI will validate the complete action graph.
The failing Windows job restored an 11,695,764,148-byte action-cache archive produced by master with full PDB generation, then exhausted D: with only 7 MB free. Its restore prefix does not include compiler or linker flags, so the new action keys would leave those obsolete CAS entries beside freshly built outputs. Move only the Windows action cache to ci-windows-test-v2 with no fallback to the former prefix. Repository and dependency caches, every build/test target, and the existing cache save/verification policy remain intact. Evidence: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/40262687638/job/121378315631 and https://github.com/ScriptedAlchemy/tracedecay/actions/runs/40226853333/job/121314025643. Workflow YAML parsing and semantic comparison confirm that only the Windows cache generation changes; git diff --check passes.
# Conflicts: # .github/actions/setup-bazel/action.yml
# Conflicts: # .bazelrc # .github/workflows/ci.yml # MODULE.bazel
There was a problem hiding this comment.
Devin Review found 1 new potential issue.
⚠️ 1 issue in files not directly in the diff
⚠️ Automation stale-lock setting has no effect
Setting stale_lock_secs succeeds, but AutomationTaskLock::try_acquire ignores it for every task. Operators cannot use the accepted setting to change lock recovery.
1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
Bazel now uses Rust 1.99.0 consistently for compilation and Cargo dependency queries. The generator runs with declared Cargo and rustc tools and shares a narrow Git acquisition policy with crate-universe. This removes its PATH/rustup selection and the runtime policy gap exposed by cold CI resolution.
Releases retain the fleet selected by their outer setup through
prepared-build. Fleet enrollment and coordinator probing preserve the existing infrastructure fallback behavior. The native Git startup future is boxed at the Rust 1.99 layout failure. Production feature isolation is checked during the generator's existing locked resolution; Feature gates runs the parser and policy tests.Validation:
--checkafter merging current master confirmed all 60 generated BUILD files are current.The manual Blaze experiment remains uncommitted. No Blaze-edited CLI or edit speedup is established, and this PR does not enable a Blaze worker.