andygrove opened a new issue, #33: URL: https://github.com/apache/datafusion-iceberg/issues/33
### Is your feature request related to a problem or challenge? Several DataFusion repositories have an `AGENTS.md` that gives coding agents repository-specific instructions: [apache/datafusion](https://github.com/apache/datafusion/blob/main/AGENTS.md), [apache/datafusion-comet](https://github.com/apache/datafusion-comet/blob/main/AGENTS.md), [apache/datafusion-python](https://github.com/apache/datafusion-python/blob/main/AGENTS.md) and [apache/datafusion-sqlparser-rs](https://github.com/apache/datafusion-sqlparser-rs/blob/main/AGENTS.md). The first three also symlink `CLAUDE.md` to it. apache/iceberg-rust has [one](https://github.com/apache/iceberg-rust/blob/main/AGENTS.md) as well, but it lives at the repository root, so it didn't move with this crate. This repository has none. Agents working here have to work out how CI builds and tests the code, and they miss conventions that aren't visible from any single file. ### Describe the solution you'd like Add an `AGENTS.md` at the repository root, following the same pattern as the other DataFusion repositories, and symlink `CLAUDE.md` to it. Suggested content: - **Checks to run before committing**, matching CI: `cargo fmt --all -- --check`, `cargo clippy --workspace --locked --all-targets -- -D warnings` and `cargo test --workspace --locked`, plus the RAT license check once #32 lands. - **Targeted test runs**: a single sqllogictest schedule (`cargo test -p iceberg-sqllogictest --test sqllogictests -- <schedule>`), and updating `expect_test` snapshots with `UPDATE_EXPECT=1`. - **Conventions that are easy to miss**: the workspace denies `unused_qualifications`, rustfmt uses `max_width = 90`, the toolchain version is pinned in both `rust-toolchain.toml` and `.github/actions/setup-rust/action.yml`, and new files need the ASF license header. - **Pointers to logic that spans several files**: - the catalog → schema → table provider hierarchy; - the `INSERT` pipeline (`project_with_partition` → `repartition` → `sort_by_partition` → `IcebergWriteExec` → `IcebergCommitExec`); - filter pushdown being `Inexact`, so a converted predicate may match extra rows but must never drop a matching one. - **The sqllogictest harness**: how schedules relate to `.slt` files, tables addressed as `default.default.<table>`, and `EXPLAIN` expectations that are updated by hand. - **The iceberg-rust dependency**: `iceberg` is pinned to a git revision, and DataFusion, iceberg-rust and Parquet must resolve to the same Arrow version. ### Additional context - With the RAT check proposed in #32, the file needs the ASF license header, as Comet's and iceberg-rust's have. - The other repositories' `AGENTS.md` files tell agents to follow the PR template. This repository doesn't have one yet; adding one, e.g. copied from apache/datafusion, would let `AGENTS.md` do the same. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
