Skip to content

vegafusion: Add version 2.0.3 - #2275

Merged
luhenry merged 3 commits into
mainfrom
vegafusion
Sep 25, 2026
Merged

luhenry merged 3 commits into
mainfrom
vegafusion

Conversation

@luhenry

@luhenry luhenry commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

PyO3/maturin bindings around the VegaFusion Rust runtime (Arrow + a DataFusion fork) that evaluates Vega/Vega-Lite chart transforms server-side. Upstream publishes no riscv64 wheel.

Mirrors upstream's build_test.yml linux-64 build/test jobs.

Differs from upstream

  • --profile release instead of release-opt - keeps a cargo profile name every maturin sdist build in the container resolves, tuned via CARGO_PROFILE_RELEASE_* instead
  • musllinux dropped - rustup.rs ships no riscv64 musl toolchain
  • pandas pinned >=2.2,<3 in test deps - matches upstream's own pin, pandas 3's default string dtype breaks two unrelated arrow-dtype assertions

Matrix: built on cp312 (registry floor for pyarrow/duckdb, both test deps); retested on cp313/cp314.

Testing

  • test_jupyter_widget.py dropped - needs Chrome/selenium, no riscv64 Chrome build
  • test_transformed_data.py dropped - needs vl-convert-python, which has no riscv64 wheel (gotcha 335)

License: OK

PyO3/maturin bindings around vegafusion-core/runtime (arrow 55, a
datafusion 48 fork, tonic). Mirrors build-datafusion.yml/build-pylance.yml:
protobuf-src vendors protoc, and the abi3 wheel is built on cp312 (our
registry's floor for pyarrow/duckdb, both hard test/runtime deps) and
re-tested on cp313/cp314.
@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-25 17:26 UTC

pypa/cibuildwheel's action has no build: input (only package-dir,
output-dir, config-file, only, extras); passing one is silently
dropped with a warning buried at the end of the job log, after the
whole ~5h build already ran. cibuildwheel then fell back to its
default matrix floor (cp39) instead of the intended cp312/cp313/cp314
abi3 build list, so the test-install used a cp39 venv where
arro3-core (a hard dependency, floor cp311) has no wheel - surfacing
as an unrelated-looking "Could not find a version that satisfies the
requirement arro3-core" failure in job 107513443514.

Move the interpreter list to CIBW_BUILD under env:, the same knob
build-datafusion.yml's own abi3 leg already uses for an identical
setup. See gotcha 564.
Three independent causes behind the 125 test failures:

- test_transformed_data.py (120 cases) calls altair's
  chart.transformed_data(), which compiles Vega-Lite through
  vl-convert-python. That package has no riscv64 wheel and cannot get
  one (its pinned rusty_v8 has no riscv64 build), so ignore the file and
  drop altair/vega-datasets, which nothing else collected imports.
- test_get_column_usage.py and test_pretransform_specs.py read specs from
  ../../vegafusion-runtime/tests/specs, which was not copied into the
  test cwd; this also left test_pretransform_specs::test_it with an empty
  parameter set. Add the specs directory to CIBW_TEST_SOURCES.
- test_transformer.py asserts pa.string() for converted string columns;
  pandas 3's default str dtype maps to arrow large_string. Upstream tests
  against pandas 2 (pixi.lock resolves 2.2.3, main pins >=2.2,<3), so pin
  pandas>=2.2,<3 the same way.
@luhenry
luhenry merged commit b0ce0c3 into main Sep 25, 2026
12 checks passed
@luhenry
luhenry deleted the vegafusion branch September 25, 2026 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant