Skip to content

Commit 3e8141e

Browse files
committed
update
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk>
1 parent 07e5746 commit 3e8141e

14 files changed

Lines changed: 233 additions & 286 deletions

File tree

docs/specs/editions.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ Vortex defines an evergrowing set of serializable array encodings, once written
44
version of vortex.
55
**Editions** are used to keep track of these encodings and talk about groups of encodings.
66

7-
The edition `core2026.07.0` (coming soon) is the first such edition containing all encodings currently
8-
enabled by the writer.
7+
The first edition, `core2025.05.0`, contains the stable encodings that could be written by Vortex
8+
`0.36.0`. This is the release from which the Vortex file format is considered stable. Later `core`
9+
editions add stable encodings released after that compatibility boundary.
910
Editions are additive so an edition that comes after a previous one contains all the encodings from the previous one
1011
and more.
11-
The writer can be configured with a set of different editions (e.g. `core2026.07.0` and `unstable2026.05.0` all stable
12-
encoding released before July 2026 and all unstable encodings from May 2026).
12+
The writer can be configured with a set of different editions (for example, `core2026.07.0` and
13+
`unstable2026.06.0` select stable encodings released through July 2026 and unstable encodings
14+
released through June 2026).
1315

1416
Editions can be used to constrain your minimum required vortex reader, since latest version over vortex across all
1517
editions is the earliest version of vortex required to read that file.
@@ -57,4 +59,4 @@ indefinitely, so deprecation never invalidates existing files.
5759

5860
## Edition registry
5961

60-
Coming soon..
62+
Coming soon..

vortex-array/src/arrays/decimal/vtable/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ impl VTable for Decimal {
164164
dtype: &DType,
165165
len: usize,
166166
metadata: &[u8],
167-
168167
buffers: &[BufferHandle],
169168
children: &dyn ArrayChildren,
170169
_session: &VortexSession,

vortex/src/editions/core/mod.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66
//! One module per edition, each declaring the edition and the encodings that join the
77
//! family at it; members of earlier editions are inherited and never restated.
88
9-
pub mod v2026_01;
9+
pub mod v2025_05;
10+
pub mod v2025_06;
11+
pub mod v2025_10;
1012
pub mod v2026_07;
1113

12-
pub use v2026_01::CORE_2026_01_0;
14+
pub use v2025_05::CORE_2025_05_0;
15+
pub use v2025_06::CORE_2025_06_0;
16+
pub use v2025_10::CORE_2025_10_0;
1317
pub use v2026_07::CORE_2026_07_0;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3+
4+
//! The baseline `core` edition: stable encodings writable by Vortex 0.36.0.
5+
6+
use vortex_edition::Edition;
7+
use vortex_edition::EditionDeclaration;
8+
use vortex_edition::EditionId;
9+
10+
/// The first edition of the `core` family, matching the first stable Vortex file release.
11+
pub const CORE_2025_05_0: EditionId = EditionId::new("core", 2025, 5, 0);
12+
13+
/// The declaration of [`CORE_2025_05_0`] and the encodings that join the family at it.
14+
pub static DECLARATION: EditionDeclaration = EditionDeclaration {
15+
edition: Edition {
16+
id: CORE_2025_05_0,
17+
min_vortex_version: Some("0.36.0"),
18+
},
19+
added: &[
20+
&"fastlanes.bitpacked",
21+
&"fastlanes.for",
22+
&"vortex.alp",
23+
&"vortex.alprd",
24+
&"vortex.bool",
25+
&"vortex.bytebool",
26+
&"vortex.chunked",
27+
&"vortex.constant",
28+
&"vortex.datetimeparts",
29+
&"vortex.decimal",
30+
&"vortex.decimal_byte_parts",
31+
&"vortex.dict",
32+
&"vortex.ext",
33+
&"vortex.fsst",
34+
&"vortex.list",
35+
&"vortex.null",
36+
&"vortex.primitive",
37+
&"vortex.runend",
38+
&"vortex.sparse",
39+
&"vortex.struct",
40+
&"vortex.varbin",
41+
&"vortex.varbinview",
42+
&"vortex.zigzag",
43+
],
44+
};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3+
4+
//! The `core` edition adding stable encodings released through June 2025.
5+
6+
use vortex_edition::Edition;
7+
use vortex_edition::EditionDeclaration;
8+
use vortex_edition::EditionId;
9+
10+
/// The June 2025 edition of the `core` family.
11+
pub const CORE_2025_06_0: EditionId = EditionId::new("core", 2025, 6, 0);
12+
13+
/// The declaration of [`CORE_2025_06_0`] and the encodings that join the family at it.
14+
pub static DECLARATION: EditionDeclaration = EditionDeclaration {
15+
edition: Edition {
16+
id: CORE_2025_06_0,
17+
min_vortex_version: Some("0.40.0"),
18+
},
19+
added: &[&"vortex.pco", &"vortex.sequence", &"vortex.zstd"],
20+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3+
4+
//! The `core` edition adding stable encodings released through October 2025.
5+
6+
use vortex_edition::Edition;
7+
use vortex_edition::EditionDeclaration;
8+
use vortex_edition::EditionId;
9+
10+
/// The October 2025 edition of the `core` family.
11+
pub const CORE_2025_10_0: EditionId = EditionId::new("core", 2025, 10, 0);
12+
13+
/// The declaration of [`CORE_2025_10_0`] and the encodings that join the family at it.
14+
pub static DECLARATION: EditionDeclaration = EditionDeclaration {
15+
edition: Edition {
16+
id: CORE_2025_10_0,
17+
min_vortex_version: Some("0.54.0"),
18+
},
19+
added: &[
20+
&"fastlanes.rle",
21+
&"vortex.fixed_size_list",
22+
&"vortex.listview",
23+
&"vortex.masked",
24+
],
25+
};

vortex/src/editions/core/v2026_01.rs

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,20 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// SPDX-FileCopyrightText: Copyright the Vortex contributors
33

4-
//! The second `core` edition: the container and compressed encodings.
4+
//! The `core` edition adding stable encodings released through July 2026.
55
66
use vortex_edition::Edition;
77
use vortex_edition::EditionDeclaration;
88
use vortex_edition::EditionId;
99

10-
/// The second `core` edition: inherits everything in
11-
/// [`CORE_2026_01_0`](super::v2026_01::CORE_2026_01_0) and adds the container and
12-
/// compressed encodings the default file writer emits. A draft until the release shipping
13-
/// it is published and its version is recorded.
10+
/// The July 2026 edition of the `core` family.
1411
pub const CORE_2026_07_0: EditionId = EditionId::new("core", 2026, 7, 0);
1512

1613
/// The declaration of [`CORE_2026_07_0`] and the encodings that join the family at it.
1714
pub static DECLARATION: EditionDeclaration = EditionDeclaration {
1815
edition: Edition {
1916
id: CORE_2026_07_0,
20-
min_vortex_version: None,
17+
min_vortex_version: Some("0.65.0"),
2118
},
22-
added: &[
23-
&"vortex.chunked",
24-
&"vortex.constant",
25-
&"vortex.dict",
26-
&"vortex.masked",
27-
&"vortex.sparse",
28-
&"vortex.alp",
29-
&"vortex.alprd",
30-
&"vortex.bytebool",
31-
&"vortex.datetimeparts",
32-
&"vortex.decimal_byte_parts",
33-
&"vortex.fsst",
34-
&"vortex.pco",
35-
&"vortex.runend",
36-
&"vortex.sequence",
37-
&"vortex.zigzag",
38-
&"vortex.zstd",
39-
&"fastlanes.bitpacked",
40-
&"fastlanes.delta",
41-
&"fastlanes.for",
42-
&"fastlanes.rle",
43-
],
19+
added: &[&"vortex.variant"],
4420
};
45-
46-
#[cfg(test)]
47-
mod tests {
48-
use vortex_edition::EditionError;
49-
use vortex_edition::test_harness::validate_edition;
50-
51-
use super::CORE_2026_07_0;
52-
use crate::editions::edition_session;
53-
54-
#[test]
55-
fn edition_is_valid() -> Result<(), EditionError> {
56-
validate_edition(&edition_session(), &CORE_2026_07_0)
57-
}
58-
}

0 commit comments

Comments
 (0)