pydeck: bump frontend to ~9.3.*, fix widget JSON registration, add widget gallery examples#10242
Merged
Merged
Conversation
Bump pydeck version 0.9.2 → 0.9.3 and lock frontend to deck.gl ~9.3.*. Update bump_version.py to generate tilde-range semver (~X.Y.*) from lerna.json. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST
Demonstrates the two new 9.3 widgets: - PopupWidget: static HTML popup anchored at Heathrow Airport coordinates - InfoWidget: hover-mode widget (getTooltip callback must be set on the JS side) https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST
create-deck.js was overwriting InfoWidget, ThemeWidget, and LoadingWidget with undefined by referencing non-existent _-prefixed exports; those widgets are already captured by extractElements. Removed the incorrect entries. Update the widgets example to use @@= expression syntax for InfoWidget's getTooltip, and drop "new in 9.3" labels. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST
Not ready for release yet; keep frontend locked to ~9.3.* but hold the Python package version at 0.9.2. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST
chrisgervang
force-pushed
the
claude/prepare-pydeck-0.9.3-release-53Qub
branch
from
April 18, 2026 22:53
40a0023 to
7fbc9aa
Compare
felixpalmer
approved these changes
Apr 20, 2026
Collaborator
Author
|
Was this completed elsewhere @ibgreen-openai? If not, we'll still need this |
…p expression The dmsToDecimal function miscalculated when degrees were negative with non-zero minutes/seconds (e.g. -37°48'00" → -36.2 instead of -37.8). Also guard the InfoWidget example's @@= expression against undefined object when hovering empty space. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…link Add pydeck 0.9.3 entry to CHANGELOG.rst, a pydeck subsection under deck.gl v9.3 whats-new, and link to the new pydeck playground from the pydeck docs index page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pydeck has its own docs site with CHANGELOG.rst as the canonical release notes location. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The negative DMS parsing fix is a deck.gl core change, not a pydeck change. Move it to the v9.3 patch releases section in whats-new.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Patch fixes aren't historically documented in this file on master. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Security updates for pydeck lockfile: - bleach 6.4.0: XSS fixes in URI/formaction sanitization (GHSA-8rfp-98v4-mmr6) - jupyter-server 2.20.0: CVE-2026-44727 (GHSA-fcw5-x6j4-ccmp) Supersedes #10390 and #10391. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 tasks
chrisgervang
added a commit
that referenced
this pull request
Jul 2, 2026
…dget gallery examples (#10242) * Prepare pydeck 0.9.3 release Bump pydeck version 0.9.2 → 0.9.3 and lock frontend to deck.gl ~9.3.*. Update bump_version.py to generate tilde-range semver (~X.Y.*) from lerna.json. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * Fix quote style to double quotes per Black formatter https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * Add PopupWidget and InfoWidget to pydeck widget gallery example Demonstrates the two new 9.3 widgets: - PopupWidget: static HTML popup anchored at Heathrow Airport coordinates - InfoWidget: hover-mode widget (getTooltip callback must be set on the JS side) https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * Fix InfoWidget JSON registration and use @@= for getTooltip in example create-deck.js was overwriting InfoWidget, ThemeWidget, and LoadingWidget with undefined by referencing non-existent _-prefixed exports; those widgets are already captured by extractElements. Removed the incorrect entries. Update the widgets example to use @@= expression syntax for InfoWidget's getTooltip, and drop "new in 9.3" labels. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * Register TimelineWidget in JSON converter configuration https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * Revert pydeck version bump to 0.9.2 Not ready for release yet; keep frontend locked to ~9.3.* but hold the Python package version at 0.9.2. https://claude.ai/code/session_012C1gkGaLFxk6HMvN4VMrST * fix(widgets): handle negative DMS degrees and guard InfoWidget tooltip expression The dmsToDecimal function miscalculated when degrees were negative with non-zero minutes/seconds (e.g. -37°48'00" → -36.2 instead of -37.8). Also guard the InfoWidget example's @@= expression against undefined object when hovering empty space. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(pydeck): add 0.9.3 changelog, whats-new section, and playground link Add pydeck 0.9.3 entry to CHANGELOG.rst, a pydeck subsection under deck.gl v9.3 whats-new, and link to the new pydeck playground from the pydeck docs index page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: remove pydeck section from deck.gl whats-new pydeck has its own docs site with CHANGELOG.rst as the canonical release notes location. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: move DMS fix to deck.gl whats-new patch notes The negative DMS parsing fix is a deck.gl core change, not a pydeck change. Move it to the v9.3 patch releases section in whats-new.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: remove patch release note from whats-new Patch fixes aren't historically documented in this file on master. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore(deps): bump bleach to 6.4.0 and jupyter-server to 2.20.0 Security updates for pydeck lockfile: - bleach 6.4.0: XSS fixes in URI/formaction sanitization (GHSA-8rfp-98v4-mmr6) - jupyter-server 2.20.0: CVE-2026-44727 (GHSA-fcw5-x6j4-ccmp) Supersedes #10390 and #10391. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Jul 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pydeck/frontend_semver.py: Lock pydeck frontend to~9.3.*(was~9.2.*)bump_version.py: Fixrewrite_frontend_version_file()to generate~X.Y.*tilde-range fromlerna.jsoninstead of the exact patch version; also fix quote style to match Black (double quotes)create-deck.js: Fix widget JSON converter registration —InfoWidget,ThemeWidget, andLoadingWidgethad graduated from experimental (no_prefix) but were still referenced as_InfoWidgetetc., overwriting their correctextractElementsregistrations withundefined. Also addTimelineWidgetwhich was missing entirely, and remove the defunctFpsWidgetentry.examples/widgets.py: AddPopupWidget(static HTML popup at a geographic coordinate) andInfoWidget(hover mode with@@=expression forgetTooltip) to the widget galleryNotes
@@=object.properties.nameworks forgetTooltipbecause widget props go through the sameJSONConverterpipeline as layer props (convertJSONRecursivelyprocesses@@=strings in any@@typeobject)Note
Medium Risk
Frontend semver and JSONConverter widget mapping affect all pydeck HTML/Jupyter renders; the geocoder change is localized but alters coordinate parsing for negative DMS inputs.
Overview
Bumps pydeck’s bundled deck.gl frontend from
~9.2.*to~9.3.*and documents 0.9.3 (deck.gl v9.3, playground link, widget gallery updates).bump_version.pynow writes a tilde minor range (~X.Y.*) fromlerna.jsonintofrontend_semver.pyinstead of pinning the exact patch, and aligns generated Python strings with Black (double quotes).create-deck.jsfixes pydeck/playground JSONConverter widget registration: graduated widgets (InfoWidget,ThemeWidget,LoadingWidget) are no longer overwritten via missing_-prefixed exports;TimelineWidgetis registered explicitly;FpsWidgetis removed.The widgets example adds
PopupWidget(anchored HTML at a coordinate) andInfoWidget(hover tooltips via@@=expressions). Docs highlight the browser playground.Separately,
dmsToDecimalin the geocoder now parses negative DMS degree strings correctly, with new tests;uv.lockpicks up dev dependency bumps (e.g. bleach, jupyter-server).Reviewed by Cursor Bugbot for commit 5939e2b. Bugbot is set up for automated code reviews on this repo. Configure here.