Skip to content

docs: add AGENTS.md for coding agents - #34

Open
andygrove wants to merge 1 commit into
apache:mainfrom
andygrove:andygrove/agents-md
Open

andygrove wants to merge 1 commit into
apache:mainfrom
andygrove:andygrove/agents-md

Conversation

@andygrove

Copy link
Copy Markdown
Member

Which issue does this PR close?

Rationale for this change

Other DataFusion repositories give coding agents repository-specific instructions in an AGENTS.md. This repository has none, so agents have to work out how CI builds and tests the code, and they miss conventions that aren't visible from any single file.

What changes are included in this PR?

  • AGENTS.md, covering:
    • the checks CI runs, which should pass before committing, and how to run a single unit test, integration test or sqllogictest schedule
    • conventions that are easy to miss: unused_qualifications = "deny", rustfmt's max_width = 90, the toolchain version pinned in two places, and ASF license headers
    • the catalog → schema → table provider hierarchy, the read path and the soundness rule for Inexact filter pushdown, the INSERT pipeline, and error conversion
    • the sqllogictest harness: schedules, default.default.<table> names, pre-created tables, and hand-maintained EXPLAIN expectations
    • the iceberg-rust git dependency and Arrow/Parquet version alignment
  • CLAUDE.md as a symlink to AGENTS.md, as in apache/datafusion, apache/datafusion-comet and apache/datafusion-python.

The file describes main as it is today. #32 renames the crate and adds a RAT license check, so whichever of the two lands second will update AGENTS.md for those changes. RAT reads the CLAUDE.md symlink as a file without a license header, so #32 also excludes it, as Comet and datafusion-python do.

What is the testing strategy for this PR?

This PR only adds documentation. I ran each command it documents against this branch. The targeted unit, integration and sqllogictest runs pass, UPDATE_EXPECT=1 leaves the tree unchanged, and the playground starts with an --rc file and runs a query.

Are there any user-facing changes?

No.

Document how CI builds and tests the workspace, conventions that are
easy to miss, and the parts of the design that span several files,
following the AGENTS.md files in other DataFusion repositories.
Symlink CLAUDE.md to it, as apache/datafusion does.

Closes apache#33.
andygrove added a commit to andygrove/datafusion-iceberg that referenced this pull request Oct 1, 2026
apache#34 adds CLAUDE.md as a symlink to AGENTS.md. RAT reads symlinks in a
source tarball as files without a license header, so exclude it, as
apache/datafusion-comet and apache/datafusion-python do. AGENTS.md
itself carries the header and is still checked.

@gabotechs gabotechs left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Looks good, as the project evolves we'll likely need to adapt this file, which is fine.

About testing, I want to push for an easily-reviewable e2e testing approach based on integration tests.

If you agree that to be a good testing approach, it's probably worth adding some guidance here as well (not in this PR if this goes in first)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add an AGENTS.md like other DataFusion repositories

2 participants