v0.4.9
ruviz v0.4.9
Released: 2026-04-09
Highlights
- Fixed the Python large-dataset PNG blackout that could turn dense scatter renders into an opaque dark canvas when automatic DataShader rendering kicked in.
- Large scatter subplots now use the same auto-DataShader composition path as normal plot renders, so dense subplot figures keep working instead of falling back to the slower non-datashaded path.
- Regression coverage now checks large-dataset behavior across Rust, Python, notebook widget, and interactive surfaces for the main plot families.
Version Alignment
This release keeps the published workspace packages aligned on one version:
ruviz0.4.9ruviz-web0.4.9ruviz-gpui0.4.9- npm
ruviz0.4.9 - PyPI
ruviz0.4.9
Large-Dataset Rendering Fixes
- Python
render_png()now goes through the unified plot PNG render path for large auto-DataShader scatter plots. - DataShader output now keeps empty bins transparent and maps rows into screen space correctly before the renderer composites the density image.
- Large histograms are excluded from the scatter-oriented auto-DataShader path, so they stay on the normal renderer.
- External-renderer flows used by subplots now apply the same auto-DataShader selection as the main render/save paths.
Coverage Expansion
- Added large-dataset raster sanity checks for line, scatter, histogram, bar, boxplot, violin, KDE, ECDF, heatmap, contour, error-bars, error-bars-xy, and polar-line plots.
- Added representative notebook widget coverage for large snapshots so dense browser-backed widget renders do not regress into blank or blacked-out canvases.
- Added regression coverage for large interactive/session renders and DataShader transparency/y-axis behavior.
Quality And Validation
This release was locally validated after the 0.4.9 version bump with:
cargo check -qbun run check:webcd python && uv run cargo testcd python && uv run python -m pytest
The large-dataset regression paths were also re-run locally with:
cargo test -p ruviz --no-default-features --features pdf,svg test_large_ -- --nocapturecd python && uv run python -m pytest tests/test_api.py -k 'large_plot'bun run --cwd demo/web test:e2e --grep "python widget bundle renders representative large snapshots without blacking out"
References
- Changelog:
CHANGELOG.md - Previous release notes:
v0.4.8 - Release workflow:
.github/workflows/release.yml