NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3485 most downloaded on PyPI
The powerful data exploration & web app framework for Python.
Last release 13 days ago
21 Sep 2026
Release timing varies
gaps range from 9 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
8 years old
478 releases · first in 2018
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release is a small bug fix release preceding the upcoming major release of Panel 1.0. Many thanks to the contributors to this release which inclu
This release is a small bug fix release preceding the upcoming major release of Panel 1.0. Many thanks to the contributors to this release which include @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Tabulator client-side string filters by not parsing them as regex (4423)panel examples command by ensuring examples are correctly packaged (#4484)to_disk (#4481)Vega.selections object unless selections changed (#4497)Nothing published for this version
Nothing published for this version
Due to the upcoming release of Panel 1.0 we have also made the unconventional decision to issue new deprecation in a micro release. Specifically the I…
This release introduces a large number of bug fixes and minor enhancements. Due to the upcoming release of Panel 1.0 we have also made the unconventional decision to issue new deprecation in a micro release. Specifically the IDOM pane and Viewable.app and Viewable.pprint methods have been scheduled for deprecation. Many thanks to the contributors to this release which include @wendrul, @droumis and the core team @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Tabulator can be edited (#4292)Tabulator formatter and editor models are reflected in frontend (#4296)Tabulator (#4343)Tabulator does not error (#4343)hv.extension has been loaded (#4330)Widget.from_param (#4335)str and PathLike objects on panel.serve (#4336)panel.io.convert.convert_app(s) (#4342)ECharts and DeckGL (#4224)--index with relative path (#4288)on_load callbacks in liveness check (#4302)FileDownload still fetches live data (#4328)panel.cache on undecorated Parameterized method (#4332)hash_funcs are applied in panel.cache (#4334)panel convert respects panel.config options (#4359)refresh_token available in Auth (#4227)pn.state.served property (#4252)loading_indicator to global config (#4259)display compatibility in pyodide builds (#4270)PanelJupyterExecutor into separate module (#4276)ReactiveHTML (#4319)Plotly.link_figure parameter (#4333)CrossSelector filters apply on each keystroke (#4339)jupyter_server_extension (#4364)panel convert (#4334)panel convert (#4334)IDOM pane (#4293)Viewable.app and Viewable.pprint methods (#4293, #4347)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release primarily focuses on bug fixes. In particular it resolves various issues with support for rendering ipywidgets (particularly in ipywidget
This release primarily focuses on bug fixes. In particular it resolves various issues with support for rendering ipywidgets (particularly in ipywidgets>=8.0) and also fixes a number of issues with the Jupyter Server previews. Many thanks for @govinda18, @joelostblom, @banesullivan, @xeldnahcram, @geronimogoemon, @minasouliman, @peterfpeterson, @jlstevens and the core maintainers @maximlt, @Hoxbro, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Tqdm.process_map (#4093)convert functions from pyodide (#4135)step format in date sliders (#4152)Reacton component to simplify rendering (#4190)IPyWidget comm does not break when new widget is rendered (#4091).js mimetype is served correctly on Windows (#4118)Tabulator columns renders cells correctly (#4119)Slider widgets initialize with correct default (#4121)Matplotlib pane handles explicit width/height settings correctly (#4128)Viewer to render servable but non-viewable objects (#4131)Tabs headers do not scroll unncessarily (#4146)Location model reports as idle (#4159)EditableSlider when it is outside fixed_start / fixed_end range (#4169)ipywidgets events are handled the same way as regular events (#4171)TypeError for class which contains __panel__ (#4174)Document is set to hold events (#4178)onload callbacks immediately in pyodide app (#4191)IPyWidget kernel handling in server contexts (#4195)IPyWidget with child views in the notebook (#4197)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release primarily addresses regressions introduced in 0.14.0 and various long standing bugs. Many thanks to external contributors @liu-kan and @K
This release primarily addresses regressions introduced in 0.14.0 and various long standing bugs. Many thanks to external contributors @liu-kan and @KedoKudo and the maintainers @Hoxbro, @maximlt and @philippjfr for contributing a number of fixes.
### Minor enhancements
- Improve support for requests in pyodide (#3973)
- Add option to clear value of DatetimePicker (#3990)
- Add support for hashing dates in pn.cache (#4004)
- Silence EMPTY_LAYOUT warnings (#4056)
### Compatibility
- Fix Jupyterlite and latest PyScript compatibility (#4040)
### Bugs
#### Webassembly conversion
- Correctly handle resource mode in when converting to WebAssembly (#3967)
### Jupyter and Server
- Correctly handle future exceptions on threads (#3977)
- Fix panel serve index template (#3980)
- Do not error if curdoc has been destroyed (#3994)
- Ensure extensions loaded in jupyter kernel are served by StaticHandler (#4000)
- Various fixes for OAuth handling with pn.serve (#4006)
- Fix bug in on_load callback exception handling (#4007)
- Ensure periodic callbacks are only started on main thread (#4011)
- Ensure jupyter server extension handles explicit root_dir (#4029)
- Ensure futures are correctly awaited when executed on thread (#4031)
#### Components
- Ensure Tabulator handles filtering on edited values correctly if show_index=False (#3988, #4016)
- Ensure Tabulator declares numeric sorter for numeric dtypes (#3999)
- Fix regression initializing DiscreteSlider with non-integer value (#4009)
- Ensure that template.config.raw_css is correctly applied (#4018)
- Fix handling MenuButton clicks when split=True (#4021)
- Ensure styling on Tabulator with empty DataFrame does not error (#4028)
- Allow changing level on Debugger widget (#4057
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Remove all usage of deprecated Pane
This release focuses on three main themes:
Many, many thanks to everyone who filed issues or contributed to this release. In particular we would like to thank @janimo, @xavArtley, @thuydotm, @jmosbacher, @dmarx, @2WoLpH, @ipopa144, @sdc50 for contributions and @philippjfr, @Hoxbro, @maximlt, and @MarcSkovMadsen for ongoing maintenance and development.
defer_load of components (#3882)pn.widget helper function (#1826, #3589)config.exception_handler to easily capture, log and notify users about errors (#3893)pn.cache function for memoization support (#2411)Tabulator (#3694)location.unsync unsets query params (#3806)LiteralInput (#3174)pn.serve (#3798)ReactiveHTML loop support and validation (#3813)Perspective.plugin_config pane (#3814)--autoreload check (#3804)state.curdoc in threaded and async contexts (#3776, #3810, #3834)DatetimePicker and DatetimeRangePicker (#3788)Player.value_throttled (#3756)Markdown code syntax highlighting (#3758)background or loading parameters change (#3599)Tabulator as default param.DataFrame widget (#3912)Paneserver_destroy (#3842)pn.state.execute dispatches immediately if possible (#3859)Tabulator on css_classes or background change (#3598)Tabulator.expanded change (#3703)page Parameter when pagination is 'local' (#3704)sorters on Tabulator cell edits (#3744)Tabulator.controls renders (#3768)Tabulator (#3771, #3841)Tabulator (#3826)Tabulator (#3829)Tabulator (#3849)Tabulator (#3850)FileInput.save (#3579)Matplotlib.high_dpi option (#3591, #3594)HTML/Markdown re-rerender (#3616)Param pane (#3754)DatePicker start/end are transformed when jslinked (#3759)ReactiveHTML inline callbacks on loop variables return correct node (#3840)Perspective does not take precedence on empty dict (#3936)sizing_mode behavior when width/height are specified (#3955)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →