Author: Lucien Huber <im@lcnbr.ch>
Committer: GitHub <noreply@github.com>
reduce NixCI cache transfers and consolidate CI tooling (#108) * extract rust workspace build machinery Move the existing Rust workspace derivations into nix/rust-workspace.nix and pass the repository root explicitly. Keep this mechanical extraction separate from the CI behavior changes. Original implementation: 31c48cba4. User request: so I think we've reached a good place, can we consolidate all these branches? * report CI timings, cache transfers and interrupted work Collect required-check and whole-suite timings, per-job transfers and Cargo activity. Preserve retries, replaced logs and incomplete evidence without treating worker minutes as billing or restored content as network bytes. Consolidate the existing validated collector and tests. User request: so I think we've reached a good place, can we consolidate all these branches? * reuse per-crate artifacts and focus CI on required checks Generate the selected CI graph, keep per-crate compilation and compatible compiler-state reuse, compress artifact handoffs, share test/check and Python dependencies, and avoid eager artifact downloads for cached test results. Retain public flake outputs and independent test groups. Add explicit local CI uploads adapted from Syd's PR 105 and synchronous discovery as discussed in PR 104. The final files match the validated dd6ba7686 implementation; experimental grouping and rejected cache modes are excluded. User request: so I think we've reached a good place, can we consolidate all these branches? * skip draft workflows and cancel superseded PR runs Preserve existing branch filters and merge-queue coverage while enabling ready-for-review and manual triggers, draft guards and cancellation of superseded PR runs. User request: so I think we've reached a good place, can we consolidate all these branches? * consolidate CI measurements and rollout guidance Retain historical measurements and add the final cached-run comparison, current implementation decisions, validation, branch provenance and rebase instructions. Preserve the published compiler-cache baseline and all unfinished experiments. User request: so I think we've reached a good place, can we consolidate all these branches? * organize just recipes and document local CI uploads User requests: can you add some contributing instructions on using just check and upload? can we also consolidate that justfile * consolidate CI documentation and retain report evidence in history User request: there is a huge amount of md an json added, scripts etc. Can we consolidate that too? * fix Rust 1.98 Clippy warnings and watch imported just recipes User request: It fails CI * simplify Rust workspace build definitions Reuse upstream Crane buildDepsOnly with artifact inheritance, share dependency components with CI scheduling, consolidate workspace checks, and remove unused helpers and redundant artifact-builder settings. All 413 public derivation/output pairs remain identical across the three supported platforms. The cached graph/configuration check passes locally. User request: also does the nix/rust-workspace.nix need to be so huge? KISS * update flake inputs to Rust 1.98.1 Refresh Fenix and nixpkgs with nix flake update. Crane and the explicit compiler-state baseline pin remain unchanged. User request: nix/rust-workspace.nix is huge, is that really all necessary? Also Update to latest rust by nix flake update * use current nixpkgs platform predicates Replace the deprecated stdenv.isDarwin alias with hostPlatform.isDarwin. All 413 evaluated derivation/output pairs remain identical. User request: nix/rust-workspace.nix is huge, is that really all necessary? Also Update to latest rust by nix flake update * deduplicate Rust workspace source and manifest definitions Share source-category selection and per-package source metadata, consolidate three synthetic Cargo manifest templates, and use existing genAttrs operations. Remove 88 lines without changing build inputs, commands, features or cache keys. All 413 public derivation/output pairs across three supported platforms remain identical. Temporary FeynKit integration preserves all 178 pairs in each of three scenarios: clean, GammaLoop source edit and CFF source edit. Selected CI checks pass from cache. No Cargo manifests or tests are changed. User request: yes, also we can think about simplifying the actual features/ cargo.toml setup too right? * simplify cargo test dependencies Remove unused macro dependencies and circular test dependencies, refresh Hakari, and inherit the existing CI profile overrides. Preserve test inventories and per-crate Nix cache boundaries; regenerate CI metadata and document local results. Validation: 631-test direct local pair 6m52s -> 6m13s; check then tests 10m31s -> 7m12s. Selected Nix suite passed 1,633 runtime tests, 43 doctests and static checks. FeynKit graph/cache boundaries evaluated; no remote run. User request: Yeah let’s explore and then test locally