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]

Reply via email to