Skip to content

Docs: Add format v3 implementation status - #18062

Open
manuzhang wants to merge 1 commit into
apache:mainfrom
manuzhang:codex/docs-v3-status
Open

manuzhang wants to merge 1 commit into
apache:mainfrom
manuzhang:codex/docs-v3-status

Conversation

@manuzhang

@manuzhang manuzhang commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

Refresh implementation status against the released Java 1.12.0, PyIceberg 0.12.0, Rust 0.11.0, Go 0.7.0, and C++ 0.4.0 libraries, and add format V3 coverage using per-version tabs. A data type counts as supported only when the library handles it in schemas and can read and write its values. Cells reflect released source and tests rather than main, so capabilities that exist only in unreleased commits are marked N. Closes #17308.

Test plan: Markdown lint across site and versioned source docs; focused MkDocs build and rendered-table/tab/link checks; git diff --check. The full lint wrapper failed refreshing dependencies; the focused build disabled remote asset downloads after font timeouts. Implementation tests were inspected, not rerun. Review-comment corrections were checked against each library's tagged release source.


AI Disclosure

  • Model: Claude Opus 5.5 (review-comment corrections and Rust 0.11.0 refresh)
  • Platform/Tool: Claude Code
  • Human Oversight: unreviewed
  • Prompt Summary: The status-page tables are AI-generated, including earlier revisions made with other tooling: audit released implementations, keep the tabbed per-version layout, refresh after recent releases including Rust 0.11.0, and apply reviewer corrections to the PyIceberg catalog and Go file IO cells.

@github-actions github-actions Bot added the docs label Sep 11, 2026
@manuzhang
manuzhang marked this pull request as draft September 12, 2026 14:46
@manuzhang
manuzhang marked this pull request as ready for review September 20, 2026 02:52
@RussellSpitzer

Copy link
Copy Markdown
Member

I think it's definitely good to add this information but i'm not quite sure about the format. Did we just not to copy the compatibility section for V3? Having multiple roles for support based on the version seems a little harder to read imho.

@manuzhang

Copy link
Copy Markdown
Member Author

Did we just not to copy the compatibility section for V3? Having multiple roles for support based on the version seems a little harder to read imho.

I think it will be easier to compare between versions. With more versions incoming, it's hard to maintain them copying almost identical table every time.

Comment thread site/docs/status.md Resolved
@manuzhang
manuzhang marked this pull request as draft September 21, 2026 02:02
Comment thread site/docs/status.md Resolved
@manuzhang
manuzhang force-pushed the codex/docs-v3-status branch 5 times, most recently from f1c6d5e to 1ef76e3 Compare September 21, 2026 15:35
@manuzhang
manuzhang marked this pull request as ready for review September 21, 2026 15:37
@manuzhang

Copy link
Copy Markdown
Member Author

@RussellSpitzer @nssalian I'm using tabbed table now. Each Table Spec gets its own tab or one merged tab if their contents are identical.

Comment thread site/overrides/status.html Resolved
@manuzhang
manuzhang force-pushed the codex/docs-v3-status branch 5 times, most recently from b7de469 to 3b666b3 Compare September 22, 2026 13:24

@wgtmac wgtmac left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

AI has proof-read the tables and reported some findings. Perhaps maintainers can double check? @kevinjqliu @zeroshade @liurenjie1024

Comment thread site/docs/status.md Resolved
Comment thread site/docs/status.md Resolved
Comment thread site/docs/status.md Resolved
Comment thread site/docs/status.md Resolved
Comment thread site/docs/status.md Resolved
@manuzhang
manuzhang force-pushed the codex/docs-v3-status branch 2 times, most recently from 9ddbaf3 to ff94458 Compare November 4, 2026 15:07
Track format v3 capabilities in per-version tabs and refresh the
implementation status against the released Java 1.12.0, PyIceberg
0.12.0, Rust 0.11.0, Go 0.7.0, and C++ 0.4.0 libraries, so the page
describes functionality users can rely on today.

Generated-by: Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@nssalian nssalian left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for the update @manuzhang. I checked, using AI, the cells against the release tags. The latest changes look right. 14 cells still don't match the released code. They were already wrong on main, but it'd be good to fix them here. Most are inline. Two are on rows outside the diff:

  • Line 295, REST updateNamespaceProperties: Rust should be N. update_namespace still returns FeatureUnsupported in 0.11.0 (crates/catalog/rest/src/catalog.rs:1035-1045).
  • Lines 384-389, Glue views: Java should be N. GlueCatalog doesn't implement ViewCatalog in 1.12.0 (GlueCatalog.java:83-84).

Comment thread site/docs/status.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Rust should be N. In 0.11.0 the REST update_namespace still returns FeatureUnsupported("Updating namespace not supported yet!")

Comment thread site/docs/status.md
| Avro | Y | N | N | N | Y |

## File IO

| Storage | Java | PyIceberg | Rust | Go | C++ |
|-------------------|------|-----------|------|----|------|
| Local Filesystem | Y | Y | Y | Y | Y |
| Hadoop Filesystem | Y | Y | Y | Y | N |
| S3 Compatible | Y | Y | Y | Y | N |
| Hadoop Filesystem | Y | Y | Y | N | N |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Rust should be N here too. In 0.11.0, parse_scheme in crates/storage/opendal/src/resolving.rs:56-69 accepts memory, file, s3, gcs, oss, azdls and hf only, and there's no hdfs feature in any Cargo.toml.

Comment thread site/docs/status.md
|------------------------|------|-----------|------|----|-----|
| Append data | Y | Y | Y | Y | Y |
| Write position deletes | Y | N | N | Y | Y |
| Write equality deletes | Y | N | Y | Y | Y |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Rust can write equality-delete files, but 0.11.0 has no transaction that commits them, so I think this should be N in both the V2 and V3 tabs.

Comment thread site/docs/status.md
| Operation | Java | PyIceberg | Rust | Go | C++ |
|-------------------|------|-----------|------|----|-----|
| Append data files | Y | Y | Y | Y | Y |
| Rewrite files | Y | Y | N | Y | Y |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

PyIceberg 0.12.0 doesn't have these as far as I can tell. UpdateSnapshot only exposes fast_append, merge_append, overwrite and delete. Nothing produces a replace snapshot, and there's no rewrite_manifests. The V3 tab already says N, so lines 174-175 and 183-184 could match it.

Comment thread site/docs/status.md
| Expire snapshots | Y | Y | Y | Y | Y |
| Manage snapshots | Y | Y | N | Y | Y |

=== "V3"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit: this tab is identical to "V1 - V2" above, so by the merge rule it could be a single "V1 - V3" tab like REST.

This branch has not been deployed

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: Implementation Status page missing Table Spec V3 breakdown

6 participants