Skip to content

pydeck: bump frontend to ~9.3.*, fix widget JSON registration, add widget gallery examples#10242

Merged
chrisgervang merged 15 commits into
masterfrom
claude/prepare-pydeck-0.9.3-release-53Qub
Jul 2, 2026
Merged

pydeck: bump frontend to ~9.3.*, fix widget JSON registration, add widget gallery examples#10242
chrisgervang merged 15 commits into
masterfrom
claude/prepare-pydeck-0.9.3-release-53Qub

Conversation

@chrisgervang

@chrisgervang chrisgervang commented Apr 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • pydeck/frontend_semver.py: Lock pydeck frontend to ~9.3.* (was ~9.2.*)
  • bump_version.py: Fix rewrite_frontend_version_file() to generate ~X.Y.* tilde-range from lerna.json instead of the exact patch version; also fix quote style to match Black (double quotes)
  • create-deck.js: Fix widget JSON converter registration — InfoWidget, ThemeWidget, and LoadingWidget had graduated from experimental (no _ prefix) but were still referenced as _InfoWidget etc., overwriting their correct extractElements registrations with undefined. Also add TimelineWidget which was missing entirely, and remove the defunct FpsWidget entry.
  • examples/widgets.py: Add PopupWidget (static HTML popup at a geographic coordinate) and InfoWidget (hover mode with @@= expression for getTooltip) to the widget gallery

Notes

  • @@=object.properties.name works for getTooltip because widget props go through the same JSONConverter pipeline as layer props (convertJSONRecursively processes @@= strings in any @@type object)
  • pydeck version stays at 0.9.2 — not ready to cut a release yet

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.py now writes a tilde minor range (~X.Y.*) from lerna.json into frontend_semver.py instead of pinning the exact patch, and aligns generated Python strings with Black (double quotes).

create-deck.js fixes pydeck/playground JSONConverter widget registration: graduated widgets (InfoWidget, ThemeWidget, LoadingWidget) are no longer overwritten via missing _-prefixed exports; TimelineWidget is registered explicitly; FpsWidget is removed.

The widgets example adds PopupWidget (anchored HTML at a coordinate) and InfoWidget (hover tooltips via @@= expressions). Docs highlight the browser playground.

Separately, dmsToDecimal in the geocoder now parses negative DMS degree strings correctly, with new tests; uv.lock picks 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.

Comment thread modules/widgets/src/lib/geocode/geocoders.ts
Comment thread bindings/pydeck/examples/widgets.py Outdated
claude added 6 commits April 18, 2026 22:53
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
chrisgervang force-pushed the claude/prepare-pydeck-0.9.3-release-53Qub branch from 40a0023 to 7fbc9aa Compare April 18, 2026 22:53
@chrisgervang

Copy link
Copy Markdown
Collaborator Author

Was this completed elsewhere @ibgreen-openai? If not, we'll still need this

@chrisgervang chrisgervang reopened this May 12, 2026
@coveralls

coveralls commented May 12, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 83.112% (+0.003%) from 83.109% — claude/prepare-pydeck-0.9.3-release-53Qub into master

@chrisgervang chrisgervang added this to the pydeck 0.9.3 milestone Jun 29, 2026
chrisgervang and others added 7 commits July 2, 2026 09:14
…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>
@chrisgervang
chrisgervang merged commit fe89c44 into master Jul 2, 2026
6 checks passed
@chrisgervang
chrisgervang deleted the claude/prepare-pydeck-0.9.3-release-53Qub branch July 2, 2026 17:07
chrisgervang added a commit that referenced this pull request Jul 2, 2026
…#10242)

Reverts:
- daf7076 fix(widgets): handle negative DMS degrees and guard InfoWidget tooltip expression
- ec11d78 chore(deps): bump bleach to 6.4.0 and jupyter-server to 2.20.0
- 4dd51ef docs: add CHANGELOG entry for deck.gl v9.3.6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
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