Skip to content

Commit 2b3ddec

Browse files
joseph-isaacsclaude
andcommitted
chore[compat]: replace upload.py with full compat.py CLI orchestrator
Replaces the simple upload.py with a comprehensive Python CLI that manages fixture versions in S3 or local stores. Simplifies the Rust binary to a thin generate/check tool while Python handles versioning, manifest management, SHA-256 integrity, and parallel S3 uploads. Key changes: - Rust: single vortex-compat binary (generate + check), computes sha256 per fixture in fixtures.json, simplified fixture traits - Python: compat.py with generate, publish (--update for incremental), check, list, verify, and validate-manifest commands - Removed since field from manifests; sha256 computed by Rust - Parallel uploads via ThreadPoolExecutor - Interactive confirmation prompt with --yes bypass Signed-off-by: Joe Isaacs <joe@spiraldb.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 876813b commit 2b3ddec

55 files changed

Lines changed: 2281 additions & 4424 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 6 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ rustc-hash = "2.1"
216216
serde = "1.0.220"
217217
serde_json = "1.0.138"
218218
serde_test = "1.0.176"
219+
sha2 = "0.10"
219220
simdutf8 = "0.1.5"
220221
similar = "2.7.0"
221222
sketches-ddsketch = "0.3.0"

vortex-test/compat-gen/Cargo.toml

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "vortex-compat"
33
authors = { workspace = true }
4-
description = "Backward-compatibility fixture generation and testing for Vortex"
4+
description = "Backward-compatibility fixture generation and checking for Vortex"
55
edition = { workspace = true }
66
homepage = { workspace = true }
77
include = { workspace = true }
@@ -16,42 +16,35 @@ version = { workspace = true }
1616
workspace = true
1717

1818
[[bin]]
19-
name = "compat-gen"
19+
name = "vortex-compat"
2020
path = "src/main.rs"
2121

22-
[[bin]]
23-
name = "compat-validate"
24-
path = "src/validate_main.rs"
25-
2622
[dependencies]
2723
# Vortex crates
28-
vortex = { workspace = true, features = ["files", "tokio", "zstd"] }
24+
vortex = { workspace = true, features = ["files", "tokio"] }
2925
vortex-array = { workspace = true, features = ["_test-harness"] }
3026
vortex-buffer = { workspace = true }
3127
vortex-error = { workspace = true }
3228
vortex-session = { workspace = true }
33-
vortex-utils = { workspace = true }
3429

3530
# TPC-H generation
3631
arrow-array = { workspace = true }
3732
tpchgen = { workspace = true }
3833
tpchgen-arrow = { workspace = true }
3934

40-
# ClickBench parquet reading + writing
41-
arrow-select = { workspace = true }
35+
# ClickBench parquet reading
4236
bytes = { workspace = true }
4337
parquet = { workspace = true }
4438

4539
# Async runtime
4640
futures = { workspace = true }
4741
tokio = { workspace = true, features = ["full"] }
4842

49-
# HTTP fetching (for ClickBench fixture + compat-test S3 downloads)
43+
# HTTP fetching (for ClickBench fixture setup)
5044
reqwest = { workspace = true }
5145

5246
# CLI + serialization
53-
chrono = { workspace = true, features = ["serde"] }
5447
clap = { workspace = true, features = ["derive"] }
5548
serde = { workspace = true, features = ["derive"] }
5649
serde_json = { workspace = true }
57-
tempfile = { workspace = true }
50+
sha2 = { workspace = true }

0 commit comments

Comments
 (0)