Releases: vega/altair
Version 6.1.0
What's Changed
There are many exciting improvements in this release! Read on for details and a big thanks to everyone who contributed 🎉
Enhancements
- feat: Update to Vega-Lite 6.4.1 by @joelostblom in #4005. See the Vega-Lite Release Notes for details; a few highlights:
- Newlines are now supported in tooltips.
- The default stack order of marks like bars and areas is now aligned with the color domain.
- Interactive charts automatically change the cursor to pointer to indicate they can be interacted with.
- feat: auto hoist facet encodings in layer by @thomascamminady in #3965
- This allows layering of simple faceted charts that define the same facet variables, instead of requiring that layering happens before faceting.
- feat: Accept ZoneInfo(key='UTC') by @JackKelly in #3944
- feat: add pandas 3 compatibility and fix CI (drop Python 3.9, pin polars <1.38) by @mattijn in #3950
- feat: add ensure_ascii option to to_json() with default False by @RamiNoodle733 in #3952
Bug Fixes
- fix: unique view names per concat cell and correct param.views by @mattijn in #3974
- fix: Compute unique hashes for identical specs that use different data by @joelostblom in #3982
- fix: preserve polars datetime timezones during serialization by @kjgoodrick in #3922
- fix: type issues with Chart save methods. by @alec-bike in #3934
- fix: type issues with Chart mark methods. by @alec-bike in #3936
- fix: improve api.py typing by @alec-bike in #3955
- fix: typing issues for mypy 1.18 and above. by @alec-bike in #3966
Documentation
- docs: Highlight new examples in the gallery by @joelostblom in #3999
- It's now easier to find which examples have been recently added to the Altair gallery and the page looks more visually appealing overall.
- docs: add WASM / Pyodide installation instructions by @ArnavTomar18 in #3932
- docs: Correct some grammar issues by @star1327p in #3942
- docs: add identity line (x=y diagonal) example to rule mark docs by @stbiadmin in #3969
- docs: Correct tooltip field for faceted choropleth example by @Sparlitu in #3920
- docs: wrong tooltip variable id -> county_id by @thomascamminady in #3924
- docs: a HConcatChart -> an HConcatChart by @star1327p in #3917
- docs: Substitute field strings correctly so that points in theme display chart show up by @joelostblom in #3984
- docs: Change the lead size to fit on two rows by @joelostblom in #3980
- docs: Make the first page title fit on one row by @joelostblom in #3979
- docs: Fix broken density example by @joelostblom in #3985
- docs: Simplify inline expr syntax by @joelostblom in #3996
Other Changes
- build: Speed up doc build time for faster local development by @joelostblom in #3997
- build: Add watch option to automatically rebuild docs upon detected changes by @joelostblom in #3998
- build: Create docs CLI to facilitate different build combinations by @joelostblom in #4000
- chore: bump dev version to 6.1.0dev by @mattijn in #3913
- style: Make chained chart methods work with type checkers other than pyright by @hamdanal in #3933
- ci: bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in #3928
- build(deps): bump urllib3 from 2.5.0 to 2.6.3 by @dependabot[bot] in #3939
- build(deps): bump virtualenv from 20.31.2 to 20.36.1 by @dependabot[bot] in #3940
- build(deps): bump cryptography from 45.0.5 to 46.0.5 by @dependabot[bot] in #3953
- build: update lock file by @mattijn in #3963
- chore(typing): Ignore
duckdbimports by @dangotbanned in #3971 - ci(uv): Remove
polars<1.38pin by @dangotbanned in #3973 - chore: Move pytest
addoptstotestpathsby @dangotbanned in #3972 - chore: bump
narwhals>=2.4.0by @dangotbanned in #3970 - build: unpin duckdb and geopandas for py3.14 by @mattijn in #3975
- chore: Simplify
ruffconfig, fix minor type issues by @alec-bike in #3967 - fix: update ruff target-version to py310 by @alec-bike in #3977
- build(deps): bump pygments from 2.19.2 to 2.20.0 by @dependabot[bot] in #3988
- build(deps): bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in #3986
- build(deps): bump cryptography from 46.0.5 to 46.0.6 by @dependabot[bot] in #3987
- build(deps): bump cryptography from 46.0.6 to 46.0.7 by @dependabot[bot] in #4003
- build(deps): bump tornado from 6.5.4 to 6.5.5 by @dependabot[bot] in #3978
- build(deps): bump uv from 0.10.4 to 0.11.6 by @dependabot[bot] in #4004
- ci: harden prerelease workflow by @mattijn in #4008
New Contributors
- @Sparlitu made their first contribution in #3920
- @kjgoodrick made their first contribution in #3922
- @hamdanal made their first contribution in #3933
- @ArnavTomar18 made their first contribution in #3932
- @alec-bike made their first contribution in #3934
- @JackKelly made their first contribution in #3944
- @RamiNoodle733 made their first contribution in #3952
- @stbiadmin made their first contribution in #3969
Full Changelog: v6.0.0...v6.1.0
Weekly Build 6.1.0.dev20260420
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260420
Tag: weekly-20260420-e093674
Previous Weekly Tag: weekly-20260413-127f79f7
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260420
# or
uv pip install altair==6.1.0.dev20260420Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260420) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260420-e093674
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260420-e093674Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260420-e093674",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260420-e093674" }From GitHub Release (manual download)
Download the wheel or sdist from the release assets and install, for example:
pip install ./altair-6.1.0.dev20260420-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260413
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260413
Tag: weekly-20260413-127f79f7
Previous Weekly Tag: weekly-20260406-3260a3fe
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260413
# or
uv pip install altair==6.1.0.dev20260413Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260413) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260413-127f79f7
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260413-127f79f7Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260413-127f79f7",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260413-127f79f7" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260413-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260406
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260406
Tag: weekly-20260406-3260a3fe
Previous Weekly Tag: weekly-20260330-5fa5ea4e
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260406
# or
uv pip install altair==6.1.0.dev20260406Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260406) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260406-3260a3fe
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260406-3260a3feNote: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260406-3260a3fe",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260406-3260a3fe" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260406-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260330
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260330
Tag: weekly-20260330-5fa5ea4e
Previous Weekly Tag: weekly-20260323-98de0277
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260330
# or
uv pip install altair==6.1.0.dev20260330Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260330) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4e
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4eNote: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260330-5fa5ea4e",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260330-5fa5ea4e" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260330-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260323
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260323
Tag: weekly-20260323-98de0277
Previous Weekly Tag: weekly-20260316-49e745b8
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260323
# or
uv pip install altair==6.1.0.dev20260323Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260323) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260323-98de0277
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260323-98de0277Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260323-98de0277",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260323-98de0277" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260323-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260316
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260316
Tag: weekly-20260316-49e745b8
Previous Weekly Tag: weekly-20260309-356c78bb
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260316
# or
uv pip install altair==6.1.0.dev20260316Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260316) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260316-49e745b8
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260316-49e745b8Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260316-49e745b8",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260316-49e745b8" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260316-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260309
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260309
Tag: weekly-20260309-356c78bb
Previous Weekly Tag: weekly-20260223-903e68e1
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260309
# or
uv pip install altair==6.1.0.dev20260309Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260309) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260309-356c78bb
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260309-356c78bbNote: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260309-356c78bb",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260309-356c78bb" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260309-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
Weekly Build 6.1.0.dev20260223
Weekly Pre-Release Build of Altair
This is a pre-release version for testing purposes.
Build Information
Version: 6.1.0.dev20260223
Tag: weekly-20260223-903e68e1
Previous Weekly Tag: weekly-20260216-e85e1e3b
Installation
From PyPI (recommended)
Install the latest weekly build directly from PyPI:
pip install altair==6.1.0.dev20260223
# or
uv pip install altair==6.1.0.dev20260223Note: Weekly builds publish timestamped development versions (for example 6.1.0.dev20260223) to PyPI. When you pin that exact version, pip installs the dev build automatically, without the need for a --pre flag.
From GitHub Repository (direct install)
Install directly from the tagged commit without downloading the wheel:
Command line (pip or uv):
pip install git+https://github.com/vega/altair.git@weekly-20260223-903e68e1
# or
uv pip install git+https://github.com/vega/altair.git@weekly-20260223-903e68e1Note: Installing directly from the weekly-... tag will surface the base development version (without the timestamp suffix) because the version file edits are not committed.
Add to pyproject.toml (pip/uv):
[project]
dependencies = [
"altair @ git+https://github.com/vega/altair.git@weekly-20260223-903e68e1",
]Add to pixi.toml (pixi):
[pypi-dependencies]
altair = { git = "https://github.com/vega/altair.git", rev = "weekly-20260223-903e68e1" }From GitHub Release (manual download)
Download the wheel file from the assets below and install:
pip install altair-6.1.0.dev20260223-py3-none-any.whlTesting & Feedback
Please note: This is a testing version. If you encounter any issues or unexpected behavior, we would greatly appreciate if you open an issue to report it. Your feedback helps improve Altair!
v6.0.0
Release v6.0.0
The Vega-Altair team is pleased to announce the release of version 6.0.0. Firstly, we are grateful for the many returning contributors (@franzhaas, @dangotbanned, @dsmedia, @joelostblom, @tempdata73, @mattijn, @jonmmease, @eitanlees, @kurtmckee, @MarcoGorelli), and a special shoutout to all the new contributors (@JasonnnW3000, @edmundmiller, @jannisko, @stanmart, @star1327p, @baldwint, @daizutabi, @azjps, @joaopalmeiro, @bobot). You are all awesome!
In short what is included with the version 6 release of Altair.
- we now compile against Vega-Lite version 6 (to be specific, version 6.1.0) and provide support for Python 3.14.
- we have a new datasets module,
altair.datasets, lazily access to datasets from https://github.com/vega/vega-datasets. - we are now thread-safe, altair specifications should be stable after re-running.
- we improved docs and included new examples, eg. this faceted choropleth of habitat species across geographical counties https://altair-viz.github.io/gallery/maps_faceted_species.html.
- we improved the typing experiences.
- we migrated to
uvas part of the infrastructure modernization and now have automated weekly builds.
We test all changes thoroughly, but nevertheless, if you encounter any issue or like to start a discussion. Please feel free!
Full details are available in the complete changelog below.
Breaking
- feat: Bump
vega-lite>=6by @franzhaas in #3831
Enhancements
- feat: Show python types in
ValidationErrormessages by @dangotbanned in #3735 - feat: Update
vega-liteto5.21.0by @dangotbanned in #3761 - feat: Show
user_rowsinMaxRowsErrormessage by @dangotbanned in #3768 - feat: Allow numpy scalars in altair expressions by @stanmart in #3827
- feat: adds altair.datasets by @mattijn in #3848
- feat: preserve the empty property for the three operators (&, |, ~) by @mattijn in #3853
- feat: hashing of parameter and view names by @mattijn in #3851
- feat: Allow opening the editor without validating the spec by @joelostblom in #3869
- feat: require minimal vegafusion 2 and revert #3857 by @mattijn in #3885
- feat: add warning for deduplications by @mattijn in #3902
Bug Fixes
- fix(typing): Resolve LSP violation for
ChartType.databy @dangotbanned in #3740 - fix: Replace circular import in
schemapi.pyby @dangotbanned in #3751 - fix: Include
*(Datum|Value)inSchemaValidationErrorby @dangotbanned in #3750 - fix: Resolve multiple
sphinxwarnings by @dangotbanned in #3787 - fix(typing): overload in
eval_blockincorrectly showedTrueas the default forstrictby @MarcoGorelli in #3855 - fix: import TypedDict from typing from python 3.15 by @mattijn in #3877
- fix: update typing_extensions dependency for Python < 3.15 by @daizutabi in #3881
- fix: Make
.changedproperty optional inJupyterChart#3868 by @azjps in #3871 - fix(types): Change the height and width types of
alt.Chart()frominttofloatby @joaopalmeiro in #3888 - fix: Repair vega export by @bobot in #3889
Documentation
- docs: Update LICENSE, fix copyright license year by @JasonnnW3000 in #3726
- docs: Add altair-upset link by @edmundmiller in #3786
- docs(example): Adds Confidence Interval Ellipses by @dangotbanned in #3747
- docs: Resolve
geopandas.read_file(...)warnings by @dangotbanned in #3795 - docs: bump
pyscript==2025.2.2by @dangotbanned in #3797 - docs: fix broken links by @jannisko in #3802
- docs(example): Add Faceted map using Species Habitat dataset by @dsmedia in #3809
- docs: Add documentation for initial interval selection date ranges by @dsmedia in #3815
- docs: Update the waterfall_chart.py colors by @eitanlees in #3830
- docs: Clarify how
orderandonin the param section by @joelostblom in #3629 - docs: Improved docs on Transforms by @tempdata73 in #2655
- docs: More clearly illustrate parameter compositions by @joelostblom in #3628
- docs: new dataset source, from vega_dataset to altair.dataset by @mattijn in #3859
- docs: Correct some typos by @star1327p in #3904
- docs: improve docs how to return chart as html by @mattijn in #3849
- docs: Update the Lightning Viz link by @star1327p in #3839
- docs: Iris to penguins by @baldwint in #2231
- docs: docbuild warnings by @mattijn in #3850
- docs: Make the Code of Conduct link clickable by @star1327p in #3852
- docs: note within geoshape mark page to spatial data section by @mattijn in #3892
- docs: Remove whitespace after '*' so that text is rendered italic. by @thomascamminady in #3882
- docs: fix broken external reference URLs in examples by @dsmedia in #3898
Other Changes
- chore: Bump version to 5.6.0dev by @jonmmease in #3700
- ci: Temporal examples in
vegafusionby @dangotbanned in #3702 - refactor(ruff): Apply
TC006fixes by @dangotbanned in #3706 - chore: fix
ruff,mypywarnings by @dangotbanned in #3717 - ci: Switch from
hatch,piptouvin GitHub Actions by @dangotbanned in #3719 - ci(typing): Add bundled stubs to
pyright.ignoreby @dangotbanned in #3724 - ci: bump astral-sh/setup-uv from 4 to 5 in the github-actions group by @dependabot[bot] in #3727
- chore(ruff): Fix ruff warnings by @dangotbanned in #3736
- chore(typing): fix
mypy>=1.14.0warnings by @dangotbanned in #3739 - chore(ruff): Fix
UP006warnings during codegen by @dangotbanned in #3746 - refactor: Centralize
Vegaproject versioning by @dangotbanned in #3720 - ci: Unpin
pillow, allow>=10.0.0by @dangotbanned in #3764 - chore(ruff): Update to
0.9.0by @dangotbanned in #3766 - chore(ruff): Fix
0.9.2lints by @dangotbanned in #3771 - chore: Add
needs-triageto new bug reports by @dangotbanned in #3769 - test: Make
skip_requires_pyarrowcompatible w/pytest.paramby @dangotbanned in #3772 - build: Migrate from
hatchtouvby @dangotbanned in #3723 - ci(typing): Disable
mypy[annotation-unchecked]on examples by @dangotbanned in #3775 - ci(uv): Remove dynamic version from
uv.lockby @dangotbanned in #3776 - ci(uv): bump
mypy==1.15.0by @dangotbanned in #3790 - ci: bump
narwhals>=1.25.1by @dangotbanned in #3792 - ci(uv): bump
ruff==0.9.5by @dangotbanned in #3799 - ci: bump
narwhals>=1.26.0by @dangotbanned in #3800 - ci: bump
narwhals>=1.27.1by @dangotbanned in #3807 - chore: Remove deprecated
nw.from_native(..., strict=True)by @dangotbanned in #3811 - chore(typing): Follow-up fix
_from_array_likeby @dangotbanned in #3812 - ci(ruff): move
excludetoextend-excludeby @dangotbanned in #3813 - chore: Add numfocus sponsor link by @joelostblom in #3814
- chore: Use organization-wide FUNDING.yml by @joelostblom in #3816
- chore: Bump
vega-embed==7by @franzhaas in #3829 - chore: Run
typosandcodespellagainst the codebase by @kurtmckee in #3840 - ci: bump astral-sh/setup-uv from 5 to 6 in the github-actions group by @dependabot[bot] in #3834
- ci: fix outdated
ipython[kernel]dependency by @dangotbanned in #3861 - test: update test_datasets.py by @mattijn in #3857
- ci: add nightly builds system by @mattijn in #3858
- ci: fix mypy unused-ignore in tests by @m...