- Quick Start Setup
- Testing Quick Start
- Open Contribution and Assigning tickets
- Choosing What Kind of Test to Write
- Before Submitting a PR
- Reviewing Pull Requests
- Contributor Guide
- Architecture Guide
Before you start work on an issue, you MUST follow the instructions in Open Contribution and Assigning tickets. You must ensure duplicate work is not being created. Do not create multiple PRs if this is your first time contributing.
Before committing any changes, you MUST follow the instructions in Before Submitting a PR and ensure the required checks listed there pass. Do not commit code that fails any of those checks.
At a minimum, you MUST run and fix any errors from these commands before committing:
# Format code
cargo fmt --all
# Lint (must pass with no warnings)
cargo clippy --all-targets --all-features -- -D warningsYou can also run the full lint suite used by CI:
./dev/rust_lint.sh
# or auto-fix: ./dev/rust_lint.sh --write --allow-dirtyWhen creating a PR, you MUST follow the PR template.
When adding tests, you MUST follow Choosing What Kind of Test to Write:
If documentation files changed then run
./ci/scripts/doc_prettier_check.sh --write --allow-dirtyOtherwise, run extended tests
RUST_BACKTRACE=1 cargo test --profile ci \
--exclude datafusion-examples --exclude datafusion-benchmarks --exclude datafusion-cli \
--workspace --lib --tests --bins \
--features avro,json,backtrace,extended_tests,recursive_protection,parquet_encryptionFor modified code identify local benchmarks(if any) and run them against main. See Benchmarks.
Repository-specific agent skills live under .ai/skills/. Each subdirectory is
a single skill with a SKILL.md (YAML frontmatter + body). Check that
directory for applicable skills before working on a task; new skills go in
.ai/skills/<skill-name>/SKILL.md.