Skip to content

feat: add mixed data file version capability - #8580

Open
Xuanwo wants to merge 1 commit into
mainfrom
xuanwo/mixed-file-versions-1-capability
Open

feat: add mixed data file version capability#8580
Xuanwo wants to merge 1 commit into
mainfrom
xuanwo/mixed-file-versions-1-capability

Conversation

@Xuanwo

@Xuanwo Xuanwo commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • reserve bit 256 for mixed V2 data file versions without adding it to the supported mask
  • keep this layer refusing mixed manifests until the per-file storage contract lands
  • add shared commit gates and sticky-capability plumbing needed for safe activation

Stack

  1. feat: add mixed data file version capability #8580 - capability reservation and commit gates
  2. feat: validate mixed V2 data file versions #8581 - capability activation, storage validation, and exact read dispatch
  3. feat: support per-operation V2 write targets #8582 - per-operation write targets
  4. feat: propagate exact V2 versions across dataset operations #8583 - dataset operation propagation
  5. feat: target exact V2 versions in compaction #8584 - compaction targets and binary copy policy
  6. feat: expose exact V2 versions in bindings #8585 - bindings, documentation, and rollout contract

Testing

  • cargo test -p lance-table feature_flags
  • cargo fmt --all -- --check
  • cargo clippy --all --tests --benches -- -D warnings

@github-actions

Copy link
Copy Markdown
Contributor

Important

This PR touches the Lance format specification.

Substantive changes to the format specification — the .proto definitions
and the spec docs under docs/src/format/ — require a PMC vote before merge.
Minor edits such as typo fixes, wording, or formatting are excluded; use your
judgment.

If this is a meaningful format change:

  • Start a vote following the Lance community voting process.
    Format specification modifications need 3 binding +1 votes (excluding the
    proposer), held on GitHub Discussions, with a minimum voting period of 1 week.
  • Once the vote passes, link the completed vote in this PR. It should not be
    merged until the vote is linked.

@github-actions github-actions Bot added A-format On-disk format: protos and format spec docs A-namespace Namespace impls enhancement New feature or request labels Aug 17, 2026
@Xuanwo
Xuanwo force-pushed the xuanwo/mixed-file-versions-1-capability branch from 67d1f56 to 901e1e9 Compare August 18, 2026 18:37
@github-actions github-actions Bot added the A-python Python bindings label Aug 18, 2026
@Xuanwo
Xuanwo force-pushed the xuanwo/mixed-file-versions-1-capability branch 2 times, most recently from a6324df to a1ed170 Compare August 20, 2026 10:27
@Xuanwo
Xuanwo marked this pull request as ready for review August 20, 2026 13:43
@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

lance-gatekeeper[bot]

This comment was marked as outdated.

@lance-gatekeeper lance-gatekeeper Bot added the K-changes Latest Gatekeeper recommendation requests changes. label Aug 20, 2026
@Xuanwo
Xuanwo force-pushed the xuanwo/mixed-file-versions-1-capability branch 3 times, most recently from bda4b4e to 187cc6d Compare August 20, 2026 14:26
@lance-gatekeeper lance-gatekeeper Bot removed the K-changes Latest Gatekeeper recommendation requests changes. label Aug 20, 2026
lance-gatekeeper[bot]

This comment was marked as outdated.

@lance-gatekeeper lance-gatekeeper Bot added the K-changes Latest Gatekeeper recommendation requests changes. label Aug 20, 2026
@Xuanwo
Xuanwo force-pushed the xuanwo/mixed-file-versions-1-capability branch from 187cc6d to 9ed0a00 Compare August 20, 2026 15:15
@Xuanwo
Xuanwo force-pushed the xuanwo/mixed-file-versions-1-capability branch from 9ed0a00 to 9e8b45b Compare August 20, 2026 15:22
@lance-gatekeeper lance-gatekeeper Bot removed the K-changes Latest Gatekeeper recommendation requests changes. label Aug 20, 2026

@lance-gatekeeper lance-gatekeeper Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Gate recommendation: approve.

The restore target now passes both reader and writer compatibility gates before feature recomputation, and the regression that previously exposed flag stripping now passes. Bit 256 remains reservation-only, while the existing uniform-version storage contract is unchanged.

@lance-gatekeeper lance-gatekeeper Bot added the K-approved Latest Gatekeeper recommendation permits acceptance. label Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-format On-disk format: protos and format spec docs A-namespace Namespace impls A-python Python bindings enhancement New feature or request K-approved Latest Gatekeeper recommendation permits acceptance.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant