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]

Reply via email to