Changes since v6.2.0
Features
- Align legend and title labels to the start of the chart frame (thanks @djbarnwal and @domoritz!) (via #4297, supersedes #4052)
- Add
"auto"unit andinferUnitsoption to the timeunit transform (thanks @paulrosenzweig and @domoritz!) (via #4299, supersedes #3645) - Add integer
tickIndexfield on axis tick datums for use in label expressions (thanks @hydrosquall!) (via #4250) - Add
encodeURIComponentto built-in expressions (thanks @danmarshall!) (via #4148) - Add
encodeURIComponentto vega-interpreter (thanks @danmarshall!) (via #4196)
Fixes
- Expand stroke bounds by half the stroke width with join-aware slack; tighter bounds, miter joins now honored by default (thanks @stas-sl and @domoritz!) (via #4302, supersedes #3487)
- Respect CSS transforms when computing event points (thanks @letelete and @domoritz!) (via #4301, supersedes #3978)
- Correctly handle
tickMinStep(thanks @domoritz!) (via #4162) - Clamp negative variance deviation from streaming removes (thanks @domoritz!) (via #4298)
- Correct
stdevp/variancepfor the single-element population case (thanks @soldenstoll and @domoritz!) (via #4296, supersedes #4150) - Fix bounds calculation for empty visualization with absent legend title (thanks @betalb and @domoritz!) (via #4295, supersedes #3936)
- Let axis
descriptionoverride the default aria-label (thanks @MarcBaeuerle and @domoritz!) (via #4294, supersedes #3991) - Correct stacking behaviour for null and empty-string categories (thanks @MarcBaeuerle and @domoritz!) (via #4292, supersedes #3992)
- Return adjusted stop from bin transform (thanks @domoritz!) (via #3967)
- Parse SVG paths containing a
z(closepath) without a following space separator (thanks @hydrosquall!) (via #4236) - Make the
maxinterval of the crossfilter transform exclusive, not inclusive (thanks @hydrosquall!) (via #4231) - Replace dots with underscores in aggregated field names (thanks @basbroek!) (via #4156)
- Preserve sign of frame bounds in the window transform (thanks @btroop!) (via #4153)
- Avoid prototype pollution in
mergeConfig(already published in vega-util 2.1.1) (thanks @domoritz!) (via #4273) - Security fixes merged from private forks (vega-expression codegen, vega-interpreter evaluation, vega-functions
modify, vega-selections tuples); the vega-expression fix is first published with this release - Fix docstring / function argument validation in vega-selections (already published in 6.1.2) (thanks @hydrosquall!) (via #4181)
- Adjust order of ObjectExpression evaluation in vega-interpreter (already published in 2.2.0) (thanks @hydrosquall!) (via #4138)
- Include build files in vega-interpreter npm releases (already published in 2.2.1) (thanks @domoritz!) (via #4139)
Maintenance
- Migrate vega-util to TypeScript (thanks @hydrosquall!) (via #4185, #4187, #4188, #4189, #4200, #4202, #4203, #4218, #4219, #4220, #4222)
- Compare scenegraph tests against goldens by default (thanks @domoritz!) (via #4305)
- Raise CI minimum Node.js version to 22 (via #4286)
- Lint tooling updates: eslint 10, prettier 3.9, husky + lint-staged pre-commit linting (via #4303, #4230)
- Add package metadata for homepage and issues (via #4282)
- Update node and TypeScript configuration at the repo root (via #4184)
- Numerous dependency bumps via dependabot (lerna 9, rollup, babel, jsdom, canvas, d3-format, GitHub Actions, and more)
- Docs: use the main data set for the domain in the grouped bar chart example (thanks @sl-solution!) (via #3593); zoomable scatter plot example cleanup (via #4217); grammar and typo fixes (via #4157, #4172, #4175, #4199)
Package versions
| Package | Old | New | Reason |
|---|---|---|---|
| vega | 6.2.0 | 6.3.0 | minor — aggregates all changes |
| vega-cli | 6.2.0 | 6.3.0 | released alongside vega — its exact vega pin must match the workspace version
|
| vega-crossfilter | 5.1.0 | 5.1.1 | fix (#4231) |
| vega-dataflow | 6.1.0 | 6.1.1 | dependency ranges |
| vega-encode | 5.1.0 | 5.2.0 | feat (#4250), fix (#4292) |
| vega-expression | 6.1.0 | 6.2.0 | feat (#4148), security fix |
| vega-force | 5.1.0 | 5.1.1 | dependency ranges |
| vega-format | 2.1.0 | 2.1.1 | dependency ranges |
| vega-functions | 6.1.1 | 6.1.2 | dependency ranges |
| vega-geo | 5.1.0 | 5.1.1 | dependency ranges |
| vega-hierarchy | 5.1.0 | 5.1.1 | dependency ranges |
| vega-interpreter | 2.2.1 | 2.3.0 | feat (#4196) |
| vega-label | 2.1.0 | 2.1.1 | dependency ranges |
| vega-loader | 5.1.0 | 5.1.1 | dependency ranges |
| vega-parser | 7.1.0 | 7.1.1 | fix (#4156) |
| vega-projection | 2.1.0 | 2.1.1 | dependency ranges |
| vega-projection-extended | 3.1.0 | 3.1.1 | dependency ranges |
| vega-regression | 2.1.0 | 2.1.1 | dependency ranges |
| vega-runtime | 7.1.0 | 7.1.1 | dependency ranges |
| vega-scale | 8.1.0 | 8.1.1 | fix (#4162) |
| vega-scenegraph | 5.1.0 | 5.2.0 | behavior-visible fixes (#4302, #4301, #4294, #4236) |
| vega-schema | 6.2.0 | 6.3.0 | regenerated schema (adds inferUnits)
|
| vega-selections | 6.1.2 | 6.1.3 | dependency ranges |
| vega-time | 3.1.0 | 3.2.0 | feat (#4299) |
| vega-transforms | 5.1.0 | 5.2.0 | feat (#4299), fixes (#4298, #4296, #3967, #4153) |
| vega-typings | 2.1.0 | 2.2.0 | feat typings (#4297, #4299) |
| vega-view | 6.1.0 | 6.1.1 | dependency ranges |
| vega-view-transforms | 5.1.0 | 5.2.0 | feat (#4297), fix (#4295) |
| vega-voronoi | 5.1.0 | 5.1.1 | dependency ranges |
| vega-wordcloud | 5.1.0 | 5.1.1 | dependency ranges |
Unchanged (nothing new since their last publish): vega-canvas 2.0.0, vega-event-selector 4.0.0, vega-statistics 2.0.0, vega-util 2.1.1. Unlike v6.2.0's two-step release (#4132), vega-cli ships in this release: it pins vega to an exact version, so leaving it at 6.2.0 while the workspace moves to 6.3.0 makes npm install a nested registry copy of vega instead of linking the workspace package, which breaks the build ordering and CI.