Skip to content

Releases: uwdata/mosaic

v0.6.0

23 Feb 01:16
Compare
Choose a tag to compare

This release adds support for non-linear scales across binning methods, both in gridded marks like raster, and for the bin transform. It also improves marks that use gridded data, such as density, raster, and the new heatmap convenience mark.

Breaking Changes:

This release renames some of the options for density/contour/raster marks and adjusts their defaults. This simplifies some naming and usage, and better aligns with the underlying Observable Plot library.

  • binType is now interpolate. The "normal" option value is now "none".
  • binWidth is now pixelSize.
  • binsX is now width.
  • binsY is now height.

Changelog:

  • Breaking: Rename options for density/contour/raster marks, change defaults.
  • Add support for non-linear scales (log, symlog, sqrt) to pixel-level binning methods.
  • Add support for non-linear scales (log, symlog, sqrt) to the bin transform.
  • Add SQL scale transform utilities to the mosaic-sql package.
  • Add richer option support to raster mark, including gridded ordinal data alongside numeric data.
  • Add heatmap mark, a raster mark with convenient defaults for density estimation.
  • Add additional plot attributes for scale transforms.
  • Add more SQL transforms to the declarative specs.
  • Update mark implementations to use improved binning.
  • Update density1d example spec to use a log-scaled domain.
  • Update examples, including new Observable latency example.
  • Update documentation.
  • Update dependencies, use DuckDB v0.10.0.
  • Fix range transformation bug in DataCubeIndexer.
  • Fix filter range bug in DensityLineMark.
  • Fix M4 optimization bug in ConnectedMark (line and area).

v0.5.0

17 Feb 00:00
Compare
Choose a tag to compare

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.

v0.4.0

17 Jan 19:13
Compare
Choose a tag to compare

Changelog:

  • Breaking: Use mark-level orderby (not order) to convey query orderby criteria. Avoids conflict with Plot's order option for implicit stack transforms.
  • Breaking: Rename channel window transform keys to orderby and partitionby (not order and partition) to more closely match SQL and improve consistency with Mosaic's SQL helpers and mark-level orderby criteria.
  • Update highlight interactor to automatically add mark orderby when needed to ensure consistent data order. (#248)
  • Bump dev dependencies.

v0.3.5

28 Dec 19:56
Compare
Choose a tag to compare

Changelog:

  • Support "TIMESTAMP WITH TIME ZONE" type. (thanks @mingfang)
  • Export Cache, queryHandler and socketResponse from DuckDB server. (thanks @mingfang)
  • Add configuration options for DuckDB class. (thanks @rickiesmooth)
  • Update dependencies. Note that the default categorical color scheme for Plot (and thus vgplot) has changed!