Releases: uwdata/mosaic
v0.8.0
Changelog:
- Add use of columnar data throughout vgplot internals.
- Add interactive brushing for continuous color and opacity legends.
- Add meta-key input support to
toggle
interactor. - Add
symbol
scale directives to vgplot. - Add
legends
test example spec. - Add
preamble
option toastToESM()
to insert custom code. - Add data cube index support for ARG_MIN, ARG_MAX aggregates.
- Add data cube index support for PRODUCT, BIT_AND, BIT_OR, BIT_XOR, BOOL_AND, BOOL_OR aggregates.
- Add
xLabelArrow
,yLabelArrow
plot attributes. - Add (
x
|y
|color
|opacity
|r
|length
)Percent
plot attributes. - Remove invalid
fxNice
andfyNice
plot attributes. - Fix legend sizing based on the presence of a label (legend title).
- Fix
regression
mark tip option to pass to error band only, for a single informative tooltip. - Fix
plot
directive to call update, which is needed for plots without marks. - Fix
raster
mark transient scale domain updates to get appropriate domain definitions. - Fix
contour
mark fill/stroke/opacity encoding channel generation for density thresholds. - Fix
hspace
/vspace
codegen to properly stringify values. - Fix
namedPlots.clear()
to also clear queued requests. - Fix proper context use in AST node
instantiate()
calls. - Fix
JSON
DuckDB type handling for field info. - Refactor
handleParam
mark utility for better clarity and type-friendliness. - Update dev example runner.
- Update some jsdoc typings throughout Mosaic packages.
- Add and publish TypeScript types for declarative JSON specs.
- Add and publish JSON schema for declarative JSON specs.
- Add test TypeScript files for all specs, run
tsc
on them as part of@uwdata/mosaic-spec
tests. - Add JSON schema validation to spec tests.
- Update dependencies, including latest version of TypeScript.
v0.7.1
v0.7.0
Changelog:
- Add
Query.describe(query)
to generateDESCRIBE ...
queries for metadata. - Add support for arbitrary SQL expressions (not just column names) as field info metadata. Passing direct SQL expressions to vgplot marks such as
{x: vg.sql`-ra`}
should now work! - Add support to (lossily) convert Apache Arrow
DECIMAL
values to JavaScriptNumber
values. - Update query consolidator to handle DESCRIBE queries, which require filtering rather than projection.
- Remove table catalog from Coordinator, rely on cache and consolidation instead.
- Refactor
fieldInfo
metadata management within vgplotMark
implementations. - Refactor Apache Arrow utilities to be exports of
@uwdata/mosaic-core
. - Update dependencies.
As a result of the above, the catalog
option of Coordinator.clear
is no longer supported. Clients can still pass the option, but it will have no effect. Instead, clearing the cache
will now also drop any cached table metadata.
v0.6.1
Changelog:
- Add raster mark interpolation options nearest, barycentric, and random-walk.
- Add initial plot auto-height support, fixes case of raster dimensions without a specific plot height.
- Add aeromagnetic survey example to test raster interpolation and smoothing.
- Update example preparation script, consolidate processing for both tests and docs.
- Fix error reduction in initialization of Deriche convolution.
- Bump dependencies.
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!