Repository navigation
Gate compat fixture writes with editions - #10077
Merged
Merged
Conversation
mhk197
force-pushed
the
mk/compat-gen-editions
branch
from
September 25, 2026 21:15
4f17c64 to
fcf3bb6
Compare
mhk197
marked this pull request as ready for review
September 25, 2026 21:17
Signed-off-by: Matt Katz <[email protected]>
mhk197
force-pushed
the
mk/compat-gen-editions
branch
from
September 25, 2026 21:17
fcf3bb6 to
377fa14
Compare
robert3005
approved these changes
Sep 25, 2026
robert3005
left a comment
Contributor
There was a problem hiding this comment.
we need to expand this but for now this should be just the default edition
Merging this PR will not alter performance
|
Signed-off-by: Matt Katz <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Compat fixtures are written with
disable_editions(), so a fixture can record an encoding with no read-compatibility guarantee. Once published, the additive-only manifest rule makes that encoding permanent. This PR writes fixtures under the default session's enabled editions (core2026.08.3), so a fixture can only emit encodings an edition already guarantees.Changes
adapter::write_compressedandadapter::write_compressed_to_bytes_with_sessionno longer calldisable_editions().checkregenerates its comparison files through the same path, so it is gated too.VortexSession::default(), the session the file is written with, instead of fromarray_session()withdisable_editions(). Since Filter compressor schemes by the session's allowed serialized IDs on build #10067,BtrBlocksCompressorBuilder::from_sessionkeeps only schemes whose encodings the session registers and its editions allow. The compressor therefore can't choose an encoding the gated write would reject, such asvortex.patchedunderVORTEX_EXPERIMENTAL_PATCHES. The regular and compact variants now share one code path.decimal_byte_parts_v2.vortexdisabled, likedeltaandpatched. It writesvortex.decimal_byte_parts.v2, which no edition includes yet. It isn't in any published manifest (checked through 0.86.1), so removing it doesn't break the additive-only rule. It comes back once DBP v2 joins an edition.DESIGN.mdnotes that new fixtures must use encodings from an enabled edition.Every fixture in the 0.86.1 manifest uses
coreencodings. That comes from reading the code, not from a run, so the published fixture set should be unchanged.Checks
cargo clippy -p vortex-compat --all-targets --all-features -- -D warningscargo +nightly-2026-09-10 fmt -p vortex-compat --checkcargo nextest run -p vortex-compatcargo run -p vortex-compat --release -- generate --output /tmp/compat --exclude clickbench: confirms every remaining fixture writes undercore