Skip to content

Add Local Scripts to Reproduce Full CI and Perform Auto-Fixes #19227

Closed

Description

@2010YOUY01

Is your feature request related to a problem or challenge?

Motivation

AI coding agents are now capable of handling many simple, mechanical tasks in DataFusion. When assigning such tasks, it would be ideal if these agents could verify locally that their changes pass the full CI suite before opening a PR. Currently, the only way to check CI results is to submit a PR and wait for all remote CI jobs to complete, which can take around an hour and slows down iteration.

To improve this workflow, we should provide a simple script that reproduces the entire CI pipeline locally:

./dev/ci.sh # Run full CI locally

Without such a script, AI agents must infer CI behavior from configuration files and may spend unnecessary time/tokens running CI jobs one by one.

Note now we already have a ./dev/rust_lint.sh for all lint related checks, but it's not complete yet, and not include various tests. A full CI reproducing script should be wrap all existing CI test steps into scripts, and use them both in the local CI runner script, and also the GitHub workflow configuration .ymls.

Auto-Fix Script

We should also provide a companion script that performs best-effort automatic fixes:

./auto-fix.sh

This script would handle routine cleanups such as:

  • running cargo fmt
  • generating docs
  • adding Apache headers to newly added files
  • applying safe Clippy auto-fixes
  • any other common mechanical steps

This improves developer experience, and also make AI coding agent iterate faster and spend less token.

Describe the solution you'd like

No response

Describe alternatives you've considered

No response

Additional context

No response

Activity

  1. shifluxxc commented on Dec 10, 2025

    @shifluxxc
    Contributor

    take

  2. shifluxxc commented on Dec 10, 2025

    @shifluxxc
    Contributor

    untake

  3. geoffreyclaude commented on Dec 10, 2025

    @geoffreyclaude
    Contributor

    ./auto-fix.sh would definitely be super useful! I'd wire it up to be a git commit hook.

  4. adriangb commented on Dec 20, 2025

    @adriangb
    Contributor

    I’m very much in favor of this

  5. adriangb commented on Dec 20, 2025

    @adriangb
    Contributor
  6. alamb commented on Mar 18, 2026

    @alamb
    Contributor

    I think @2010YOUY01 has basically completed this and the scripts are here: https://github.com/apache/datafusion/tree/main/ci/scripts

    I also have a PR here to try and make them easier to find

    So let's close this issue for now and we can file a new ticket for any other new work

  7. 2010YOUY01 commented on Mar 19, 2026

    @2010YOUY01
    MemberAuthor

    I think @2010YOUY01 has basically completed this and the scripts are here: https://github.com/apache/datafusion/tree/main/ci/scripts

    I also have a PR here to try and make them easier to find

    So let's close this issue for now and we can file a new ticket for any other new work

    Now only the script for non-functional(e.g. lints) tests is done, we can do something similar for regular tests. Filed another issue to track:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions