Skip to content

v0.5.0

Compare
Choose a tag to compare
@jheer jheer released this 17 Feb 00:00
· 253 commits to main since this release

This release provides a number of major updates, including:

  • Spatial data support via the DuckDB spatial extension
  • A redesigned specification parsing and code generation package
  • API contexts for vgplot: use multiple coordinators or named plot sets simultaneously
  • A new Python-based local server supporting the latest DuckDB version
  • Watch out for the multiple breaking changes below

Changelog:

Update declarative spec parser and code generator

  • Breaking: Remove spec parser and code generator from vgplot. The parseSpec method is no longer exported by vgplot. Instead, use the new methods from the @uwdata/mosaic-spec package.
  • Breaking: Remove support for client-side data loading. Previously this was used to load GeoJSON and TopoJSON data. The DuckDB spatial extension is now used to load and manage such data directly in the database.
  • Breaking: The expr construct has been removed from declarative specs, instead use sql. This change better aligns the specs with the underlying vgplot API (where the sql tagged template is used).
  • Add spec package with updated spec parser and AST framework.
  • Add extension loading to spec processing, using the config.extensions spec property.

Spatial data support

  • Add support for the DuckDB spatial extension.
  • Add loadSpatial helper and spatial methods (e.g., centroidX, centroidY) to mosaic-sql.
  • Remove client-side GeoJSON/TopoJSON loading, route through DuckDB instead.
  • Add mapping and spatial analysis examples to tests and docs.

Python-based DuckDB server

  • Add duckdb-server package for a Python-based HTTP/WebSocket server. This server supercedes the earlier Node-based server in the duckdb package, due to persistent bugs arising in the Node client and Arrow extension.

Refactor packages

  • Add top-level specs folder for shared access to example specs.
  • Add plot package for plot, mark, and interactor component classes.
  • Re-focus vgplot package solely on providing an exported API for Mosaic applications.

Other changes

  • Modify the wasmConnector method to be synchronous. DuckDB initialization is now perform lazily.
  • Add options to the wasmConnector to use an existing DuckDB instance.
  • Add vgplot API contexts (createAPIContext()) to permit multiple coordinators or named plot sets on the same page.
  • Add sql loadExtension() utility, which generates commands to load external DuckDB extensions.
  • Add array support to Coordinator.exec(). An array of queries can now be provided, issued to DuckDB as a single multi-statement query.
  • Fix vgplot margin() attribute directive.
  • Fix line/area marks to not apply M4 optimization to unoriented marks.
  • Fix menu input to support to non-truthy values such as 0 and null. (thanks @FrTennis!)
  • Breaking: Replace selections with params in Jupyter widget, include all params, and index params by name.