Skip to content

Evaluate CI shape changes for faster builds #113

@acgetchell

Description

@acgetchell

Summary

Consider larger CI-shape changes that could reduce pull-request wall-clock time without reducing coverage, correctness, or platform confidence.

This is intentionally separate from the low-risk CI speedup issue for example execution, Clippy target shaping, and nextest adoption.

Candidate changes

  • Split full correctness validation from portability smoke checks.
    • Keep the project-supported development platforms meaningful.
    • Evaluate whether every heavy repository-wide check needs to run identically on every OS, or whether some OS jobs should run targeted Rust portability validation plus selected full checks.
  • Move benchmark compile validation out of the default main CI path or isolate it.
    • Preserve benchmark harness coverage.
    • Consider a benchmark-compile job that is path-filtered to src/**, benches/**, Cargo.toml, and Cargo.lock.
    • Avoid losing feature-gated benchmark coverage.
  • Run repository tooling checks once where portability does not matter.
    • Candidates may include Markdown, TOML, YAML/CFF, Semgrep, Python tooling, shell linting, actionlint, and citation checks, depending on this repository's tooling.
    • Keep local comprehensive validation available for developer confidence.

Constraints

  • Do not reduce test, benchmark, or example compile coverage without an explicit replacement.
  • Preserve platform confidence for supported development environments.
  • Preserve feature-gated bench/example coverage.
  • Measure before/after job timings so the trade-off is visible.

Possible acceptance criteria

  • CI wall-clock time improves meaningfully on pull requests.
  • Required checks still catch benchmark harness, example, doctest, lib-test, integration-test, and feature-gated compile failures.
  • The workflow documents which checks are portability-sensitive and which are repository tooling checks.
  • The local comprehensive validation command remains available.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions