Version 0.9.7

Date: 2020-06-23

The 0.9.7 release unfortunately caused a major regression in layout performance due to the way optimizations in Bokeh and Panel interacted. This release fixes this regression.

  • Fix regression in layout performance (#1453)

Version 0.9.6

Date: 2020-06-21

This is a minor bug fix release primarily for compatibility with Bokeh versions >=2.1.0 along with a variety of important bug fixes. Many thanks for the many people who contributed to this release including @mattpap, @kebowen730, @xavArtley, @maximlt, @mycarta, @basnijholt, @jbednar and @philippjfr.

  • Compatibility with Bokeh 2.1 (#1424)

  • Fixes for FileDownload widget handling of callbacks (#1246, #1306)

  • Improvements and fixes for Param pane widget mapping (#1301, #1342, #1378)

  • Fixed bugs handling of closed Tabs (#1337)

  • Fix bug in layout clone method (#1349)

  • Improvements for Player widget (#1353, #1360)

  • Fix for jslink on Bokeh models (#1358)

  • Fix for rendering geometries in Vega pane (#1359)

  • Fix issue with HoloViews pane overriding selected renderer (#1429)

  • Fix issues with JSON pane depth parameter and rerendering (#1431)

  • Fixed param.Date and param.CalenderDate parameter mappings (#1433, #1434)

  • Fixed issue with enabling num_procs on pn.serve (#1436)

  • Warn if a particular extension could not be loaded (#1437)

  • Fix issues with garbage collection and potential memory leaks (#1407)

  • Support recent versions of pydeck in DeckGL pane (#1443)

  • Ensure JS callbacks on widget created from Parameters are initialized (#1439)

Version 0.9.5

Date: 2020-04-03

This release primarily focuses on improvements and additions to the documentation. Many thanks to @MarcSkovMadsen, @philippjfr and @michaelaye for contributing to this release.


  • Add with ability to save to HTML and PNG but not embed (#1224)

Bug fixes:

  • Fixed formatting of datetimes in DataFrame widget (#1221)

  • Add panel/models/vtk/ subpackage to MANIFEST to ensure it is shipped with packages


  • Add guidance about developing custom models (#1220)

  • Add Folium example to gallery (#1189))

  • Add FileDownload and FileInput example to gallery (#1193))

Version 0.9.4

Date: 2020-04-01

This is a minor release fixing a number of regressions and compatibility issues which continue to crop up due to the upgrade to Bokeh 2.0 Additionally this release completely overhauls how communication in notebook environments are handled, eliminating the need to register custom callbacks with inlined JS callbacks to sync properties. Many thanks to the contributors to this release including @hyamanieu, @maximlt, @mattpap and the maintainer @philippjfr.


  • Switch to using CommManager in notebook hugely simplifying comms in notebooks and reducing the amount of inlined Javascript (#1171)

  • Add ability to serve Flask apps directly using pn.serve (#1215)

Bug fixes:

  • Fix bug in Template which caused all roots to instantiate two models for each component (#1216)

  • Fixed bug with Bokeh 2.0 DataPicker datetime format (#1187)

  • Publish Panel.js to CDN to allow static HTML exports with CDN resources to work (#1190)

  • Handle bug in rendering Vega models with singular dataset (#1201)

  • Removed escaping workaround for HTML models resulting in broken static exports (#1206)

  • Fixed bug closing Tabs (#1208)

  • Embed Panel logo in server index.html (#1209)


  • This release adds compatibility with Bokeh 2.0.1 which caused a regression in loading custom models

Version 0.9.3

Date: 2020-03-21

This is a minor release fixing an issue with recent versions of Tornado. It also fixes issue with the packages built on the PyViz conda channel.

  • Respect write-locks on synchronous Websocket events (#1170)

Version 0.9.2

Date: 2020-03-19

This is a minor release with a number of bug fixes. Many thanks to @ceball, @Guillemdb and @philippjfr for contributing these fixes.

Bug fixes:

  • Fix regression in DiscreteSlider layout (#1163)

  • Fix for saving as PNG which regressed due to changes in bokeh 2.0 (#1165)

  • Allow pn.serve to resolve Template instances returned by a function (#1167)

  • Ensure Template can render empty HoloViews pane (#1168)

Version 0.9.1

Date: 2020-03-13

This is very minor releases fixing small regressions in the 0.9.0 release:

Bug fixes

  • Fix issue with Button label not being applied (#1152)

  • Pin pyviz_comms 0.7.4 to avoid issues with undefined vars (#1153)

Version 0.9.0

Date: 2020-03-12

This is a major release primarily for compatibility with the recent Bokeh 2.0 release. Additionally this release has a small number of features and bug fixes:


  • Added a MultiChoice widget (#1140)

  • Add FileDownload widget (#915, #1146)

  • Add ability to define Slider format option (#1142)

  • Expose pn.state.cookies and pn.state.headers to allow accessing HTTP headers and requests from inside an app (#1143)

Bug fixes:

  • Ensure DiscreteSlider respects layout options (#1144)


  • Slider no longer support callback_policy and callback_throttle as they have been replaced by the value_throttled property in bokeh

Version 0.8.1

Date: 2020-03-10

This release is a minor release with a number of bug fixes and minor enhancements. Many thanks to the community of contributors including @bstadlbauer, @ltalirz @ceball and @gmoutsofor submitting the fixes and the maintainers, including @xavArtley, @jbednar and @philippjfr, for continued development.

Minor enhancements:

  • Added verbose option to display server address (#1098) [@philippjfr]

Bug fixes:

  • Fix PNG export due to issue with PhantomJS (#1081, #1092) [@bstadlbauer, @philippjfr]

  • Fix for threaded server (#1090) [@xavArtley]

  • Ensure Plotly Pane does not perform rerender on each property change (#1109) [@philippjfr]

  • Fix issues with jslink and other callbacks in Template (#1135) [@philippjfr]

  • Various fixes for VTK pane (#1123) [@xavArtley]

  • Fixes for .show keyword arguments (#1073, #1106) [@gmoutso]

Version 0.8.0

Date: 2020-01-30

This release focused primarily on solidifying existing functionality, improving performance and closing fixing a number of important bugs. Additionally this release contains a number of exciting new functionality and components. We want to thank the many contributors to this release (a full list is provided at the bottom), particularly Marc Skov Madsen (the author of and Xavier Artusi, who has been hard at work at improving VTK support. We also want to thank the remaining contributors including @philippjfr, @ceball, @jbednar, @jlstevens, @Italirz, @mattpap, @Jacob-Barhak, @stefjunod and @kgullikson88. This release introduced only minimal changes in existing APIs and added a small number of new ones demonstrating that Panel is relatively stable and is progressing steadily towards a 1.0 release.

Major Enhancements:

  • Added new DeckGL pane (#1019, #1027) [@MarcSkovMadsen & @philippjfr]

  • Major improvements to support for JS linking (#1007) [@philippjfr]

  • Huge performance improvements when nesting a lot of components deeply (#867, #888, #895, #988) [@philippjfr]

  • Add support for displaying callback errors and print output in the notebook simplifying debugging (#977) [@philippjfr]

  • Add support for dynamically populating Tabs (#995) [@philippjfr]

  • Added FileSelector widget to browse the servers file system and select files (#909) [@philippjfr]

  • Add pn.serve function to serve multiple apps at once on the same serve (#963) [@philippjfr]

  • Add a JSON pane to display json data in a tree format (#953) [@philippjfr]

Minor Enhancements:

  • Updated Parameter mappings (#999) [@philippjfr]

  • Ensure that closed tabs update Tabs.objects (#973) [@philippjfr]

  • Fixed HoloViews axis linking across Template roots (#980) [@philippjfr]

  • Merge FactorRange when linking HoloViews axes (#968) [@philippjfr]

  • Expose title and other kwargs on .show() (#962) [@philippjfr]

  • Let FileInput widget set filename (#956) [Leopold Talirz]

  • Expose further bokeh CLI commands and added help (#951) [@philippjfr]

  • Enable responsive sizing for Vega/altair pane (#949) [@philippjfr]

  • Added encode parameter to SVG pane (#913) [@philippjfr]

  • Improve Markdown handling including syntax highlighting and indentation (#881) [@philippjfr]

  • Add ability to define Template variables (#815) [@philippjfr]

  • Allow configuring responsive behavior globally (#851) [@xavArtley]

  • Ensure that changes applied in callbacks are reflected on the frontend immediately (#857) [@philippjfr]

  • Add ability to add axes coordinates to VTK view (#817) [@xavArtley]

  • Add config option for safe_embed which ensures all state is recorded (#1040) [@philippjfr]

  • Implemented __signature__ for tab completion (#1029) [@philippjfr]

Bug fixes:

  • Fixed DataFrame widget selection parameter (#989) [@philippjfr]

  • Fixes for rendering long strings on Windows systems (#986)

  • Ensure that panel does not modify user objects (#967) [@philippjfr]

  • Fix multi-level expand Param subobject (#965) [@philippjfr]

  • Ensure load_notebook is executed only once (#1000) [@philippjfr]

  • Fixed bug updating StaticText on server (#964) [@philippjfr]

  • Do not link HoloViews axes with different types (#937) [@philippjfr]

  • Ensure that integer sliders are actually integers (#876) [@philippjfr]

  • Ensure that GridBox contents maintain size (#971) [@philippjfr]


  • Compatibility for new Param API (#992, #998) [@jlstevens]

  • Changes for compatibility with Vega5 and altair 4 (#873, #889, #892, #927, #933) [@philippjfr]

API Changes:

  • The Ace pane has been deprecated in favor of the Ace widget (#908) [@kgullikson88]


  • Updated Django multiple app example and user guide (#928) [@stefjunod]

  • Clarify developer installation instructions, and fix up some metadata. (#952, #978) [@ceball & @philippjfr]

  • Added Param reference notebook (#944) [@MarcSkovMadsen]

  • Added Divider reference notebook [@philippjfr]

Version 0.7.0

Date: 2019-11-18

This major release includes significant new functionality along with important bug and documentation fixes, including contributions from @philippjfr (maintainer and lead developer), @xavArtley (VTK support), @jbednar (docs), @DancingQuanta (FileInput), @a-recknagel (Python 3.8 support, misc), @julwin (TextAreaInput, PasswordInput), @rs2 (example notebooks), @xtaje (default values), @Karamya (Audio widget), @ceball, @ahuang11 , @eddienko, @Jacob-Barhak, @jlstevens, @jsignell, @kleavor, @lsetiawan, @mattpap, @maxibor, and @RedBeardCode.

Major enhancements:

  • Added pn.ipywidget() function for using panels and panes as ipwidgets, e.g. in voila (#745, #755, #771)

  • Greatly expanded and improved Pipeline, which now allows branching graphs (#712, #735, #737, #770)

  • Added streaming helper objects, including for the streamz package (#767, #769)

  • Added VTK gallery example and other VTK enhancements (#605, #606, #715, #729)

  • Add GridBox layout (#608, #761, #763)

  • New widgets and panes:

    • Progress bar (#726)

    • Video (#696)

    • TextAreaInput widget (#658)

    • PasswordInput widget (#655)

    • Divider (#756),

    • bi-directional jslink (#764)

    • interactive DataFrame pane for Pandas, Dask and Streamz dataframes (#560, #751)

Other enhancements:

  • Make Row/Column scrollable (#760)

  • Support file-like objects (not just paths) for images (#686)

  • Added isdatetime utility (#687)

  • Added repr, kill_all_servers, and cache to pn.state (#697, #776)

  • Added Slider value_throttled parameter (#777)

  • Extended existing widgets and panes:

    • WidgetBox can be disabled programmatically (#532)

    • Templates can now render inside a notebook cell (#666)

    • Added jscallback method to Viewable objects (#665)

    • Added min_characters parameter to AutocompleteInput (#721)

    • Added accept parameter to FileInput (#602)

    • Added definition_order parameter to CrossSelector (#570)

    • Misc widget fixes and improvements (#703, #717, #724, #762, #775)

Bug fixes and minor improvements:


Version 0.6.2

Date: 2019-08-08

Minor bugfix release patching issues with 0.6.1, primarily in the CI setup. Also removed the not-yet-supported definition_order parameter of pn.CrossSelector.

Version 0.6.4

Date: 2019-10-08

This release includes a number of important bug fixes along with some minor enhancements, including contributions from @philippjfr, @jsignell, @ahuang11, @jonmmease, and @hoseppan.


  • Allow pn.depends and pn.interact to accept widgets and update their output when widget values change (#639)

  • Add fancy_layout option to HoloViews pane (#543)

  • Allow not embedding local files (e.g. images) when exporting to HTML (#625)

Bug fixes and minor improvements:


  • Added example of opening a URL from jslink (#607)

Version 0.6.3

Date: 2019-09-19

This release saw a number of important bug and documentation fixes along with some minor enhancements.


  • Added support for embedding Player widget (#584)

  • Add support for linking HoloViews plot axes across panels (#586)

  • Allow saving to BytesIO buffer (#596)

  • Allow PeriodicCallback.period to be updated dynamically (#609)

Bug fixes:

  • While hooks are applied to model no events are sent to frontend (#585)

  • Various fixes for embedding and rendering (#594)


  • New example of periodic callbacks (#573)

  • Improve panel serve documentation (#611, #614)

  • Add server deployment guide (#642)

Version 0.6.1

Date: 2019-08-01T14:54:20Z

Version 0.6.0

Date: 2019-06-02

Version 0.5.1

Date: 2019-04-11

Minor release closely following up on 0.5.0 updating version requirements to include the officially released bokeh 1.1.0. This release also includes contributions from @philippjfr (with fixes for pipeline and embed features), @xavArtley (addition of a new widget) and @banesullivan (fixes for VTK support).


  • Addition of Spinner widget for numeric inputs (#368)


  • Skip jslinked widgets when using embed (#376)

  • Correctly revert changes to pipelines when stage transitions fail (#375)

  • Fixed bug handling scalar arrays in VTK pane (#372)

Version 0.5.0

Date: 2019-04-04

Major new release, greatly improving usability and capabilities. Includes contributions from @philippjfr (docs, better layouts, and many other features), @xavArtley (VTK support, Ace code editor), @banesullivan (VTK support), @jbednar and @rtmatx (docs), @jsignell (docs, infrastructure, interact support), and @jlstevens (labels for parameters).

Major new features:

  • Now uses Bokeh 1.1’s greatly improved layout system, requiring far fewer manual adjustments to spacing (#32)

  • Greatly expanded docs, now with galleries (#241, #251, #265, #281, #318, #332, #347, #340)

  • Allow embedding app state, to support static HTML export of panels (#250)

  • Added new GridSpec layout type, making it simpler to make grid-based dashboards (#338)

  • Added VTK 3D object pane (#312, #337, #349, #355, #363)

  • Added Ace code editor pane (#359)

  • Allow defining external JS and CSS resources via config, making it easier to extend Panel (#330)

  • Add HTML model capable of executing JS code, allowing more complex embedded items (#32)

  • Add a KaTeX and MathJax based LaTeX pane, replacing the previous limited matplotlib/PNG-based support (#311)

Other new features:

  • Allow passing Parameter instances to Param pane, making it much simpler to work with individual parameters (#303)

  • Added parameter for widget alignment (#367)

  • Allow specifying initial value when specifying min/max/step for interact (#334)

  • Add support for param.Number step (#365)

  • Add a PeriodicCallback (#348)

  • Expose curdoc and session_context when using serve (#336)

  • Add support for saving and loading embedded data from JSON (#301)

  • Add support for specifying arbitrary label for Parameters (#290)

  • Add ColorPicker widget (#267)

  • Add support for interact title (#266)

Bugfixes and minor improvements:

Changes potentially affecting backwards compatibility:

  • Refactored io subpackage (#315)

  • Moved panes and widgets into subpackage (#283)

  • Cleaned up wdiget, deploy, and export APIs (#268, #269)

  • Renamed pane precedence to priority to avoid confusion with Param precedence (#235)

Version 0.3.1

Date: 2018-12-05

Minor release fixing packaging issues.

Version 0.3.0

Date: 2018-12-05

Thanks to @mhc03 for bugfixes.

New features and enhancements

  • New app: Euler’s Method (#161)

  • New widgets and panes: Player (#110), DiscretePlayer (#171), CrossSelector (#153)

  • Spinner (spinner.gif)

  • Compositional string reprs (#129)

  • Add Param.widgets parameter to override default widgets (#172)

  • Pipeline improvements (#145, etc.)

  • Additional entry points for user commands (#176)

  • Support calling from anaconda-project (#133)

  • Improved docs


Compatibility changes

  • Renamed Param expand options (#127)

Version 0.4.0

Date: 2019-01-28

Thanks to @xavArtley for several contributions, and to @lebedov for bugfixes.

New features:

  • Now Python2 compatible (#225)

  • Audio player widget (#215, #221)

  • FileInput widget (#207)

  • General support for linking Panel objects, even in static exports (#199)

  • New user-guide notebooks: Introduction (#178), Links (#195).


Bug fixes:

Version 0.1.3

Date: 2018-10-23