kumarUjjawal opened a new pull request, #26735: URL: https://github.com/apache/datafusion/pull/26735
## Which issue does this PR close? No linked issue; this fixes the shared CI build configuration. ## Rationale for this change The shared Rust setup passes `-C incremental=false` to rustc. The [incremental option](https://doc.rust-lang.org/rustc/codegen-options/index.html#incremental) takes a directory path, so this enables incremental compilation and writes its state into directories named `false`. CI pays to produce this state even when the Cargo profile disables incremental compilation. ## What changes are included in this PR? Remove `-C incremental=false` from `RUSTFLAGS` and export [`CARGO_INCREMENTAL=0`](https://doc.rust-lang.org/cargo/reference/environment-variables.html#environment-variables-cargo-reads) from the shared setup action. Keep line-table debug information and the existing `Swatinem/rust-cache` configuration. ## What is the testing strategy for this PR? Executed the old and fixed setup actions against temporary Cargo projects. The old action creates a `false` directory; the fixed action emits no incremental compiler flag and creates no such directory. No permanent test was added for this CI environment change. ### Linux CI measurements Measured `cargo xtask ci step check workspace` with the existing `Swatinem/rust-cache` v2.9.2 in both configurations. The table uses only the `rust-cache` jobs from the linked runs. Both configurations checked `c61fb09ac123d669382287ceb7b8f36267fc4711`, with caches populated separately at its parent `fb7cf8e832bec8c09938a21ac09acd08a81df38c`. Measured runs restored those caches without saving new entries. Rust was pinned to 1.99.0 on four-vCPU `ubuntu-24.04` runners with image `20261023.334.3`. Three runs were collected per configuration. Restricting the comparison to the common AMD EPYC 7763 CPU model leaves two runs per configuration. Their medians were: | Metric | `-C incremental=false` | `CARGO_INCREMENTAL=0` | Reduction | |---|---:|---:|---:| | Build CPU time, user + system | 601.3 s | 491.9 s | 18.2% | | Build elapsed time | 167.3 s | 135.8 s | 18.8% | | Full measured job time | 206.0 s | 170.5 s | 17.2% | Before: [trial 1](https://github.com/kumarUjjawal/datafusion/actions/runs/40167731171/job/121092625963), [trial 3](https://github.com/kumarUjjawal/datafusion/actions/runs/40167731171/job/121092626197). After: [trial 1](https://github.com/kumarUjjawal/datafusion/actions/runs/40168521867/job/121094420551), [trial 3](https://github.com/kumarUjjawal/datafusion/actions/runs/40168521867/job/121094420513). Build CPU time comes from GNU `time` and includes the build process tree. Full job time includes setup, cache restore, measurement upload and post steps; it excludes queue time. The experiment omits the production job's downstream Cargo-check artifact archive/upload steps. Cache population is excluded from these warm-cache figures. This is a small sample of one CI workload, not a prediction for every job. Local validation passed: - `cargo fmt --all` - `cargo clippy --all-targets --all-features -- -D warnings` - `./dev/rust_lint.sh` - Required extended workspace tests, including the SQLLogicTest suite ## Are there any user-facing changes? No. This changes the CI compilation environment only. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
