Skip to content

feat[edition]: session-registered editions defitions#8871

Merged
joseph-isaacs merged 4 commits into
developfrom
claude/editions-impl-fiicrg
Jul 21, 2026
Merged

feat[edition]: session-registered editions defitions#8871
joseph-isaacs merged 4 commits into
developfrom
claude/editions-impl-fiicrg

Conversation

@joseph-isaacs

@joseph-isaacs joseph-isaacs commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Rationale for this change

Any encoding that vortex will write using built-in layout strategies or compressors will come from an edition.

What changes are included in this PR?

  • Adds the vortex-editions crate and session variable.
  • Defines editions for core and unstable encodings from vortex 0.36.0 until today

@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 4d00b07 1 Explore Profiling Data
Previous Runs (11)
Status Commit Job Attempt Link
🟢 Done 44d1d4f 1 Explore Profiling Data
🟢 Done 3e8141e 1 Explore Profiling Data
🟢 Done 07e5746 1 Explore Profiling Data
🟢 Done a4f07a8 1 Explore Profiling Data
🟢 Done a07aa2e 1 Explore Profiling Data
🟢 Done 528cd3f 1 Explore Profiling Data
🟢 Done 89bcb4a 1 Explore Profiling Data
🟢 Done e570448 1 Explore Profiling Data
🟢 Done 984cee4 1 Explore Profiling Data
🟢 Done bb67435 1 Explore Profiling Data
🟢 Done b653c99 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Benchmarks: Vortex queries 📖

Verdict: Likely regression (medium confidence)
Attributed Vortex impact: +12.6%
Engines: DataFusion Likely regression (+20.9%, high confidence) · DuckDB No clear signal (+4.8%, low confidence)
Vortex (geomean): 1.157x ❌
Parquet (geomean): 1.090x ➖
Shifts: Parquet (control) +9.0% · Median polish +11.6%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.332x ❌, 0↑ 2↓)
name PR 4d00b07 (ns) base e767a30 (ns) ratio (PR/base)
vortex_q00/datafusion:vortex-file-compressed 🚨 12721249 9825439 1.29
vortex_q01/datafusion:vortex-file-compressed 🚨 8741795 6382956 1.37
datafusion / parquet (1.102x ❌, 0↑ 1↓)
name PR 4d00b07 (ns) base e767a30 (ns) ratio (PR/base)
vortex_q00/datafusion:parquet 23011780 21147036 1.09
vortex_q01/datafusion:parquet 🚨 5676780 5088668 1.12
duckdb / vortex-file-compressed (1.131x ❌, 0↑ 2↓)
name PR 4d00b07 (ns) base e767a30 (ns) ratio (PR/base)
vortex_q00/duckdb:vortex-file-compressed 🚨 12440643 10812350 1.15
vortex_q01/duckdb:vortex-file-compressed 🚨 7171360 6455096 1.11
duckdb / parquet (1.079x ➖, 0↑ 1↓)
name PR 4d00b07 (ns) base e767a30 (ns) ratio (PR/base)
vortex_q00/duckdb:parquet 🚨 26449013 23704975 1.12
vortex_q01/duckdb:parquet 9968822 9561482 1.04

No file size changes detected.

@codspeed-hq

codspeed-hq Bot commented Jul 21, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 1796 untouched benchmarks
⏩ 46 skipped benchmarks1


Comparing claude/editions-impl-fiicrg (4d00b07) with develop (e767a30)

Open in CodSpeed

Footnotes

  1. 46 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@joseph-isaacs
joseph-isaacs force-pushed the claude/editions-impl-fiicrg branch from b653c99 to bb67435 Compare July 21, 2026 09:35
@joseph-isaacs joseph-isaacs changed the title feat(vortex-edition): session-registered editions with declaration macros feat(vortex-edition): session-registered editions validated by unit tests Jul 21, 2026
@joseph-isaacs
joseph-isaacs force-pushed the claude/editions-impl-fiicrg branch 4 times, most recently from 89bcb4a to 528cd3f Compare July 21, 2026 09:50
@joseph-isaacs
joseph-isaacs marked this pull request as draft July 21, 2026 09:56
@joseph-isaacs
joseph-isaacs force-pushed the claude/editions-impl-fiicrg branch 2 times, most recently from a07aa2e to a4f07a8 Compare July 21, 2026 10:07
@joseph-isaacs joseph-isaacs changed the title feat(vortex-edition): session-registered editions validated by unit tests feat(vortex-edition): session-registered editions declared in the vortex facade Jul 21, 2026
…tex facade

vortex-edition provides the editions machinery: the types (EditionId,
Edition, EditionInclusion, EditionDeclaration), the EditionSession
session variable holding the per-session registry (starts empty; clones
share the registry like other session registries), computation
(editions(), encodings_in() with membership inherited by later editions
of the family, current()), validation (identifier/version forms via
EditionId::validate and EditionInclusion::validate, plus whole-registry
checks: undeclared references, drafts-newest chronology, members
requiring a release newer than their edition declares), and the
validate!(session, EDITION) macro generating a per-edition unit test.
Encoding ids use the session's intern pool (registry::Id, the same
identifier space as ArrayId), and declaration blocks name encodings via
the AsEncodingId trait — an id string today, an encoding vtable once
vortex-array implements it.

The actual declarations live in the public vortex crate
(vortex::editions): two core editions declared block-wise with the
encodings each adds — core2026.01.0 with the 12 canonical encodings and
core2026.07.0 inheriting them plus the 20 container/compressed
encodings the default writer emits. Both are drafts until their
min_vortex_version is recorded, which is the act of freezing.
register_default_editions seeds them into the default session, golden
tests pin both sets, and transitivity/consistency tests cover
inheritance and the one-inclusion-per-encoding invariant.

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdR42Svu74NcNzC7XJYwLr
@joseph-isaacs
joseph-isaacs force-pushed the claude/editions-impl-fiicrg branch from a4f07a8 to 07e5746 Compare July 21, 2026 10:13
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
@joseph-isaacs joseph-isaacs changed the title feat(vortex-edition): session-registered editions declared in the vortex facade feat[edition]: session-registered editions defitions Jul 21, 2026
@joseph-isaacs
joseph-isaacs requested a review from robert3005 July 21, 2026 10:50
@joseph-isaacs
joseph-isaacs marked this pull request as ready for review July 21, 2026 10:50
@joseph-isaacs joseph-isaacs added the changelog/feature A new feature label Jul 21, 2026
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>

@robert3005 robert3005 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.

only had one question

Comment thread vortex-edition/src/lib.rs
fn encoding_id(&self) -> Id;
}

impl AsEncodingId for str {

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.

Do we use this impl anywhere?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think that is used for each definition since they are defined by strs

@joseph-isaacs
joseph-isaacs merged commit 49c4753 into develop Jul 21, 2026
86 checks passed
@joseph-isaacs
joseph-isaacs deleted the claude/editions-impl-fiicrg branch July 21, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants