Changelog

This changelog is generated automatically from GitHub Releases.

v0.5.2

2026-10-12 · GitHub

Added

  • New native writers SVGWriter, PDFWriter, and HepWriter, rendered directly by ggsql (via hephaestus) with no JavaScript round-trip. Each exposes render(spec) returning str (SVG) or bytes (PDF/HEP); render warnings are surfaced via warnings.warn().
  • New ggsql.save(spec, file, ...) helper that writes a spec to disk, picking the writer from the file extension (.svg, .pdf, .hep, or .json for Vega-Lite).
  • Enabled the crate’s builtin-data feature, making builtin datasets such as ggsql:world available.
  • New ggsql.CachingReader that caches query results to avoid redundant source reads. Wraps a duckdb:// connection string or any custom Python reader; reads are memoized with a configurable TTL and size budget, and derived __ggsql_* tables run on a private in-memory DuckDB cache.

Changed

  • Upgraded to ggsql Rust crate v0.5.2 (from v0.3.3). See the crate changelog for the many language and rendering improvements in 0.4.0–0.5.2.
  • Upgraded the Arrow dependency from v56 to v58.
  • Declared Rust MSRV is now 1.88 (required by the native-writer dependency graph, e.g. parley 0.9).

v0.3.3

2026-05-27 · GitHub

Bumps the upstream ggsql Rust crate to v0.3.3 (hotfix).

This release also includes two user-facing changes that were omitted from the original release notes (and the changelog — added retroactively in CHANGELOG.md):

  • VegaLiteWriter.render_chart() and render_altair() now accept validate, height, and width as explicit keyword arguments. height/width default to None, preserving ggsql’s dimensions; validate defaults to False (same behavior as before, now a named parameter).
  • When Altair can’t deserialize a spec into the expected chart subclass (e.g., LayerChart), the converter now falls back to altair.Chart instead of raising. The chart still displays correctly; only Altair-level round-tripping (.to_dict()) is lost.

v0.3.2

2026-05-14 · GitHub

Changed

  • Upgraded to ggsql Rust crate v0.3.2.
  • render_altair() and VegaLiteWriter.render_chart() now default to validate=False when creating Altair chart objects. This avoids ValidationErrors for valid specs (e.g., boxplots) that use Vega-Lite features not yet reflected in Altair’s schema. Pass validate=True to re-enable.

py/v0.3.1

2026-04-30 · GitHub