Skip to content

release(pydeck): Publish pydeck v0.9.2#10193

Merged
chrisgervang merged 18 commits intomasterfrom
chr/pydeck-0.9.2-release
Apr 16, 2026
Merged

release(pydeck): Publish pydeck v0.9.2#10193
chrisgervang merged 18 commits intomasterfrom
chr/pydeck-0.9.2-release

Conversation

@chrisgervang
Copy link
Copy Markdown
Collaborator

@chrisgervang chrisgervang commented Apr 9, 2026

Summary

Release pydeck v0.9.2, the first pydeck release since May 2024. This release aligns pydeck with deck.gl v9.2 and includes significant new features that have been unreleased on PyPI.

What's new in 0.9.2

Release process

After merging this PR:

  1. Verify @deck.gl/jupyter-widget@~9.2.* is available on jsDelivr
  2. Test in fresh venv:
    • .to_html() in Jupyter Notebook
    • .to_html() in JupyterLab
    • .to_html() in Python REPL
    • .show() in Jupyter Notebook (if widget bindings are functional)
  3. Publish to test PyPI first:
    cd bindings/pydeck
    make publish-test-pypi
    pip install -i https://test.pypi.org/simple/ pydeck==0.9.2
    
  4. Publish to PyPI:
    cd bindings/pydeck
    make publish-pypi
    
  5. Verify on PyPI and Conda-forge
  6. Optionally cherry-pick to 9.2-release branch
  7. Notify deck.gl Slack channel

Version details

  • pydeck: 0.9.10.9.2
  • DECKGL_SEMVER: ~9.2.* (unchanged)
  • Python support: >=3.8

🤖 Generated with Claude Code


Note

Low Risk
Primarily version/documentation updates for a release; no runtime or security-sensitive code changes beyond packaging metadata.

Overview
Publishes pydeck v0.9.2 by bumping version metadata across the package (pyproject.toml, pydeck/_version.py, Sphinx docs/conf.py, and uv.lock).

Updates release documentation: refreshes docs/CHANGELOG.rst with 0.9.2 notes/date and adjusts PUBLISH.md TestPyPI install instructions to use uv venv plus --extra-index-url/--index-strategy so dependencies resolve from PyPI while pulling pydeck from TestPyPI.

Reviewed by Cursor Bugbot for commit 40ed7d9. Bugbot is set up for automated code reviews on this repo. Configure here.

@coveralls
Copy link
Copy Markdown

coveralls commented Apr 9, 2026

Coverage Status

coverage: 81.588%. remained the same — chr/pydeck-0.9.2-release into master

Comment thread bindings/pydeck/Makefile
chrisgervang and others added 5 commits April 9, 2026 18:18
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Soften bump_version.py guidance: works from release branches, manual
  only needed when releasing from master with pre-release lerna.json
- Point to Makefile targets (publish-pypi, publish-test-pypi, release)
  instead of inline commands
- Update Makefile publish targets to use python -m build instead of
  deprecated setup.py sdist bdist_wheel
- Add twine explanation for unfamiliar contributors
- Document dormant binder branch and broken screenshot-examples target

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ocs/conf.py

bump_version.py only updated _version.py and frontend_semver.py. Since
python -m build reads the version from pyproject.toml, make release
would publish a stale version. Now all version files are kept in sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…etup instructions

- Consolidate Jupyter widget status notes: full explanation on jupyter.rst,
  one-liner with link on binary_transfer, event_handling, and installation
- Comment out (not delete) nbextension/labextension setup and
  make prepare-jupyter instructions for future restoration
- Update contributing.rst: uv instead of pip, .venv path, remove Travis CI ref
- Fix uber/deck.gl → visgl/deck.gl in mybinder URLs
- Add Python 3.8+ requirement to installation.rst
- Update PUBLISH.md with local build testing instructions and .show() vs
  .to_html() clarification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update deck.py and installation.rst to document both deck.gl JS env var
conventions (MapboxAccessToken, GoogleMapsAPIKey) and pydeck conventions
(MAPBOX_API_KEY, GOOGLE_MAPS_API_KEY). The deck.py _set_api_keys method
now checks the deck.gl convention first, matching how deck.gl JS works.

Also fixes:
- terrain_layer.py: use os.environ.get() for both conventions instead of
  crashing on missing MAPBOX_API_KEY
- images.rst: remove nonexistent tile_3d_layer, add missing gallery entries
- event_handling.rst: fix title underline length
- geopandas_integration.rst: fix title underline length

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 404e54d to 756e4fc Compare April 10, 2026 01:20
@chrisgervang chrisgervang changed the base branch from master to chr/pydeck-docs-and-tooling April 10, 2026 01:20
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 756e4fc to 882056a Compare April 10, 2026 01:25
Add a5_layer, maplibre_globe, scenegraph_layer, and widgets to the
gallery grid on the docs homepage. Screenshot images are not yet
available — entries will show text-only links until images are added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch 2 times, most recently from 0e529cd to 78495e5 Compare April 10, 2026 01:33
@chrisgervang chrisgervang force-pushed the chr/pydeck-docs-and-tooling branch from 85ec7b4 to 1c2516e Compare April 10, 2026 01:39
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 78495e5 to b6bec24 Compare April 10, 2026 01:39
@chrisgervang chrisgervang force-pushed the chr/pydeck-docs-and-tooling branch from 1c2516e to 66951b9 Compare April 10, 2026 02:01
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from b6bec24 to 50765d9 Compare April 10, 2026 02:01
- templates.py: Generate RST title underlines dynamically based on title
  length instead of using a fixed-width string that was too short for
  longer titles like "Geopandas Integration"
- widgets.py: Remove SplitterWidget which requires deck.gl view layout
  management not supported by pydeck's HTML rendering. Simplify to a
  single-view example showcasing standard navigation widgets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-docs-and-tooling branch from 66951b9 to c8be2e3 Compare April 10, 2026 02:23
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 50765d9 to 2a8252d Compare April 10, 2026 02:24
…lery screenshots

Migrate snap_thumbnails.py from abandoned pyppeteer to Playwright, fix
deprecated Image.ANTIALIAS and asyncio.get_event_loop() calls, and generate
thumbnail screenshots for the 4 new gallery examples (a5_layer, maplibre_globe,
scenegraph_layer, widgets). Add playwright and Pillow to dev requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 2a8252d to 96897a0 Compare April 10, 2026 04:58
Include uv.lock for reproducible dev installs and update the screenshot
examples section in PUBLISH.md to reflect the working Playwright-based
snap_thumbnails workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 96897a0 to ef93669 Compare April 10, 2026 06:12
Copy link
Copy Markdown
Collaborator

@felixpalmer felixpalmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible to also publish pydeck-carto? Looks like it just takes a few version bumps

Regenerate grid.html from template (which sorts automatically) and
alphabetize images.rst entries to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from ef93669 to 148b46a Compare April 10, 2026 16:52
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 148b46a. Configure here.

Comment thread bindings/pydeck/pyproject.toml
@chrisgervang
Copy link
Copy Markdown
Collaborator Author

Would it be possible to also publish pydeck-carto? Looks like it just takes a few version bumps

Yeah, the main thing stopping me from doing it would be not having pypi credentials. I'll DM you my usernames

chrisgervang and others added 2 commits April 10, 2026 11:50
This file was force-added as a band-aid for the title underline warning,
but the real fix is in templates.py (dynamic underline length). The file
is auto-generated on every sphinx build and should remain gitignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bump pydeck version to 0.9.2 for the deck.gl 9.2 release. Includes
widgets support, Maplibre globe, pandas 3.x compat, and uv migration.

DECKGL_SEMVER remains at ~9.2.* (unchanged).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang force-pushed the chr/pydeck-0.9.2-release branch from 148b46a to 2ec4b3a Compare April 10, 2026 18:50
Base automatically changed from chr/pydeck-docs-and-tooling to master April 10, 2026 18:58
@jmakovicka
Copy link
Copy Markdown

Hi, could you please include the ipywidgets 8 support?
#7731

@chrisgervang
Copy link
Copy Markdown
Collaborator Author

Hi, could you please include the ipywidgets 8 support? #7731

This release is focused on stability and getting unreleased features out that have been hanging around for a couple of years. I agree, it'd be nice to add in a future release

chrisgervang and others added 2 commits April 16, 2026 10:34
Add --extra-index-url and --index-strategy flags needed for installing
from TestPyPI when dependencies live on real PyPI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chrisgervang chrisgervang merged commit 0ba48cf into master Apr 16, 2026
4 checks passed
@chrisgervang chrisgervang deleted the chr/pydeck-0.9.2-release branch April 16, 2026 18:25
chrisgervang added a commit that referenced this pull request Apr 17, 2026
* docs(pydeck): Update PUBLISH.md to reflect current uv-based workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Address review comments on PUBLISH.md and update Makefile

- Soften bump_version.py guidance: works from release branches, manual
  only needed when releasing from master with pre-release lerna.json
- Point to Makefile targets (publish-pypi, publish-test-pypi, release)
  instead of inline commands
- Update Makefile publish targets to use python -m build instead of
  deprecated setup.py sdist bdist_wheel
- Add twine explanation for unfamiliar contributors
- Document dormant binder branch and broken screenshot-examples target

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Update bump_version.py to also bump pyproject.toml and docs/conf.py

bump_version.py only updated _version.py and frontend_semver.py. Since
python -m build reads the version from pyproject.toml, make release
would publish a stale version. Now all version files are kept in sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Update RTD docs for v0.9+ widget status and modernize setup instructions

- Consolidate Jupyter widget status notes: full explanation on jupyter.rst,
  one-liner with link on binary_transfer, event_handling, and installation
- Comment out (not delete) nbextension/labextension setup and
  make prepare-jupyter instructions for future restoration
- Update contributing.rst: uv instead of pip, .venv path, remove Travis CI ref
- Fix uber/deck.gl → visgl/deck.gl in mybinder URLs
- Add Python 3.8+ requirement to installation.rst
- Update PUBLISH.md with local build testing instructions and .show() vs
  .to_html() clarification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Document dual env var conventions and fix sphinx warnings

Update deck.py and installation.rst to document both deck.gl JS env var
conventions (MapboxAccessToken, GoogleMapsAPIKey) and pydeck conventions
(MAPBOX_API_KEY, GOOGLE_MAPS_API_KEY). The deck.py _set_api_keys method
now checks the deck.gl convention first, matching how deck.gl JS works.

Also fixes:
- terrain_layer.py: use os.environ.get() for both conventions instead of
  crashing on missing MAPBOX_API_KEY
- images.rst: remove nonexistent tile_3d_layer, add missing gallery entries
- event_handling.rst: fix title underline length
- geopandas_integration.rst: fix title underline length

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Fix geopandas title underline and add types.rst to toctree

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Add new gallery examples to homepage grid

Add a5_layer, maplibre_globe, scenegraph_layer, and widgets to the
gallery grid on the docs homepage. Screenshot images are not yet
available — entries will show text-only links until images are added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Fix gallery title underline template and widgets example

- templates.py: Generate RST title underlines dynamically based on title
  length instead of using a fixed-width string that was too short for
  longer titles like "Geopandas Integration"
- widgets.py: Remove SplitterWidget which requires deck.gl view layout
  management not supported by pydeck's HTML rendering. Simplify to a
  single-view example showcasing standard navigation widgets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Modernize snap_thumbnails to use Playwright and add gallery screenshots

Migrate snap_thumbnails.py from abandoned pyppeteer to Playwright, fix
deprecated Image.ANTIALIAS and asyncio.get_event_loop() calls, and generate
thumbnail screenshots for the 4 new gallery examples (a5_layer, maplibre_globe,
scenegraph_layer, widgets). Add playwright and Pillow to dev requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Add uv.lock and update PUBLISH.md screenshot instructions

Include uv.lock for reproducible dev installs and update the screenshot
examples section in PUBLISH.md to reflect the working Playwright-based
snap_thumbnails workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Sort gallery grid and images.rst alphabetically

Regenerate grid.html from template (which sorts automatically) and
alphabetize images.rst entries to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Remove force-added geopandas_integration.rst from tracking

This file was force-added as a band-aid for the title underline warning,
but the real fix is in templates.py (dynamic underline length). The file
is auto-generated on every sphinx build and should remain gitignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Bump version to 0.9.2

Bump pydeck version to 0.9.2 for the deck.gl 9.2 release. Includes
widgets support, Maplibre globe, pandas 3.x compat, and uv migration.

DECKGL_SEMVER remains at ~9.2.* (unchanged).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Update changelog date to Apr 16 2026

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Update test release install instructions in PUBLISH.md

Add --extra-index-url and --index-strategy flags needed for installing
from TestPyPI when dependencies live on real PyPI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Regenerate uv.lock for 0.9.2 version bump

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
chrisgervang added a commit that referenced this pull request Apr 17, 2026
* docs(pydeck): Update PUBLISH.md to reflect current uv-based workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Address review comments on PUBLISH.md and update Makefile

- Soften bump_version.py guidance: works from release branches, manual
  only needed when releasing from master with pre-release lerna.json
- Point to Makefile targets (publish-pypi, publish-test-pypi, release)
  instead of inline commands
- Update Makefile publish targets to use python -m build instead of
  deprecated setup.py sdist bdist_wheel
- Add twine explanation for unfamiliar contributors
- Document dormant binder branch and broken screenshot-examples target

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Update bump_version.py to also bump pyproject.toml and docs/conf.py

bump_version.py only updated _version.py and frontend_semver.py. Since
python -m build reads the version from pyproject.toml, make release
would publish a stale version. Now all version files are kept in sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Update RTD docs for v0.9+ widget status and modernize setup instructions

- Consolidate Jupyter widget status notes: full explanation on jupyter.rst,
  one-liner with link on binary_transfer, event_handling, and installation
- Comment out (not delete) nbextension/labextension setup and
  make prepare-jupyter instructions for future restoration
- Update contributing.rst: uv instead of pip, .venv path, remove Travis CI ref
- Fix uber/deck.gl → visgl/deck.gl in mybinder URLs
- Add Python 3.8+ requirement to installation.rst
- Update PUBLISH.md with local build testing instructions and .show() vs
  .to_html() clarification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Document dual env var conventions and fix sphinx warnings

Update deck.py and installation.rst to document both deck.gl JS env var
conventions (MapboxAccessToken, GoogleMapsAPIKey) and pydeck conventions
(MAPBOX_API_KEY, GOOGLE_MAPS_API_KEY). The deck.py _set_api_keys method
now checks the deck.gl convention first, matching how deck.gl JS works.

Also fixes:
- terrain_layer.py: use os.environ.get() for both conventions instead of
  crashing on missing MAPBOX_API_KEY
- images.rst: remove nonexistent tile_3d_layer, add missing gallery entries
- event_handling.rst: fix title underline length
- geopandas_integration.rst: fix title underline length

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Fix geopandas title underline and add types.rst to toctree

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Add new gallery examples to homepage grid

Add a5_layer, maplibre_globe, scenegraph_layer, and widgets to the
gallery grid on the docs homepage. Screenshot images are not yet
available — entries will show text-only links until images are added.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Fix gallery title underline template and widgets example

- templates.py: Generate RST title underlines dynamically based on title
  length instead of using a fixed-width string that was too short for
  longer titles like "Geopandas Integration"
- widgets.py: Remove SplitterWidget which requires deck.gl view layout
  management not supported by pydeck's HTML rendering. Simplify to a
  single-view example showcasing standard navigation widgets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Modernize snap_thumbnails to use Playwright and add gallery screenshots

Migrate snap_thumbnails.py from abandoned pyppeteer to Playwright, fix
deprecated Image.ANTIALIAS and asyncio.get_event_loop() calls, and generate
thumbnail screenshots for the 4 new gallery examples (a5_layer, maplibre_globe,
scenegraph_layer, widgets). Add playwright and Pillow to dev requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Add uv.lock and update PUBLISH.md screenshot instructions

Include uv.lock for reproducible dev installs and update the screenshot
examples section in PUBLISH.md to reflect the working Playwright-based
snap_thumbnails workflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Sort gallery grid and images.rst alphabetically

Regenerate grid.html from template (which sorts automatically) and
alphabetize images.rst entries to match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(pydeck): Remove force-added geopandas_integration.rst from tracking

This file was force-added as a band-aid for the title underline warning,
but the real fix is in templates.py (dynamic underline length). The file
is auto-generated on every sphinx build and should remain gitignored.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Bump version to 0.9.2

Bump pydeck version to 0.9.2 for the deck.gl 9.2 release. Includes
widgets support, Maplibre globe, pandas 3.x compat, and uv migration.

DECKGL_SEMVER remains at ~9.2.* (unchanged).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Update changelog date to Apr 16 2026

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(pydeck): Update test release install instructions in PUBLISH.md

Add --extra-index-url and --index-strategy flags needed for installing
from TestPyPI when dependencies live on real PyPI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* release(pydeck): Regenerate uv.lock for 0.9.2 version bump

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants