Releases: uwdata/mosaic
Releases · uwdata/mosaic
v0.6.0
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, araster
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
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
. TheparseSpec
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 usesql
. This change better aligns the specs with the underlying vgplot API (where thesql
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
) tomosaic-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 theduckdb
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
andnull
. (thanks @FrTennis!) - Breaking: Replace
selections
withparams
in Jupyter widget, include all params, and index params by name.
v0.4.0
Changelog:
- Breaking: Use mark-level
orderby
(notorder
) to convey query orderby criteria. Avoids conflict with Plot'sorder
option for implicit stack transforms. - Breaking: Rename channel window transform keys to
orderby
andpartitionby
(notorder
andpartition
) to more closely match SQL and improve consistency with Mosaic's SQL helpers and mark-levelorderby
criteria. - Update
highlight
interactor to automatically add markorderby
when needed to ensure consistent data order. (#248) - Bump dev dependencies.
v0.3.5
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!