Skip to content

Cross-implementation conformance: read the Raincloud corpus (247 Vortex files) and publish a compatibility matrix #205

Description

@dfa1

Context

@mprammer proposed using Raincloud as a cross-implementation conformance corpus: ~249 curated real-world datasets, 247 of which are built as both Parquet and Vortex (written by the Vortex Python bindings, currently vortex-data==0.69.0). Reading all of them correctly from vortex-java — validated against the Parquet sibling as oracle — would give both projects a real-world compatibility matrix, far stronger evidence than synthetic round-trip fixtures.

Approach

For each slug with a Vortex artifact:

  1. Build (or pull) the parquet/<slug>.parquet + vortex/<slug>.vortex pair via the Raincloud pipeline.
  2. Read the .vortex with vortex-java (vortex-cli schema / count / export).
  3. Oracle check: compare exported values against the Parquet sibling (pyarrow).
  4. Record per slug: schema parsed / row count / values match / encodings + layouts encountered / failure detail.

Output: a per-dataset compatibility matrix plus an encoding/layout coverage summary, published under docs/.

Plan

  • Proof of concept: 4 small datasets (uci-iris, kepler-exoplanet-search-results, palmer-archipelago-antarctica-penguin-data, countries-of-the-world incl. VARIANT columns) — build, read, compare
  • Conformance harness: scripted runner over any set of built slugs, emitting matrix rows (machine-readable + markdown)
  • Scale out to the full buildable corpus (small/medium slugs first; large ones — ClickBench, Wikipedia, JSONBench — need multi-hour builds and disk budget)
  • Publish compatibility matrix + file issues for each gap found (unknown encodings/layouts, value mismatches)
  • CI story: recurring subset run (blocked on mirror access — see open questions)

Open questions for @mprammer

  • Is there a mirror (RAINCLOUD_MIRROR) we could read prepared artifacts from, so CI doesn't rebuild datasets from upstream? Resolution order cache → mirror → build makes this the difference between a download and multi-hour rebuilds.
  • Should the matrix pin the vortex-data version per run (files written by 0.69.0 today may use different encodings than future releases)?
  • A few source URLs may have rotted since the last build — want failures reported here or on the Raincloud tracker?

Progress

Results will be posted as comments on this issue as phases complete.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions