Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
8030cf4
feat(spec): add unknown primitive type support (#2773)
manuzhang Sep 17, 2026
a1de3a1
chore: remove migrated DataFusion integration crates (#3228)
gabotechs Sep 17, 2026
5d2c755
fix: update rustls to 0.23.45 (#3244)
kevinjqliu Sep 17, 2026
492234e
ci: run security audit for merge queue (#3245)
kevinjqliu Sep 17, 2026
832a4eb
ci: fix Rust cache action casing for ASF allowlist (#3249)
blackmwk Sep 18, 2026
53eccc5
fix(cache): drop schema-id from the manifest-list cache key (#3235)
anoopj Sep 21, 2026
f3e41d5
feat(transaction): support transform-based sort orders (#2765)
viirya Sep 21, 2026
bb1e4a4
perf(expr): resolve row group stats once per eq/in/starts_with leaf (…
anoopj Sep 21, 2026
e694eea
Introduce invalid data error macro (#2928)
xanderbailey Sep 22, 2026
e5a1804
RFC: Stateful Transaction Action (#2620)
CTTY Sep 22, 2026
830bb88
fix(cache): drop format-version from the manifest-list cache key (#3259)
anoopj Sep 22, 2026
c9a25b2
fix(encryption) [18/N] wire in ags1 file length for tamper proofing (…
xanderbailey Sep 23, 2026
119fad9
ci: replace MinIO with RustFS for integration tests (#3273)
comphead Sep 24, 2026
9a2111a
fix(spec): format pre-epoch timestamptz values (#2892)
fallintoplace Sep 25, 2026
615af68
fix(expr): decode BYTE_ARRAY page-index bounds by field type (#3247)
anoopj Sep 26, 2026
f645758
feat(writer): add PositionDeleteInput builder (#3230)
laskoviymishka Sep 27, 2026
86d6618
ci: auto-label DataFusion issues and PRs (#3278)
kevinjqliu Sep 28, 2026
5a91091
chore: Extending collaborator list to help with review capacity (#3289)
comphead Sep 28, 2026
8cb2ade
fix(python): raise instead of panicking in the manifest bindings (#3241)
rambleraptor Sep 28, 2026
deab069
refactor(spec): make UnboundPartitionField fields private and carry s…
moomindani Sep 29, 2026
71e571e
refactor(reader): build Arrow reader metadata once (#3242)
kamcheungting-db Sep 30, 2026
36eae29
refactor(scan) move test utils to test_utils.rs (#3107)
xanderbailey Sep 30, 2026
de19a39
fix: avoid lost-wakeup hang in get_equality_delete_predicate_for_dele…
dhruvarya-db Oct 1, 2026
1960386
feat: add core COW rewrite primitive (#2752)
u70b3 Oct 1, 2026
fc682d7
fix(spec): Harden decimal and fixed type string parsing (#3256)
shoemoney Oct 2, 2026
e9c22bf
perf(arrow): skip rebuilding projected arrays without parent nulls (#…
fallintoplace Oct 2, 2026
ffa864b
fix(reader): page-index pruning drops rows for INT32/INT64 decimals (…
anoopj Oct 2, 2026
3c91b39
feat(catalog-loader): add with_runtime to BoxedCatalogBuilder (#3286)
NoahKusaba Oct 2, 2026
8e81f33
ci: check dependency licenses with cargo-deny on every PR (#3293)
comphead Oct 4, 2026
af1da4c
feat(storage-opendal)!: make the per-IO-operation timeout configurabl…
comphead Oct 4, 2026
ecba0b5
fix(transform): floor day transform for pre-epoch timestamps (#3323)
andygrove Oct 4, 2026
f2409e9
fix: fill schema-added nested columns with typed NULL arrays on read …
viirya Oct 6, 2026
78fafa9
fix(storage-azdls): drop the leading slash from relative paths (#3311)
yuhao-su Oct 6, 2026
05e03d1
chore(deps): Bump reqwest from 0.12.28 to 0.13.4 (#3321)
dependabot[bot] Oct 6, 2026
08cc698
chore(deps): Bump crate-ci/typos from 1.50.1 to 1.50.2 (#3320)
dependabot[bot] Oct 6, 2026
73cadf8
chore(deps): Bump zizmorcore/zizmor-action from 0.6.3 to 0.6.4 (#3319)
dependabot[bot] Oct 6, 2026
42f8d81
chore(deps): Bump astral-sh/setup-uv from 10.0.1 to 10.2.0 (#3318)
dependabot[bot] Oct 6, 2026
19f7057
chore(deps): Bump taiki-e/install-action from 2.87.8 to 2.87.21 (#3317)
dependabot[bot] Oct 6, 2026
4ee006f
chore(deps): Bump the codeql-action group with 2 updates (#3316)
dependabot[bot] Oct 6, 2026
ab047b5
chore(deps): Bump urllib3 from 2.7.0 to 2.8.0 in /bindings/python (#3…
dependabot[bot] Oct 6, 2026
776648b
docs: add agent guidance to reduce verbosity (#3337)
kevinjqliu Oct 8, 2026
7f9691f
feat(rest_catalog::auth) Contextual Sessions (#3081)
DerGut Oct 8, 2026
49b91d1
chore: Remove generated DEPENDENCIES.rust.tsv files, and associated s…
dannycjones Oct 9, 2026
b0d8baa
fix(scan): validate deletion vector delete tasks (#3145)
linhongyu510 Oct 9, 2026
5b82ab9
perf(manifest): upgrade to apache-avro 0.22 and read manifest entries…
mbutrovich Oct 9, 2026
3c952e1
feat(reader): page-index pruning for FIXED_LEN_BYTE_ARRAY decimals (#…
anoopj Oct 9, 2026
1f3bc34
fix(spec): treat -0.0 and 0.0 as distinct float literals (#3327)
zhangfengcdt Oct 9, 2026
e8ec7f8
chore(release): port the dependency license check from shell to Pytho…
dannycjones Oct 9, 2026
b846751
feat(rest): add a SigV4 request signer (#3082)
plusplusjiajia Oct 9, 2026
b2e9075
chore(deps): Bump fsspec from 2026.4.0 to 2026.6.0 in /bindings/pytho…
dependabot[bot] Oct 9, 2026
e42840b
test(reader): widen FLBA decimal page-index coverage and clarify docs…
anoopj Oct 11, 2026
d63e861
fix(scan): reject ambiguous case-insensitive fields (#3070)
manuzhang Oct 11, 2026
a766783
feat(RTAS) Assign fresh ids (#3066)
xanderbailey Oct 11, 2026
050ddfd
fix(arrow): reconcile evolved nested structs by field id, not positio…
ewoodbury Oct 11, 2026
2fddb16
fix(spec): reject boolean literals for non-boolean types (#3334)
fallintoplace Oct 11, 2026
9092073
fix(arrow): strip metadata from nested fields and normalize container…
NoahKusaba Oct 11, 2026
d3e9f45
perf(reader): read leaf field IDs from metadata in the projection mas…
comphead Oct 11, 2026
acd6109
perf(reader): speed up row group filtering and name mapping (#3269)
fallintoplace Oct 11, 2026
6933390
fix(arrow): decode short BYTE_ARRAY decimal row-group stats (#3364)
DeviousCardi Oct 12, 2026
b55cda1
fix(reader): apply name mapping to nested fields (#3384)
comphead Oct 12, 2026
b154603
fix(transform): correct decimal and binary truncate literals (#3243)
advancedxy Oct 12, 2026
1270e32
chore(deps): Bump quinn-proto and event-listener to fix RUSTSEC advis…
CTTY Oct 14, 2026
5afddc5
Merge remote-tracking branch 'upstream/main' into gb/merge-upstream-2…
gbrgr Oct 15, 2026
47e4e76
Converge pipeline.rs's open/schema-resolution boundary with upstream'…
gbrgr Oct 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ github:
- c-thiel
- mbutrovich
- CTTY
- comphead
ghp_branch: gh-pages
ghp_path: /
copilot_code_review:
Expand Down
12 changes: 12 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,15 @@ When reviewing pull requests, follow these rules to avoid noise and redundancy:
- First-time contributors: For users new to this repository,
explicitly instruct them to "Please check and address all review
comments in this PR."

Also flag these, once per PR with the locations:

- Comment churn: Code comments or docs that restate the code, narrate
history, or justify review decisions.
- Unrelated edits: Renames, reformatting, or reordering of code the
change does not otherwise need.
- Duplication: New helpers, types, or tests that duplicate existing ones.
- API growth: New public API the change does not need. Check new entries
in `public-api.txt`.
- PR description: Descriptions that restate the diff or pad the
template. Mention it in the review summary.
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
# specific language governing permissions and limitations
# under the License.

[engines]
df = { type = "datafusion" }

[[steps]]
engine = "df"
slt = "df_test/create_table.slt"
# Issue and pull request labeler configuration: https://github.com/github/issue-labeler
# Labels issues and PRs whose title or body matches the regex.
datafusion:
- '/datafusion/i'
5 changes: 1 addition & 4 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ on:
- "**/Cargo.lock"

pull_request:
paths:
- "**/Cargo.toml"
- "**/Cargo.lock"
- ".github/workflows/audit.yml"
merge_group:

schedule:
- cron: '0 0 * * *'
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/bindings_python_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
version: "0.9.3"
enable-cache: true
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:
uses: $/.github/actions/setup-builder
- name: Cache Rust artifacts
if: runner.os != 'Linux'
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
key: bindings-python
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
Expand All @@ -98,7 +98,7 @@ jobs:
working-directory: "bindings/python"
command: build
args: --out dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
version: "0.9.3"
enable-cache: true
Expand Down
23 changes: 15 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,13 @@ jobs:

- name: Install lint tools
# Keep versions in sync with the local install targets in Makefile.
uses: taiki-e/install-action@d438492cf8a250514fa2d34b30bc3c0dc37c65ff # v2.87.8
uses: taiki-e/install-action@4cef1412cce204788f482e778a0b9187f9626a29 # v2.87.21
with:
tool: taplo@0.9.3,cargo-machete@0.7.0
tool: taplo@0.9.3,cargo-machete@0.7.0,cargo-deny@0.19.9

- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: 3.12

- name: Check License Header
uses: apache/skywalking-eyes/header@a196742f472feaffafea537ce5a2a4c3c53a8de4 # v0.9.0
Expand All @@ -79,6 +83,9 @@ jobs:
- name: Check crates package LICENSE and NOTICE
run: make check-license-notice

- name: Check dependency licenses
run: python3 ./dev/release/licenses.py dependencies check

# Trusted publishing cannot create a crate (https://crates.io/docs/trusted-publishing),
# so a new publishable crate must be reserved on crates.io before it is merged.
# See "Adding a new crate" in website/src/release.md.
Expand All @@ -99,7 +106,7 @@ jobs:
run: cargo machete

- name: Check typos
uses: crate-ci/typos@d43b6c087ac471e2ea7b8af622ff15f05c0c365b # v1.50.1
uses: crate-ci/typos@512fc24f32f44ab01972217aaaf3dc86ec234d53 # v1.50.2

clippy:
needs: lint
Expand Down Expand Up @@ -137,7 +144,7 @@ jobs:
uses: $/.github/actions/setup-builder

- name: Cache Rust artifacts
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

Expand All @@ -158,7 +165,7 @@ jobs:
uses: $/.github/actions/setup-builder

- name: Cache Rust artifacts
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

Expand Down Expand Up @@ -199,7 +206,7 @@ jobs:
uses: $/.github/actions/setup-builder

- name: Cache Rust artifacts
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

Expand Down Expand Up @@ -228,14 +235,14 @@ jobs:
uses: $/.github/actions/setup-builder

- name: Cache Rust artifacts
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
key: ${{ matrix.test-suite.name }}
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

- name: Install cargo-nextest
if: matrix.test-suite.name == 'default'
uses: taiki-e/install-action@d438492cf8a250514fa2d34b30bc3c0dc37c65ff # v2.87.8
uses: taiki-e/install-action@4cef1412cce204788f482e778a0b9187f9626a29 # v2.87.21
with:
tool: cargo-nextest

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ jobs:
persist-credentials: false

- name: Initialize CodeQL
uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
languages: actions

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
category: "/language:actions"
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
Expand All @@ -14,14 +15,28 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

[engines]
df = { type = "datafusion" }
name: "Issue and Pull Request Labeler"
on:
issues:
types: [opened, edited]
pull_request_target: # zizmor: ignore[dangerous-triggers]
types: [opened, edited]

[[steps]]
engine = "df"
slt = "df_test/insert_into.slt"
permissions:
contents: read
issues: write
pull-requests: write

[[steps]]
engine = "df"
slt = "df_test/like_predicate_pushdown.slt"
jobs:
triage:
if: github.repository_owner == 'apache'
runs-on: ubuntu-slim
steps:
- uses: github/issue-labeler@ccca1e16fcb66762200e616fc29b57b940c1cb67 # v3.5
with:
configuration-path: .github/labeler.yml # label -> regex rules
enable-versioned-regex: 0 # required; 0 = no versioned configs
include-title: 1 # match title
include-body: 1 # match body (default)
2 changes: 1 addition & 1 deletion .github/workflows/public-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
uses: $/.github/actions/setup-builder

- name: Cache Rust artifacts
uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
save-if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_python.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
Expand Down Expand Up @@ -190,7 +190,7 @@
working-directory: "bindings/python"
command: build
args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
version: "0.9.3"
enable-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release_python_nightly.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
Expand Down Expand Up @@ -124,7 +124,7 @@
command: build
args: --release -o dist -i python3.12 # Explicitly set interpreter; manylinux containers have multiple Pythons and maturin may pick an older one

- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
with:
version: "0.9.3"
enable-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/zizmor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ jobs:
persist-credentials: false

- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@70fb788f84895a7701f5643d103d587e460b5c99 # v0.6.3
uses: zizmorcore/zizmor-action@cc914d7f3750a2d13d75c7f184a1060aa0e9d482 # v0.6.4
with:
advanced-security: false
2 changes: 0 additions & 2 deletions .licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ header:
- "**/*.json"
# Generated content by mdbook
- "website/book"
# Generated content by scripts
- "**/DEPENDENCIES.*.tsv"
# Generated content by cargo-public-api
- "**/public-api.txt"
# Generated content by trybuild
Expand Down
38 changes: 38 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,44 @@
This file provides repository-specific guidance for automated agents working
in this repository.

## Comments, docs, and diff scope

Default to no comment. Leave existing comments as they are unless you change
the code they describe or they are wrong.

- Comment only what the code cannot say: invariants, non-obvious
constraints, links to external behavior. Do not restate the code.
- Do not describe how the code changed or explain review history
("previously", "instead of", "unlike X"). Put that in the commit message
or PR description.
- Public items get a one-line doc summary of what they do for the caller,
not how. Expand only for contract the caller must know, such as the
errors it returns (`# Errors`) or when it panics (`# Panics`).
- Test names say what they check. Do not narrate asserts.
- Cover the edge cases and error paths the change adds, not only the
happy path.
- Build the expected value and assert equality with it, rather than
checking fields one at a time.
- Do not add tests that duplicate existing coverage.
- Do not rename, reformat, refactor, or reorder code unrelated to the
change. A bug fix does not carry an API redesign.
- Reuse existing helpers, types, and test fixtures (such as
`TableTestFixture`) before adding new ones. Use arrow-rs kernels
instead of reimplementing them.
- Use the narrowest visibility that works. Make items `pub` only when they
are part of the API the change intends to expose. Run
`make generate-public-api` to update each crate's `public-api.txt`, and
check its diff for API growth.

## Pull requests

- Follow the PR template. Keep each section short: the problem, the
approach, and anything a reviewer would not guess from the diff. In
AI Disclosure, name the areas of uncertainty or assumptions a reviewer
should focus on.
- Do not restate the diff: no file-by-file walkthroughs, per-function
summaries, or "changes made" checklists.

## Security Model

When assessing potential vulnerabilities or calibrating automated security
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/)
and this project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

### Breaking Changes

* `FileWrite::close`, `EncryptedOutputFile::write`, `ManifestListWriter::close`, and `PuffinWriter::close` now return `Result<io::FileMetadata>` instead of `Result<()>`. The returned size is the on-disk size, including encryption overhead. Custom `FileWrite` implementations must return the number of bytes stored.
* `EncryptedOutputFile::key_metadata()` is replaced by `key_metadata_with_saved_file_metadata(&FileMetadata)`. Pass the metadata returned by `write()` or the writer's `close()` to include the stored length before encoding key metadata.
* `EncryptedInputFile::metadata()` is now synchronous and derives the plaintext size from key metadata without a storage stat. Remove `.await` from calls to this method.
* AGS1 readers now require `StandardKeyMetadata::file_length` and reject missing or invalid lengths without falling back to a storage stat. AGS1-encrypted manifests, manifest lists, and Puffin files written by earlier development builds without this field must be rewritten using a build that can still read them before upgrading. This matches the Java client's read contract.
* `iceberg_catalog_loader::BoxedCatalogBuilder` has a new required method, `with_runtime`. Types implementing `CatalogBuilder` get it through the blanket impl; types implementing `BoxedCatalogBuilder` directly (for example, a wrapper around another `Box<dyn BoxedCatalogBuilder>`) must implement it, typically by forwarding the runtime to the builder they wrap.

## [v0.10.1] - 2026-07-28

* chore: Update crossbeam-epoch to 0.9.20, pin CI ruff version to 0.15.22 by @dannycjones in https://github.com/apache/iceberg-rust/pull/2911
Expand Down
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,14 @@ tested in CI and developers have reproducible builds.
In `Cargo.toml`, we specify the minimum version required to use iceberg-rust. This allows users to choose their
dependency versions without always upgrading to the latest.

Dependency licenses must comply with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html).
CI checks them against `deny.toml` with `cargo deny`; run `make check-dependency-licenses` to check locally. If a
license is rejected, find its category in the policy:

- Category A: add the license to `allow`.
- Category B: add a per-crate entry to `exceptions`.
- Category X: not allowed by ASF policy; do not take the dependency.

## Code of Conduct

We expect all community members to follow our [Code of Conduct](https://www.apache.org/foundation/policies/conduct.html).
Loading
Loading