Skip to content

test: lock exact file-version wire contracts - #8019

Merged
Xuanwo merged 10 commits into
mainfrom
xuanwo/exact-version-stack-02-fixtures
Jul 29, 2026
Merged

test: lock exact file-version wire contracts#8019
Xuanwo merged 10 commits into
mainfrom
xuanwo/exact-version-stack-02-fixtures

Conversation

@Xuanwo

@Xuanwo Xuanwo commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Part 2/12 of #7877. Builds on merged #7879.

This is an independently reviewable step toward the final layout demonstrated in #7979.

Before moving reader and writer ownership, this PR locks stable file bytes and reader behavior with checked-in baseline fixtures for V1, V2.0, V2.1, and V2.2. Each stable standard writer must reproduce its fixture byte-for-byte, and the current readers validate every logical column and row across primitive, nullable UTF-8, nullable list, nullable dictionary, blob, multi-batch, and multi-page data.

V2.0 also has independent self-described and mini-Lance fixtures: the standard writer preserves footer (0, 3), while both embedded forms preserve (2, 0). The V1 assertion explicitly preserves its historical null materialization semantics.

The fixtures are reproducible from locked baseline commit 3a72f8a61e14613f517dded6816d4bfc77817c93; the checked-in generator requires two separate runs to agree before accepting the bytes. V2.3 remains unstable, so it has current-revision determinism and round-trip coverage instead of a historical fixture. No production dispatch changes are included.

@github-actions github-actions Bot added A-encoding Encoding, IO, file reader/writer chore labels Jul 27, 2026
Base automatically changed from xuanwo/exact-file-format-identity to main July 29, 2026 04:51
@Xuanwo
Xuanwo marked this pull request as ready for review July 29, 2026 05:33
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@Xuanwo
Xuanwo merged commit ca8803d into main Jul 29, 2026
37 checks passed
@Xuanwo
Xuanwo deleted the xuanwo/exact-version-stack-02-fixtures branch July 29, 2026 08:07
Xuanwo added a commit that referenced this pull request Jul 29, 2026
Part 3/12 of #7877. Builds on merged #8019.

This is an independently reviewable step toward the final layout
demonstrated in #7979.

This PR makes `lance-file::versions::v1` the canonical owner of the
frozen V1 reader, writer, metadata, page table, and encoding grammar.
The ambiguous compiled `previous` namespace and `lance_io::encodings`
compatibility layer are removed. V1 keeps its historical byte-buffer
materialization private; legacy IVF payload I/O remains explicitly owned
by its index format, while protobuf tensor conversion validates its own
byte contract. No general Arrow conversion API is introduced.

Manifest dictionary materialization now dispatches once on the exact
manifest version and delegates V1 bytes to the V1 implementation.
Current-format readers and writers are not reorganized here, and no
later-version dispatch API is introduced.

V1 wire behavior remains fixed by the checked-in fixtures from #8019.
The historical `lance.file.previous.*` cache-key identifiers are
intentionally retained because they are persisted cache identity, not
source-level ownership.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-encoding Encoding, IO, file reader/writer chore

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants