Skip to content

Latest commit

 

History

History
2313 lines (1706 loc) · 188 KB

CHANGELOG.md

File metadata and controls

2313 lines (1706 loc) · 188 KB

Releases

Version 0.14.1

Date: 2022-10-28

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

Version 0.14.0

Date: 2022-09-30

This release focuses on three main themes:

  • Support for running Panel apps entirely in the browser using WebAssembly (via Pyodide and PyScript)
  • Improvements in the app-user experience by making it easier to build responsive and performant applications
  • Improvements in the developer experience through static typing and docstrings.

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.

Features

  • Add support for converting Panel apps to pyscript/pyodide (#3817, #3830, #3851, #3856, #3857, #3858, #3860, #3861, #3863, #3864, #3868, #3878)
  • Manage our own CDN to improve performance and reliability for delivering JS payloads (#3867, #3870)
  • Add ability to defer_load of components (#3882)
  • Add pn.widget helper function (#1826, #3589)
  • Add config.exception_handler to easily capture, log and notify users about errors (#3893)
  • Implement pn.cache function for memoization support (#2411)
  • Rewrite server extension to run Panel applications in kernels so that previews run in the same environment as the deployed app (#3763)
  • Add ability to define authorization callback (#3777)
  • Support memray profiler (#3509)
  • Add liveness endpoint (#3832)
  • Add ability to configure exception handler (#3896)

Enhancements

  • Ensure OAuth redirects to requested app and retains query arguments (#3555)
  • Add extension entry point (#3738)
  • Update Admin Logs page to use Tabulator (#3694)
  • Ensure location.unsync unsets query params (#3806)
  • Allow None value on numeric sliders and LiteralInput (#3174)
  • Allow serving admin panel with pn.serve (#3798)
  • Improve ReactiveHTML loop support and validation (#3813)
  • Support declaring Perspective.plugin_config pane (#3814)
  • Do not flicker busy indicator during --autoreload check (#3804)
  • Improve robustness of state.curdoc in threaded and async contexts (#3776, #3810, #3834)
  • Support datetime bounds for DatetimePicker and DatetimeRangePicker (#3788)
  • Allow setting the Oauth provider using environment variables (#3698)
  • Implement Player.value_throttled (#3756)
  • Ensure that URL query parameters are preserved during OAuth (#3656)
  • Improve Markdown code syntax highlighting (#3758)
  • Ensure components do not re-render if background or loading parameters change (#3599)
  • Add ability to define admin dashboard plugins (#3668)
  • Do not calculate embed state for disabled widgets (#3757)
  • Add hard bounds to editable sliders (#3739)
  • Add bundling of shared resources (#3894)
  • Add Tabulator as default param.DataFrame widget (#3912)

Documentation

Compatibility & Version updates

  • Support ipywidgets>=8.0 (#3782)
  • Bump jsoneditor package (#3838)
  • Upgrade to Tabulator 5.3.2 (#3784)
  • Improve Django compatibility (#3843, #3835)
  • Remove all usage of deprecated Pane

Bugs

Server

  • Ensure closed websocket does not cause errors
  • Handle session and websocket close cleanly (#3769)
  • Fix prefix handling for admin page (#3809)
  • Support admin dashboard in multi-process deployments (#3812)
  • Improve document cleanup when not invoked using server_destroy (#3842)
  • Ensure pn.state.execute dispatches immediately if possible (#3859)
  • Ensure autoload.js resources are appropriately prefixed (#3873)

Notebook

  • Fix support for copying cells and creating new views in JupyterLab (#3652)
  • Ensure output renders in VSCode notebook with latest ipywidgets (#3765)
  • Resolve issues with Jupyter slowdown due to event_loop patching on Windows (#3770)
    • Ensure old comm managers do not raise errors in notebook (#3853)
    • Simplify rendering of ipywidget (#3937)

Tabulator

  • Do not re-render Tabulator on css_classes or background change (#3598)
  • Ensure expand icon updates on Tabulator.expanded change (#3703)
  • Update page Parameter when pagination is 'local' (#3704)
  • Do not apply sorters on Tabulator cell edits (#3744)
  • Ensure Tabulator.controls renders (#3768)
  • Ensure correctness of event row and selection indices in Tabulator (#3771, #3841)
  • Fix issues with frontend and backend sorters being out of sync in Tabulator (#3825, #3839)
  • Fix default values of a list header filter in Tabulator (#3826)
  • Fix the edit event with a python filter in Tabulator (#3829)
  • Disable client-side date filtering on Tabulator (#3849)
  • Support editing of pandas masked array dtypes in Tabulator (#3850)
  • Fix issues editing a cell when client-side filtering applied (#3852)
  • Do not recompute data when local pagination is enabled (#3854)
  • Don't skip filtering when the column name is undefined (#3862)

Misc

  • Fix FileInput.save (#3579)
  • Fix issues with Matplotlib.high_dpi option (#3591, #3594)
  • Ensure layout recomputes on HTML/Markdown re-rerender (#3616)
  • Allow overriding all widget parameters on Param pane (#3754)
  • Ensure DatePicker start/end are transformed when jslinked (#3759)
  • Ensure notifications can be enabled without a template (#3820)
  • Ensure ReactiveHTML inline callbacks on loop variables return correct node (#3840)
  • Ensure that Perspective does not take precedence on empty dict (#3936)
  • Improve sizing_mode behavior when width/height are specified (#3955)
  • Do not load notyf resources unless notifications are enabled (#3958)

Version 0.13.1

Date: 2022-05-20

Enhancements

  • Add repr to cell and edit events (#3434)
  • Improvements for pyodide handling (#3444, #3508, #3511)
  • Add support for Plotly animation frames (#3449)
  • Implement single and multi-selection in Vega pane (#3470, #3499, #3505)
  • Add typehints to help developers and users (#3476)
  • Add pn.state.execute method to run callbacks in the right context (#3550)
  • Add support for asynchronous on_edit/on_click Tabulator callbacks (#3550)
  • Add DatetimeRangeSlider widget (#3548)

Bug fixes

  • Fix pyodide array buffer conversion (#3409)
  • Allow placeholder to be updated on TextEditor (#3427)
  • Fix issues editing data in sorted columns (#3431)
  • Ensure bokeh correctly detects whether HTML/Markdown contains latex (#3438)
  • Ensure notifications work on server created with pn.serve and .show (#3445)
  • Replace slickgrid background image in custom FastTemplate CSS (#3461)
  • Ensure param.Array is synced correctly in ReactiveHTML (#3456)
  • Ensure selection on filtered Tabulator does not raise out-of-bounds error (#3462)
  • Ensure updating Tabulator does not reset scroll position (#3450)
  • Various fixes for FastTemplate CSS (#3464)
  • Ensure Tabulator on_click and on_edit events return correct row when paginated (#3410)
  • Fix broken JupyterLab preview (#3469)
  • Skip Tabulator row selection when clicking on expand button (#3474)
  • Ensure overflow in MaterialTemplate is not clipped (#3492)
  • Allow providing --index for directory style apps (#3493)
  • Ensure Tabulator expanded rows are sized correctly after re-render (#3507)
  • Make CodeHandler robust to document that has been destroyed (#3510)
  • Do not sync DataFrame widget sorters parameter with bokeh model (#3527)
  • Ensure that HoloViews callback events are not auto-dispatched (#3528)
  • Ensure non-updateable Pane can be updated inside Tabs (#3532)
  • Fix slowdown of JupyterLab on Windows (#3531)
  • Fix issue with inverted data when editing a cell in a sorted Tabulator column (#3531)
  • Ensure Tabulator has correct layout after re-render (#3536)
  • Do not log events generated by admin page on the admin page (#3539)
  • Fix Tabulator events when the original column is not a string (#3541)

Documentation

  • Adds docstrings to layouts (#3417)
  • Show how to filter categorical and temporal data from Altair/VegaLite (#3401)
  • Document how to make a Tabulator column non-editable (#3489)

Version 0.13.0

Date: 2022-04-15

Blog post: https://blog.holoviz.org/panel_0.13.0.html

Features

  • Add support for scheduling global callbacks (#2661)
  • MathJax now supported in Markdown and HTML (#2847)
  • Improved support for async (e.g. in ParamMethod/ParamFunction, bind, onload etc.) (#2964, #3264, #2737)
  • Support rendering Panel objects in Jupyterlite and Pyodide (#3252, #3361, #3381)
  • Add JSONEditor widget (#1974)
  • Add quill.js based TextEditor widget (#2875)
  • Add GenericLoginHandler for custom OAuth (#2873, #2960)
  • Implement Notifications API for templates (#3093)
  • Implement built-in threading (#2597, #2632, #3081)
  • Implement profiling page for Panel (#2645, #2664, #2667, #2707, #2905)
  • Implement support for Vega events (#2592)
  • Implement ArrayInput widget (#2047)
  • Add Debugger widget (#2548)
  • Add LinearGauge indicator (#3222)
  • Add ComponentResourceHandler to server (#3284, #3289, #3303)

Enhancements

Components

  • Editable sliders name can be changed (#2678)
  • Make Plotly pane resize when window resizes (#2704)
  • Viewer objects can now be used with pn.serve (#2769)
  • VTK improvement for NaN handling (#2826)
  • Add support for configuring Vega output (#2846)
  • Add a groups parameter to Select widget (#2876)
  • Add Card.hide_header option (#2947)
  • Support bytes and pathlib.Path objects on Image (#2963, #3294)
  • Add programmatic control over Player widget (#2970, #2994)
  • Add alphabetical and custom sort to Param (#2986)
  • Add autoplay and muted to Audio and Video (#3053)
  • Add a disabled_options parameter to a custom Select widget (#3067)
  • Expose the orientation parameter of the button group widgets (#3083)
  • Add support for rendering pandas styler objects (#3152)
  • Viewer now better at working with depends functions (#3159)
  • Improve support for jinja2 loops in ReactiveHTML (#3236)
  • Add ability to require explicit load of ReactiveHTML extension (#3254)
  • Improve datetime handling of sliders (#3276)
  • Add support for multiple files in FileInput.save (#3300)
  • Add improved Tabs model that resolves sizing and hover issues (#3301, #3321, #3329)

Tabulator

  • Add support to expand rows in Tabulator (#2762, #2837, #3010, #3163)
  • Implement client-side filtering on Tabulator (#2815, #3298)
  • Add Tabulator.header_align parameter (#2861)
  • Implement Tabulator.on_edit callbacks (#2887, #3209, #2958)
  • Implement DateEditor and DatetimeEditor for Tabulator (#2899, #3008)
  • Implement Tabulator.buttons (#3111)
  • Redesign Tabulator.styles handling (#3175)
  • Set default alignment for Tabulator (#3194)
  • Bidirectionally sync Tabulator.sorters (#3217)
  • Add support for setting percentage widths on Tabulator columns (#3239)
  • Add Tabulator.on_click callback (#3245)
  • Restore Tabulator scroll position after patch (#3273)
  • Enable max row limits for Tabulator (#3306)

Notebook

  • Add basic JupyterLab theme support (#2848)
  • Support jupyter server root_dir with lab extension (#3172)
  • Avoid multiple extension execution in the notebook (#3266)
  • Added fullpath to jupyter_server_extension (#3270)

General improvements

  • Warn users if extension is not loaded before server page is rendered (#2766)
  • Sync URL location hash interactively (#2982)
  • Change accent and header background color for Fast Templates (#2984)
  • Add thread safety and TTL to pn.state.as_cached (#3198)
  • Add py.typed file to support mypy (#3055)
  • Handle authentification errors (#3096)
  • Support saving png to file-like objects (#3155)
  • Check if there are any query parameters in baseurl and adds it to location.search if possible (#3214)
  • Improve handling of --index CLI argument (#3221)
  • Fix event dispatch (#3231)
  • Add azure oauth v2.0 endpoint support (#3224)
  • Ensure gc.collect is not excessively called (#3259)
  • Added panel.reactive and panel.viewable to namespace (#3157)
  • Consistent handling of page title (#3290)

Bugs

Components

  • Fix warnings in ReactiveHTML regex (#2786)
  • Fixed UTF-8 decoding in Terminal widget (#2880)
  • Allow a param.Selector with no objects to be casted to AutocompleteInput (#2966)
  • Update ButtonGroup value when changing options (#2999)
  • Fix TQDM style color reset (#3040)
  • Fix align-items on Flexbox (#3122)
  • Fix issue serializing Spinner with negative value (#3154)
  • Fixes for jslinking HoloViews components (#3165)
  • BooleanStatus and LoadingSpinner now update when changing color (#3191)
  • Fix Widget.from_param when precedence is negative (#3199)
  • Ensure DiscreteSlider label is updated (#3278)
  • Ensure ReactiveHTML template variables only escapes exact matches (#3279)
  • Fix handling of single and empty options on DiscreteSlider (#3297)
  • Ensure Progress correctly initializes as indeterminate (#3307)
  • Always resolve DOM nodes in ReactiveHTML._scripts (#3311)
  • Fixes CrossSelector.disabled parameter (#3326)
  • Fix EditableSlider updates when no value_throttled is set (#3387)

Tabulator

  • Fix HTMLTemplateFormatter on Tabulator (#2781)
  • Fix layout of Tabulator with non-default theme (#3147)
  • Ensure Tabulator selection is not reset on patch (#3287)
  • Fix Tabulator.download method (#3292)
  • Restore ability to limit number of selectable rows on Tabulato (#3295)
  • Ensure Tabulator value update reports correct old value (#3308)

Templates

  • Fix Fast template vertical slider CSS (#3045)
  • Fix template theme.css (#3057)
  • Ensure roots are rendered into GoldenTemplate (#3313)
  • Ensure correct theme is applied to HoloViews pane in template (#3386)

General

  • Added check for bool in Location.parse_query (#2759)
  • Ensure cleanup happens when enabling --warm or --autoreload with Bokeh 2.4 (#2760)
  • Ensure autoload.js correctly determines state.rel_path (#2776)
  • Fix issue with .app method (#3047)
  • Add document argument to django.py autoload_js_script call (#3100)
  • Avoid sending messages on closed or closing Websocket (#3115)
  • Fix Django resource handling (#3116)
  • Fix handling of loading_max_height (#3205)
  • Fix Django DocConsumer (#3281)
  • Fix jupyter_server_config for preview server extension (#3291)
  • Fix handling of oauth_provider argument to panel.io.server.serve (#3293)
  • Allow exporting absolute paths when saving (#3305)

Documentation

  • Added ToggleGroup docs (#2679)
  • Adds a code of conduct (#2892)
  • Add docstrings to sliders module (#3176)
  • Gallery Examples for Graphviz and NetworkX (#2732)
  • Add layouts + throttling sections to Peformance docs (#3171)
  • Adds Plotly styling gallery notebook (#3038)
  • Adds a matplotlib style guide notebook to gallery (#3036)
  • Adds vega altair style example for the gallery. (#3032)
  • Wrap new gallery examples into apps (#2546)
  • Add docstring to panel module (#3177)
  • added documentation for gcp (#3119)
  • Add docs about the file size limits of the FileInput widget (#3044)
  • Add docstrings for most widgets and panes (#3352, #3353, #3354, #3359, #3365, #3366, #3367, #3369)

Compatibility

  • Update to latest version of Perspective (#3318)
  • Update Vega version (#3320)
  • Update ipywidgets support for compatibility with latest bokeh (#3206, #3299)
  • Bump plotly.js version (#3227)
  • Updates to Param 2.0 API (#2845)
  • Updates for Python 3.10 deprecations (#3065)
  • Update and improve DeckGL pane (#3158)

API Changes

  • Make Param.mapping public (#3173)
  • Switch DatetimePicker start/end to param.Date (#3202)
  • Perspective parameters renamed: row_pivots -> split_by, column_pivots -> group_by and computed_columns -> expressions (#3318)

Version 0.12.7

Date: 2021-03-27

The 0.12.7 release primarily fixes an incompatibility with the new jinja2 3.1.0 release. Many thanks to @maartenbreddels, @govinda18, @raybellwaves and the maintainers @maximlt and @philippjfr for contributing further fixes to this release.

Bug fixes:

  • Wrong offset when memoryview format is non-byte (#3206)
  • Support jupyter server root_dir with lab extension (#3172)

Docs:

  • add note on enabling panel widget on Jupyter Lab (#3029)
  • Remove redundant and confusing JupyterLab install instructions (#3037)

Compatibility:

  • Fix jinja2 imports (#3258)

Version 0.12.6

Date: 2021-12-08

The 0.12.6 release fixes a major regression introduced in the last release along with a small number of pre-existing bugs.

Regressions:

  • Always load imported bokeh extensions (#2957)
  • Fix regression rendering HoloViews plotly backend (#2961)

Bug fixes:

  • Do not run Ace import on initialization (#2959)
  • Improve handling of ReactiveHTML cleanup (#2974, #2993)
  • Ensure empty Str has same height as non-empty (#2981)
  • Ensure Tabulator supports grouping on numeric columns (#2987)
  • Fix Tabulator with multi-index and pagination (#2989)
  • Allow index as column name in table widgets (#2990)
  • Ensure TemplateActions component does not have height (#2997)

Version 0.12.5

Date: 2021-11-23

The 0.12.5 release contains a larger number of bug fixes and minor enhancements. Many thanks to @pmav99, @samuelyeewl, @xavArtley, @L8Y, @Prashant0kgp, @t-houssian, @kristw, @jlstevens and the maintainers @maximlt, @MarcSkovMadsen and @philippjfr for their contributions to this release.

Compatibility:

  • Ensure ipywidget rendering is compatible with ipykernel>6 and bokeh>2.4 (#2798)
  • Build panel.js against bokeh.js 2.4.2 (#2945)

Enhancements:

  • Add 'light' to list of button types (#2814, #2816)
  • Make OAuth cookie expiry configurable (#2724)
  • Run onload callbacks with --warm option (#2844)
  • Improve Plotly responsive sizing behavior (#2838)
  • Adds escape parameter to DataFrame pane to enable using html markup (#2893)
  • Allow to update the completions options from a parameter (#2895)
  • Tabs cache dynamic contents (#2909)
  • Allow setting a maximum height for the loading indicator (#2910)
  • Ensure loading of MathJax bundle is optional (#2919)

Bug fixes:

  • Resolve issues with inline resources on save (#2794)
  • Restore ability to set a maximum number of selectable rows on Tabulator (#2791)
  • Fixed bug where Tabulator with remote pagination would modify the wrong rows (#2801)
  • Ensure non-exported requirejs modules do not error (#2808)
  • Ensure Tabulator checkbox selection only happens in checkbox column (#2812)
  • Vtkvolume correction of dimensions order (#2818)
  • Allow data item to miss optional field in Vega pane (#2853)
  • Allow to set AutoCompleteInput in a Param pane (#2874)
  • Fix Terminal keystroke and size handling (#2878)
  • Fix Tabulator styles on scroll (#2881)
  • Do not sync Indicator properties from frontend to avoid errors (#2886)
  • Fix roundtrip of datetimes on ReactiveData components (#2888)
  • Fix handling of Plotly pane in Tabs (#2890)
  • Fix bokeh colorbar background for dark theme (#2897)
  • Fix issues when streaming or patching ReactiveData (#2900)
  • Ensure stream and patch events do not boomerang (#2902)
  • Fixes for Card rendering in MaterialTemplate (#2911, #2912)
  • Ensure HoloViews matplotlib output uses tight layout (#2920)
  • Fix decoding of single quoted strings in url parameters (#2925)
  • Fix Tabulator checkbox selection (#2931)
  • Fix Vega pane sizing issues (#2933)
  • Ensure toggled Accordion only triggers one event on change of active Card (#2934)
  • Ensure LiteralInput JS deserializer does not insert extra spaces (#2935)
  • Fix issue in detecting script data assignment in ReactiveHTML (#2939)
  • Ensure Card collapsible icon offset is computed robustly (#2940)
  • Ensure --autoreload does not reload panel modules (#2941)
  • Ensure pn.state.curdoc is available to async callbacks (#2942)

Documentation:

CVEs:

  • Update jQuery to remediate CVEs (#2885)

Version 0.12.4

Date: 2021-09-24

The 0.12.4 release fixes a number of bugs and a regression of the autoreload feature in 0.12.2 and 0.12.3.

Compatibility:

  • Fix issues with --autoreload caused by changes in Bokeh 2.4 (#2755)

Enhancements:

  • Ensure user is warned if an extension was not loaded in time on server (#2765)
  • Allow Viewer classes to be served (#2768)
  • Add support for rendering .ico files and pathlib objects (#2757)

Bug fixes:

  • Fixed export of vtk.js module (#2562)
  • Fix broken HTMLTemplateFormatter on Tabulator (#2730)
  • Fix serialization issues of Panel components on ReactiveHTML (#2743)
  • Ensure FlexBox behaves like a layout and makes its children discoverable (#2779)
  • Ensure Plotly plots can be updated in tabs (#2747)
  • Fix embedding of Panel apps in Flask (#2727)
  • Ensure Spinner widget honors bounds when created from Param object (#2740)
  • Ensure Tabulator style does not disappear after resize event (#2770)
  • Fix PeriodicCallback errors (#2764)
  • Fix syncing of boolean types with URL parameters (#2758)
  • Ensure Tabulator.download_menu applies kwargs to the filename TextInput (#2763)
  • Ensure Tabulator does not error when no Styler is defined (#2785)

Documentation:

  • Fix MaterialUI custom component example (#2680)
  • Fix image url in Markdown reference gallery example (#2734)
  • Add Folium thumbnail in reference gallery (#2744)

Version 0.12.3

Date: 2021-09-17

The 0.12.2 release unfortunately has a compatibility issue with Bokeh 2.4 which broke the show() method. This release fixes this regression.

  • Patch Bokeh to fix show() (#2748)

Version 0.12.2

Date: 2021-09-16

This a patch release with a small number of bug fixes and compatibility for bokeh 2.4. Many thanks to the contributors @Stubatiger, @maximlt, @nghenzi and the maintainers @MarcSkovMadsen and @philippjfr for the fixes in this release.

Enhancements:

  • Add option to hide constant parameters on Param pane (#2637)
  • Added on_session_destroyed callback (#2659)
  • Stricter validation for linking syntax in ReactiveHTML._template (#2689)

Bug fixes:

  • Improved thread safety (#2631)
  • Ensure sessions get distinct files in config (#2646)
  • Fix bug when updating Trend data (#2647)
  • Ensure sorters are applied correctly after updating Tabulator value (#2639)
  • Correctly reflect filtered data on Tabulator.selection (#2676
  • Unescape child literal HTML in ReactiveHTML (#2690)
  • Ensure Trend indicator can be rendered in layout (#2694)

Documentation:

  • Enhance templates docs (#2658)
  • Add Folium reference notebook (#2672)

Compatibility:

Version 0.12.1

Date: 2021-08-10

This is a patch release with a small number of fixes following the 0.12.0 release. Many thanks to the maintainers @MarcSkovMadsen and @philippjfr for the fixes in this release.

Enhancements:

  • Bundle .map files during build to allow source mapping (#2591)
  • Various style improvements for Fast templates (#2604, #2609, #2611, #2615)
  • Implement hierarchical aggregation for Tabulator (#2624)

Bug fixes:

  • Fix logo on Fast templates (#2184)
  • Fix height responsiveness of Folium pane (#2231)
  • Fix bug updating Tqdm indicator (#2554)
  • Ensure --autoreload doesn't error on cleaned up session (#2570)
  • Don't use persisted layout if save_layout=False (#2579)
  • Pin version of tqdm with asyncio support (#2595)
  • Reset layout when resetting grid template layout (#2576)
  • Fix line-height issues in Fast templates (#2600)
  • Clean up sessions after warmup and ensure periodic callbacks are cleaned up (#2601)

Documentation:

  • Enable JupyterLab preview button on binder (#2545)
  • Update theme toggle documentation for Fast templates (#2560)
  • Update Fast template documentation and enable full screen (#2577)
  • Fix binder links on website (#2590)
  • Add docs about loading the ipywidgets extension (#2594)

Version 0.12.0

Date: 2021-07-18

Blog post: https://blog.holoviz.org/panel_0.12.0.html

The 0.12.0 release is a minor release with a lot of exciting and a huge amount of bug fixes. We are very excited about the growing community and the many contributions we received. In particular we would like to thank @douglas-raillard-arm, @mathrick, @jlstevens, @hyamanieu, @Liam-Deacon, @Stubatiger, @ablythed, @syamajala, @Hoxbro, @jbednar, @brl0, @OBITORASU, @fleming79, dhruvbalwada and @rmorshea for contributing various fixes and improvements and the core developers @xavArtley, @MarcSkovMadsen and @philippjfr for continuing to push the development of Panel.

Features:

Enhancements:

  • Add empty Progress bar (#2088)
  • Optimize initialization of templates (#2096)
  • Serialize Perspective schema (#2130)
  • Updated JSON pane to accept single quote and wrap properly (#2143, #2443)
  • Improvements for Perspective (#2153)
  • Improve handling of server prefix and proxied deployment scenarios (#2159, #2162)
  • Add support for setting bokeh theme (#2164, #2166, #2170)
  • Completely overhauled the default index template (#2198, #2340)
  • Enhancements for Template modals (#2269, #2523)
  • Make the Template sidebar width configurable (#2301)
  • Improve look and feel and styling of Fast templates (#2303, #2469, #2484, #2488)
  • Allow setting kwargs in Reactive.controls (#2304)
  • Add global configuration variable to always throttle sliders (#2306)
  • Add support for controlling text alignment in DataFrame and Tabulator (#2331)
  • Add Tabulator theme for Fast Templates (#2425)
  • Add ability to make only certain Tabulator rows selectable (#2433)
  • Add visible parameter to all components (#2440)
  • Send Plotly restyle and relayout events rather than full updates (#2445)
  • Add push_notebook helper function for syncing bokeh property changes in notebooks (#2447)
  • Improve visual styling of Card (#2343, #2348, #2376, #2437, #2527)
  • Ensure config variables are configured per user session (#2358, #2455, #2481)
  • Add save_layout and prevent_collision to ReactTemplate and FastGridTemplate (#2296, #2357)
  • Add ability to declare root application from panel serve (#2392)
  • Support jslinking Parameterized class (#2441)
  • Improve config.sizing_mode behavior (#2442)
  • Add separate RangeSlider value_start and value_end parameters (#2457, #2468)
  • Allow saving Templates (#2461)
  • Bundle Tabulator resources to allow usage in airgapped environment (#2471)
  • Ensure Trend indicator title wraps (#2483)
  • Scroll on Tabulator selection (#2503)
  • Increase notebook resource load timeout (#2515)
  • Auto-detect VSCode and Colab comms (#2536)
  • Add tooltip to Tabulator cells to see unformatted value (#2543)

Bug fixes:

  • Fix missing video in Video (#2109)
  • use idom.config to set dist dir (#2117)
  • Remove bootstrap CSS from FastGridTemplate (#2123)
  • Fix issues with Ace z-index (#2126)
  • Fix updating of Tabulator selection property (#2128)
  • Ensure changes on ReactiveData source are scheduled correctly (#2134)
  • Fixed Player looping when start is 0 (#2141)
  • Fix divide by zero issues on Trend indicator (#2148)
  • Ensure GridSpec override handles duplicate matches (#2150)
  • Fix for loading parameter widget linking (#2160)
  • Fix Tabulator ajax call on empty data (#2161)
  • Fix Tabulator sorting and data initialization (#2163)
  • Fix editing Tabulator with filters applied (#2165)
  • Fix theming on HoloViews plot updates (#2209)
  • Fixed data handling on Perspective pane (#2212)
  • Improve template and resource management for png export (#2221)
  • Improve and standardize selection behavior of Tabulator (#2230)
  • Ensure JS changes to Plotly pane are applied if not explicitly triggered (#2251)
  • Fix server-side Tabulator selection changes (#2252)
  • Fix update of Param subobjects (#2255)
  • Add support for vtkCornerAnnotations (#2257)
  • Improve request handling for remote pagination on Tabulator (#2265)
  • Allow setting Param precedence to None (#2266)
  • Disable nested field separators on Tabulator (#2289)
  • Fix errors when applying Perspective filters (#2300, #2521)
  • Ensure Param pane handles changes to unknown parameter (#2346)
  • Fix issues with local Audio and Video (#2380)
  • Ensure ReactiveData emits correct old data in event (#2398)
  • Ensure Plotly interactivity works when Plotly panes are displayed in tabs (#2418, #2463)
  • Fix Ace widget disabled parameter (#2449)
  • Ensure external resources are configured correctly on save (#2452)
  • Ensure table formatters and editors are copied on render to avoid bokeh errors (#2453)
  • Allow unicode auth response body (#2462)
  • Workaround TypeError for non-string json keys on Plotly pane (#2465)
  • Fix issue with throttled updates on Param (#2470)
  • Ensure Tabulator style is applied while streaming (#2478)
  • Fix issues setting resources on save (#2492)
  • Fix VideoStream unpause (#2508)
  • Ensure DataFrame and Tabulator widget data can be updated in callback (#2510)
  • Fix chaining of bind functions (#2513)
  • Fix broken serialisation when syncing url parameters (#2520)
  • Fix Perspective for string types (#2525)
  • Fix race condition in --autoreload (#2539)

Documentation:

  • Update Server_Deployment.ipynb (#2118)
  • Expand description of watch=True in Param.ipynb (#2120)
  • Switch to PyData Sphinx Theme (#2139)
  • Replace altair iris example with penguins (#2213)
  • Enable Binder (#2198)
  • Updates and fixes for Developer Guide (#2381)
  • Fixed Tabs documentation (#2448)
  • Added basic description and example of the Tabulator.configuration parameter (#2412)
  • Add parameters to Plotly reference guide (#2385)
  • Add useful links to developer docs (#2319)
  • Add documentation about parameterized components (#2454)
  • Demonstrate how to lazily load tabs (#2479)

Compatibility:

  • Compatibility with HoloViews 2.0 (#2344)
  • Fix Tabulator styling with pandas 1.3 (#2512)

Deprecations:

  • Remove add_periodic_callback method (#2439)
  • Remove deprecated panel.callbacks modules
  • Remove deprecated Ace pane and Audio Widget (#2427)
  • Remove Progress widget docs (#2451)
  • Tabulator no longer loaded by default, must be initialized with pn.extension('tabulator'](https://github.com/holoviz/panel/issues/)) (#2364)

Version 0.11.3

Date: 2021-04-14

The 0.11.3 release is another micro-release in the 0.11 series primarily focused on updating the documentation theme and a regression in loading Tabulator data.

Bug fixes:

  • Fix Tabulator sorting and data initialization (#2163)
  • Improved handling of IDOM build directory (#2168)

Documentation:

  • Switch to PyData Sphinx Theme (#2139)

Version 0.11.2

Date: 2021-04-08

The 0.11.2 release is a micro-release fixing a number of smaller bugs. Many thanks to @Hoxbro, @dhruvbalwada, @rmorshea, @MarcSkovMadsen, @fleming79, @OBITURASU and @philippjfr for their contributions to this release.

Enhancements:

  • Optimize adding of roots to templates to avoid multiple preprocessing cycles (#2096)
  • Use schema to support date(time) dtypes on Perspective (#2130)

Bug fixes:

  • Fix regression on Video pane causing video not to be rendered at all (#2109)
  • Fix missing closing tag in Fast templates (#2121)
  • Remove bootstrap CSS from FastGridTemplate (#2123)
  • Ensure Tabulator selection can be set from Python (#2128)
  • Ensure changes on ReactiveData objects are scheduled correctly on server (#2134)
  • Fix for Player widget when start value is 0 (#2141)
  • Support single quotes on JSON pane (#2143)
  • Fix divide by zero issues when value_change is computed from zero baseline (#2148)
  • Ensure GridSpec handles overrides across multiple cells (#2150)
  • Fix for loading parameter widget linking (#2160)
  • Use relative URLs for resource loading to ensure proxied apps work (#2159)
  • Fix Tabulator ajax call on empty data (#2161)

Documentation:

  • Fix typo in Binder section of server deployment documentation (#2118)
  • Improve documentation surrounding watch=True in Param user guide (#2120)

Compatibility:

  • Ensure IDOM pane configures paths correctly for latest version (#2117, #2132)

Version 0.11.1

Date: 2021-03-15

The 0.11.1 release is a micro-release addressing a number of smaller bugs in the last release. Many thanks to the contributors to this release including @Hoxbro, @xavArtley, @Jacob-Barhak and @philippjfr.

Enhancements:

  • Allow setting horizontal and vertical alignment separately (#2072)
  • Expose widgets visible property (#2065)
  • Allow bind to extract dependencies and evaluate other dynamic functions (#2056)
  • Allow setting root_directory on FileSelector widget ([#2086](#2086

Bug fixes:

  • Fixed loading of jQuery in BootstrapTemplate (#2057)
  • Fix VTK imports to ensure VTKVolume pane renders grids (#2071)
  • Fix loading of template resources from relative paths (#2067)
  • Fix Spinner component overflow (#2070)
  • Handle integer column names on Perspective widget (#2069)
  • Fix bundling of template resources (#2076)
  • Fix value_throttled in pn.depends decorator (#2085)

Compatibility:

  • Switch GitHub OAuth to use header authorization token (#2073)

Version 0.11.0

Date: 2021-03-01

The 0.11.0 release brings a number of exciting new features to Panel as well as some enhancements and bug fixes. This release is also required for Bokeh 2.3 compatibility since a lot of changes to the Bokeh property system required updates. Many thanks to the many contributors to this release including @MarcSkovMadsen, @xavArtley, @hyamanieu, @cloud-rocket, @kcpevey, @kaseyrussell, @miliante, @AjayThorve and @philippjfr.

Major features:

  • A Perspective pane based on the FINOS Perspective library (#2034)
  • Implement --autoreload functionality for the Panel server (#1983)
  • Add --warm option to panel serve, useful for pre-loading items into the state cache (#1971)
  • Add ability to define JS modules and Template specific resources (#1967)
  • panel.serve now supports serving static files and Bokeh apps, not just Panel apps (#1939)
  • Add a TrendIndicator for conveniently showing history and value of a numeric quantity (#1895)
  • Add TextToSpeech widget (#1878)
  • Add SpeechToText widget (#1880)
  • Add loading parameter and spinners to all components (#1730, #2026)
  • Add IDOM pane to develop interactive HTML components in Python (#2004)
  • Add powerful new Tabulator widget for flexible and configurable display of tabular data (#1531, #1887)

Enhancements:

  • Add watch argument to bind function so that covers all the features of pn.depends (#2000)
  • Add format parameter to DatetimeRangeInput widget (#2043)
  • Allow ParamMethod and ParamFunction to evaluate lazily (#1966)
  • Add value_input parameter to TextInput widgets (#2007)
  • Implement Glyph3dMapper support for VTK panes (#2002, #2003)
  • Add Jupyter server extension to serve resources (#1982)
  • Enhancements for DarkTheme (#1964)
  • Add refresh functionality to FileSelector (#1962)
  • Add support for Auth0 authentication (#1934)
  • Avoid recursive preprocessing slowing down rendering (#1852)
  • Add support for per-layer tooltips on DeckGL pane (#1846)
  • Add Viewer baseclass for custom user components (#2045)

Bug fixes:

  • Fixed FileSelector file icon on selected files (#2046)
  • Drop query args when checking URLs (#2037)
  • Fix Card.header_background propagation (#2035)
  • Disable GoldenTemplate sidebar when empty (#2017)
  • Ensure Card.collapsed and Accordion.active parameters are synced (#2009)
  • Fix inline resources when saving (#1956)
  • Switch Param pane widget type when bounds (un)defined (#1953)

Compatibility:

  • Compatibility with Bokeh>=2.3 (#1948, #1988, #1991)
  • Updated ECharts pane to 5.0.2 of JS library (#2016)

Documentation:

  • Document pn.bind in API user guide (#1973)

Version 0.10.3

Date: 2021-01-18

Another micro-release in the 0.10.x series focusing primarily on bug and regression fixes. Many thanks to @miliante, @MarcSkovMadsen, @Hoxbro, @jlstevens, @jbednar and @philippjfr.

Bug fixes:

  • Fix inverted axes on HoloViews plots (#1732)
  • Fix enabling/disabling of FileDownload widget (#1510, #1820)
  • Fix issues serving template resources on server with route prefix (#1821)
  • Fixes for rendering ECharts from pyecharts (#1874, #1876)
  • Fix issues with scroll behavior when expanding/collapsing Card/Accordion (#1833, #1884)
  • Ensure DiscreSlider label is correctly linked to value (#1906)
  • Fix support for setting header_color and header_background on all templates (#1872)
  • Ensure that Template preprocessors are applied during initialization (#1922)

Enhancements:

  • Support throttled in Param widget (#1800)
  • Support rendering of hvPlot Interactive objects (#1824)
  • Allow recording session launch time in server session_info (#1909)
  • Add Button.value parameter (#1910)
  • Support upload of multiple parameters on FileInput (#1911)
  • Improve support for DarkTheme in templates (#1855, #1856)

Documentation:

  • Fixed IntSlider and FloatSlider example (#1825)
  • Updated instructions for using Panel in JupyterLab (#1908)

Version 0.10.2

Date: 2020-11-13

This is another micro-release primarily fixing various minor bugs in functionality introduced as part of the 0.10.0 release. Many thanks to @MarcSkovMadsen, @ahuang11, @xavArtley, @Hoxbro, @jbednar and @philippjfr.

Bug fixes:

  • Fix various issues with Template CSS (#1663, #1742)
  • Fix BytesIO/StringIO buffers as input to image panes (#1711)
  • Fix out-of-bounds errors when assigning to GridSpec with fixed ncols (#1721)
  • Fix deserialization issues for Plotly.hover_data (#1722)
  • Fixed updating of Alert parameters after initialization (#1725)
  • Fix ordering of items added to Template areas (#1736)
  • Fix interactivity for items in Card (#1750)
  • Ensure onload callbacks are only run once (#1746)
  • Allow overriding items in grid based templates (#1741)
  • Ensure ECharts and ipywidget rerender when in Card (#1765)
  • Ensure template dark theme persists on HoloViews plots (#1764)
  • Fix responsive height in Plotly pane (#1770)
  • Ensure image panes resize in width and height (#1777)
  • Fix issues with Location.sync serialization (#1784)
  • Add throttled argument to interact (#1259)
  • ECharts pane now loads echarts-gl for 3D support (#1785)

Enhancements:

  • Improved OAuth encryption key validation (#1762)
  • Add progress option to .save method (#1776)

Version 0.10.1

Date: 2020-10-27

This is a micro release of Paanel primarily containing bug fixes following the 0.10.0 release. Many thanks to @MarcSkovMadsen, @jbednar and @philippjfr for contributing fixes to this release.

Enhancements:

  • Add pn.bind function to bind parameters to a function (#1629)

Bug fixes:

  • Fix WidgetBox CSS (#855)
  • Fix CSS load order in Templates (#1698)
  • Allow setting DiscreteSlider orientation (#1683)
  • Ensure JS callbacks and links are only set up once on templates (#1700)
  • Initialize pipeline only once (#1705)
  • Allow using NumberInput as Param pane widget (#1708)

Version 0.10.0

Date: 2020-10-23

This is a minor but jam-packed release of Panel, with a slew of new features and enhancements, plus a wide array of minor fixes and improvements to the documentation, and website. Many thanks to the people who contributed to this release, including @philippjfr, @MarkSkovMadsen (alert pane, templates, docs), @xavArtley (VTK improvements, templates, input/spinner widgets), @maximlt (panel serve), @jbednar (docs, reviewing), @kebowen (templates), @ahuang11 (datepicker), @nghenzi (react template, bugfixes), @nritsche (panel serve), @ltalirz (autocomplete input), @BoBednar (docs), @tmikolajczyk, @halilbay, @Hoxbro, and @ceball (testing and automation).

Features:

Enhancements:

  • Allow defining explicit embed states (#1274)
  • Implement __add__ and __iadd__ on layouts (#1282)
  • Add support for hierarchical multi-indexed DataFrame (#1383)
  • Add show_index option to DataFrame widget (#1488)
  • Link widgets with same name during embed (#1543)
  • Wait until JS dependency is loaded before rendering (#1577)
  • For AutocompleteInput, allow user-defined values (#1588) and case-insensitivity (#1548)
  • Allow dates to be disabled in DatePicker (#1524)
  • Enable new features for a Bokeh DataTable (#1512)
  • Panel serve improvements: MethodType parameter (#1450), title per app (#1354)
  • Server deployment guide for Azure (#1350)
  • Add Widget.from_param classmethod (#1344)
  • More options for ACE widget (#1391)

Bugfixes and minor improvements:

Backwards compatibility:

  • Switch away from inline resources in notebook (#1538, #1678)
  • Viewable.add_periodic_callback is deprecated; use pn.state.add_periodic_callback (#1542)
  • Use widget_type instead of type to override Param widget type in Param pane (#1614)
  • Spinner widget is now called NumberInput (#1513)

Version 0.9.7

The 0.9.6 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

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, @jbednar, @mycarta, @basnijholt, @jbednar and @philippjfr.

  • Compatibility with Bokeh 2.1 (#1424, #1428)
  • 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: 2019-04-04

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

Enhancements:

  • Add Template.save 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

Documentation:

  • 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-02

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.

Enhancements:

  • 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)

Compatibility:

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

Version 0.9.3

Date: 2019-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](#1170))

Version 0.9.2

Date: 2019-03-21

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](#1164))
  • Fix for saving as PNG which regressed due to changes in bokeh 2.0 ([#1165](#1165))
  • Allow pn.serve to resolve Template instances returned by a function ([#1167](#1167))
  • Ensure Template can render empty HoloViews pane ([#1168](#1168))

Version 0.9.1

Date: 2019-03-19

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](#1152))
  • Pin pyviz_comms 0.7.4 to avoid issues with undefined vars ([#1153](#1153))

Version 0.9.0

Date: 2019-03-13

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:

Features:

  • Added a MultiChoice widget ([#1140](#1140))
  • Add FileDownload widget (#915, [#1146](#1146))
  • Add ability to define Slider format option ([#1142](#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](#1144))

Removals:

  • 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: 2019-03-11

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](#1098)) [@philippjfr]

Bug fixes:

  • Fix PNG export due to issue with PhantomJS ([#1081](#1081), [#1092](#1092)) [@bstadlbauer, @philippjfr]
  • Fix for threaded server ([#1090](#1090)) [@xavArtley]
  • Ensure Plotly Pane does not perform rerender on each property change ([#1109](#1109)) [@philippjfr]
  • Fix issues with jslink and other callbacks in Template ([#1135](#1135)) [@philippjfr]
  • Various fixes for VTK pane ([#1123](#1123)) [@xavArtley]
  • Fixes for .show keyword arguments ([#1073](#1073), [#1106](#1106)) [@gmoutso]

Version 0.8.0

Date: 2019-01-31

This release focuses primarily on solidifying existing functionality, significantly improving performance and fixing a number of important bugs. Additionally this release contains exciting new functionality, including several new components. We want to thank the many contributors to this release (a full list is provided at the bottom), particularly @MarcSkovMadsen (the author of awesome-panel.org) and @xavArtley, 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 required only minimal changes in existing APIs and added a small number of new ones, reflecting the fact that Panel is now relatively stable and is progressing steadily towards a 1.0 release.

Major Features & Enhancements

  • Added new DeckGL pane (#1019, #1027)
  • Major improvements to support for JS linking (#1007)
  • Huge performance improvements when nesting a lot of components deeply (#867, #888, #895, #988)
  • Add support for displaying callback errors and print output in the notebook simplifying debugging (#977)
  • Add support for dynamically populating Tabs (#995)
  • Added FileSelector widget to browse the servers file system and select files (#909)
  • Add pn.serve function to serve multiple apps at once on the same serve (#963)
  • Add a JSON pane to display json data in a tree format (#953)

Enhancements

  • Updated Parameter mappings (#999)
  • Ensure that closed tabs update Tabs.objects (#973)
  • Fixed HoloViews axis linking across Template roots (#980)
  • Merge FactorRange when linking HoloViews axes (#968)
  • Expose title and other kwargs on .show() (#962)
  • Let FileInput widget set filename (#956
  • Expose further bokeh CLI commands and added help (#951)
  • Enable responsive sizing for Vega/altair pane (#949)
  • Added encode parameter to SVG pane (#913)
  • Improve Markdown handling including syntax highlighting and indentation (#881)
  • Add ability to define Template variables (#815)
  • Allow configuring responsive behavior globally (#851)
  • Ensure that changes applied in callbacks are reflected on the frontend immediately (#857)
  • Add ability to add axes coordinates to VTK view (#817)
  • Add config option for safe_embed which ensures all state is recorded (#1040)
  • Implemented __signature__ for tab completion (#1029)

Bug fixes

  • Fixed DataFrame widget selection parameter (#989)
  • Fixes for rendering long strings on Windows systems (#986)
  • Ensure that panel does not modify user objects (#967)
  • Fix multi-level expand Param subobject (#965)
  • Ensure load_notebook is executed only once (#1000)
  • Fixed bug updating StaticText on server (#964)
  • Do not link HoloViews axes with different types (#937)
  • Ensure that integer sliders are actually integers (#876)
  • Ensure that GridBox contents maintain size (#971)

Compatibility

Backwards compatibility

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

Docs

  • Updated Django multiple app example and user guide (#928) [@stefjunod]
  • Clarify developer installation instructions, and fix up some metadata. (#952, #978)
  • Added Param reference notebook (#944)
  • Added Divider reference notebook

Version 0.7.0

Date: 2019-11-18T21:22:16Z

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](#775))

Bug fixes and minor improvements:

Documentation:

Version 0.6.2

Date: 2019-08-08T15:13:31Z

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-08T17:41:51Z

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

Enhancements:

  • 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:

Documentation:

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

Version 0.6.3

Date: 2019-09-19T10:28:36Z

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

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)

Documentation:

  • 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-02T17:56:26Z

Version 0.5.1

Date: 2019-04-11T16:52:06Z

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).

Features:

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

Bugfixes:

  • 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-04T00:42:59Z

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 (#326)
  • 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-05T22:49:23Z

Minor release fixing packaging issues.

Version 0.3.0

Date: 2018-12-05T00:47:25Z

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

Bugfixes:

Compatibility changes

  • Renamed Param expand options (#127)

Version 0.4.0

Date: 2019-01-28T18:02:57Z

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).

Enhancements:

Bug fixes:

Version 0.1.3

Date: 2018-10-23T12:09:07Z

Releases

Version 0.12.0

Date: 2021-07-18

Blog post: https://blog.holoviz.org/panel_0.12.0.html

The 0.12.0 release is a minor release with a lot of exciting and a huge amount of bug fixes. We are very excited about the growing community and the many contributions we received. In particular we would like to thank @douglas-raillard-arm, @mathrick, @jlstevens, @hyamanieu, @Liam-Deacon, @Stubatiger, @ablythed, @syamajala, @Hoxbro, @jbednar, @brl0, @OBITORASU, @fleming79, dhruvbalwada and @rmorshea for contributing various fixes and improvements and the core developers @xavArtley, @MarcSkovMadsen and @philippjfr for continuing to push the development of Panel.

Features:

Enhancements:

  • Add empty Progress bar (#2088)
  • Optimize initialization of templates (#2096)
  • Serialize Perspective schema (#2130)
  • Updated JSON pane to accept single quote and wrap properly (#2143, #2443)
  • Improvements for Perspective (#2153)
  • Improve handling of server prefix and proxied deployment scenarios (#2159, #2162)
  • Add support for setting bokeh theme (#2164, #2166, #2170)
  • Completely overhauled the default index template (#2198, #2340)
  • Enhancements for Template modals (#2269, #2523)
  • Make the Template sidebar width configurable (#2301)
  • Improve look and feel and styling of Fast templates (#2303, #2469, #2484, #2488)
  • Allow setting kwargs in Reactive.controls (#2304)
  • Add global configuration variable to always throttle sliders (#2306)
  • Add support for controlling text alignment in DataFrame and Tabulator (#2331)
  • Add Tabulator theme for Fast Templates (#2425)
  • Add ability to make only certain Tabulator rows selectable (#2433)
  • Add visible parameter to all components (#2440)
  • Send Plotly restyle and relayout events rather than full updates (#2445)
  • Add push_notebook helper function for syncing bokeh property changes in notebooks (#2447)
  • Improve visual styling of Card (#2343, #2348, #2376, #2437, #2527)
  • Ensure config variables are configured per user session (#2358, #2455, #2481)
  • Add save_layout and prevent_collision to ReactTemplate and FastGridTemplate (#2296, #2357)
  • Add ability to declare root application from panel serve (#2392)
  • Support jslinking Parameterized class (#2441)
  • Improve config.sizing_mode behavior (#2442)
  • Add separate RangeSlider value_start and value_end parameters (#2457, #2468)
  • Allow saving Templates (#2461)
  • Bundle Tabulator resources to allow usage in airgapped environment (#2471)
  • Ensure Trend indicator title wraps (#2483)
  • Scroll on Tabulator selection (#2503)
  • Increase notebook resource load timeout (#2515)
  • Auto-detect VSCode and Colab comms (#2536)
  • Add tooltip to Tabulator cells to see unformatted value (#2543)

Bug fixes:

  • Fix missing video in Video (#2109)
  • use idom.config to set dist dir (#2117)
  • Remove bootstrap CSS from FastGridTemplate (#2123)
  • Fix issues with Ace z-index (#2126)
  • Fix updating of Tabulator selection property (#2128)
  • Ensure changes on ReactiveData source are scheduled correctly (#2134)
  • Fixed Player looping when start is 0 (#2141)
  • Fix divide by zero issues on Trend indicator (#2148)
  • Ensure GridSpec override handles duplicate matches (#2150)
  • Fix for loading parameter widget linking (#2160)
  • Fix Tabulator ajax call on empty data (#2161)
  • Fix Tabulator sorting and data initialization (#2163)
  • Fix editing Tabulator with filters applied (#2165)
  • Fix theming on HoloViews plot updates (#2209)
  • Fixed data handling on Perspective pane (#2212)
  • Improve template and resource management for png export (#2221)
  • Improve and standardize selection behavior of Tabulator (#2230)
  • Ensure JS changes to Plotly pane are applied if not explicitly triggered (#2251)
  • Fix server-side Tabulator selection changes (#2252)
  • Fix update of Param subobjects (#2255)
  • Add support for vtkCornerAnnotations (#2257)
  • Improve request handling for remote pagination on Tabulator (#2265)
  • Allow setting Param precedence to None (#2266)
  • Disable nested field separators on Tabulator (#2289)
  • Fix errors when applying Perspective filters (#2300, #2521)
  • Ensure Param pane handles changes to unknown parameter (#2346)
  • Fix issues with local Audio and Video (#2380)
  • Ensure ReactiveData emits correct old data in event (#2398)
  • Ensure Plotly interactivity works when Plotly panes are displayed in tabs (#2418, #2463)
  • Fix Ace widget disabled parameter (#2449)
  • Ensure external resources are configured correctly on save (#2452)
  • Ensure table formatters and editors are copied on render to avoid bokeh errors (#2453)
  • Allow unicode auth response body (#2462)
  • Workaround TypeError for non-string json keys on Plotly pane (#2465)
  • Fix issue with throttled updates on Param (#2470)
  • Ensure Tabulator style is applied while streaming (#2478)
  • Fix issues setting resources on save (#2492)
  • Fix VideoStream unpause (#2508)
  • Ensure DataFrame and Tabulator widget data can be updated in callback (#2510)
  • Fix chaining of bind functions (#2513)
  • Fix broken serialisation when syncing url parameters (#2520)
  • Fix Perspective for string types (#2525)
  • Fix race condition in --autoreload (#2539)

Documentation:

  • Update Server_Deployment.ipynb (#2118)
  • Expand description of watch=True in Param.ipynb (#2120)
  • Switch to PyData Sphinx Theme (#2139)
  • Replace altair iris example with penguins (#2213)
  • Enable Binder (#2198)
  • Updates and fixes for Developer Guide (#2381)
  • Fixed Tabs documentation (#2448)
  • Added basic description and example of the Tabulator.configuration parameter (#2412)
  • Add parameters to Plotly reference guide (#2385)
  • Add useful links to developer docs (#2319)
  • Add documentation about parameterized components (#2454)
  • Demonstrate how to lazily load tabs (#2479)

Compatibility:

  • Compatibility with HoloViews 2.0 (#2344)
  • Fix Tabulator styling with pandas 1.3 (#2512)

Deprecations:

  • Remove add_periodic_callback method (#2439)
  • Remove deprecated panel.callbacks modules
  • Remove deprecated Ace pane and Audio Widget (#2427)
  • Remove Progress widget docs (#2451)
  • Tabulator no longer loaded by default, must be initialized with pn.extension('tabulator'](https://github.com/holoviz/panel/issues/)) (#2364)

Version 0.11.3

Date: 2021-04-14

The 0.11.3 release is another micro-release in the 0.11 series primarily focused on updating the documentation theme and a regression in loading Tabulator data.

Bug fixes:

  • Fix Tabulator sorting and data initialization (#2163)
  • Improved handling of IDOM build directory (#2168)

Documentation:

  • Switch to PyData Sphinx Theme (#2139)

Version 0.11.2

Date: 2021-04-08

The 0.11.2 release is a micro-release fixing a number of smaller bugs. Many thanks to @Hoxbro, @dhruvbalwada, @rmorshea, @MarcSkovMadsen, @fleming79, @OBITURASU and @philippjfr for their contributions to this release.

Enhancements:

  • Optimize adding of roots to templates to avoid multiple preprocessing cycles (#2096)
  • Use schema to support date(time) dtypes on Perspective (#2130)

Bug fixes:

  • Fix regression on Video pane causing video not to be rendered at all (#2109)
  • Fix missing closing tag in Fast templates (#2121)
  • Remove bootstrap CSS from FastGridTemplate (#2123)
  • Ensure Tabulator selection can be set from Python (#2128)
  • Ensure changes on ReactiveData objects are scheduled correctly on server (#2134)
  • Fix for Player widget when start value is 0 (#2141)
  • Support single quotes on JSON pane (#2143)
  • Fix divide by zero issues when value_change is computed from zero baseline (#2148)
  • Ensure GridSpec handles overrides across multiple cells (#2150)
  • Fix for loading parameter widget linking (#2160)
  • Use relative URLs for resource loading to ensure proxied apps work (#2159)
  • Fix Tabulator ajax call on empty data (#2161)

Documentation:

  • Fix typo in Binder section of server deployment documentation (#2118)
  • Improve documentation surrounding watch=True in Param user guide (#2120)

Compatibility:

  • Ensure IDOM pane configures paths correctly for latest version (#2117, #2132)

Version 0.11.1

Date: 2021-03-15

The 0.11.1 release is a micro-release addressing a number of smaller bugs in the last release. Many thanks to the contributors to this release including @Hoxbro, @xavArtley, @Jacob-Barhak and @philippjfr.

Enhancements:

  • Allow setting horizontal and vertical alignment separately (#2072)
  • Expose widgets visible property (#2065)
  • Allow bind to extract dependencies and evaluate other dynamic functions (#2056)
  • Allow setting root_directory on FileSelector widget ([#2086](#2086

Bug fixes:

  • Fixed loading of jQuery in BootstrapTemplate (#2057)
  • Fix VTK imports to ensure VTKVolume pane renders grids (#2071)
  • Fix loading of template resources from relative paths (#2067)
  • Fix Spinner component overflow (#2070)
  • Handle integer column names on Perspective widget (#2069)
  • Fix bundling of template resources (#2076)
  • Fix value_throttled in pn.depends decorator (#2085)

Compatibility:

  • Switch GitHub OAuth to use header authorization token (#2073)

Version 0.11.0

Date: 2021-03-01

The 0.11.0 release brings a number of exciting new features to Panel as well as some enhancements and bug fixes. This release is also required for Bokeh 2.3 compatibility since a lot of changes to the Bokeh property system required updates. Many thanks to the many contributors to this release including @MarcSkovMadsen, @xavArtley, @hyamanieu, @cloud-rocket, @kcpevey, @kaseyrussell, @miliante, @AjayThorve and @philippjfr.

Major features:

  • A Perspective pane based on the FINOS Perspective library (#2034)
  • Implement --autoreload functionality for the Panel server (#1983)
  • Add --warm option to panel serve, useful for pre-loading items into the state cache (#1971)
  • Add ability to define JS modules and Template specific resources (#1967)
  • panel.serve now supports serving static files and Bokeh apps, not just Panel apps (#1939)
  • Add a TrendIndicator for conveniently showing history and value of a numeric quantity (#1895)
  • Add TextToSpeech widget (#1878)
  • Add SpeechToText widget (#1880)
  • Add loading parameter and spinners to all components (#1730, #2026)
  • Add IDOM pane to develop interactive HTML components in Python (#2004)
  • Add powerful new Tabulator widget for flexible and configurable display of tabular data (#1531, #1887)

Enhancements:

  • Add watch argument to bind function so that covers all the features of pn.depends (#2000)
  • Add format parameter to DatetimeRangeInput widget (#2043)
  • Allow ParamMethod and ParamFunction to evaluate lazily (#1966)
  • Add value_input parameter to TextInput widgets (#2007)
  • Implement Glyph3dMapper support for VTK panes (#2002, #2003)
  • Add Jupyter server extension to serve resources (#1982)
  • Enhancements for DarkTheme (#1964)
  • Add refresh functionality to FileSelector (#1962)
  • Add support for Auth0 authentication (#1934)
  • Avoid recursive preprocessing slowing down rendering (#1852)
  • Add support for per-layer tooltips on DeckGL pane (#1846)
  • Add Viewer baseclass for custom user components (#2045)

Bug fixes:

  • Fixed FileSelector file icon on selected files (#2046)
  • Drop query args when checking URLs (#2037)
  • Fix Card.header_background propagation (#2035)
  • Disable GoldenTemplate sidebar when empty (#2017)
  • Ensure Card.collapsed and Accordion.active parameters are synced (#2009)
  • Fix inline resources when saving (#1956)
  • Switch Param pane widget type when bounds (un)defined (#1953)

Compatibility:

  • Compatibility with Bokeh>=2.3 (#1948, #1988, #1991)
  • Updated ECharts pane to 5.0.2 of JS library (#2016)

Documentation:

  • Document pn.bind in API user guide (#1973)

Version 0.10.3

Date: 2021-01-18

Another micro-release in the 0.10.x series focusing primarily on bug and regression fixes. Many thanks to @miliante, @MarcSkovMadsen, @Hoxbro, @jlstevens, @jbednar and @philippjfr.

Bug fixes:

  • Fix inverted axes on HoloViews plots (#1732)
  • Fix enabling/disabling of FileDownload widget (#1510, #1820)
  • Fix issues serving template resources on server with route prefix (#1821)
  • Fixes for rendering ECharts from pyecharts (#1874, #1876)
  • Fix issues with scroll behavior when expanding/collapsing Card/Accordion (#1833, #1884)
  • Ensure DiscreSlider label is correctly linked to value (#1906)
  • Fix support for setting header_color and header_background on all templates (#1872)
  • Ensure that Template preprocessors are applied during initialization (#1922)

Enhancements:

  • Support throttled in Param widget (#1800)
  • Support rendering of hvPlot Interactive objects (#1824)
  • Allow recording session launch time in server session_info (#1909)
  • Add Button.value parameter (#1910)
  • Support upload of multiple parameters on FileInput (#1911)
  • Improve support for DarkTheme in templates (#1855, #1856)

Documentation:

  • Fixed IntSlider and FloatSlider example (#1825)
  • Updated instructions for using Panel in JupyterLab (#1908)

Version 0.10.2

Date: 2020-11-13

This is another micro-release primarily fixing various minor bugs in functionality introduced as part of the 0.10.0 release. Many thanks to @MarcSkovMadsen, @ahuang11, @xavArtley, @Hoxbro, @jbednar and @philippjfr.

Bug fixes:

  • Fix various issues with Template CSS (#1663, #1742)
  • Fix BytesIO/StringIO buffers as input to image panes (#1711)
  • Fix out-of-bounds errors when assigning to GridSpec with fixed ncols (#1721)
  • Fix deserialization issues for Plotly.hover_data (#1722)
  • Fixed updating of Alert parameters after initialization (#1725)
  • Fix ordering of items added to Template areas (#1736)
  • Fix interactivity for items in Card (#1750)
  • Ensure onload callbacks are only run once (#1746)
  • Allow overriding items in grid based templates (#1741)
  • Ensure ECharts and ipywidget rerender when in Card (#1765)
  • Ensure template dark theme persists on HoloViews plots (#1764)
  • Fix responsive height in Plotly pane (#1770)
  • Ensure image panes resize in width and height (#1777)
  • Fix issues with Location.sync serialization (#1784)
  • Add throttled argument to interact (#1259)
  • ECharts pane now loads echarts-gl for 3D support (#1785)

Enhancements:

  • Improved OAuth encryption key validation (#1762)
  • Add progress option to .save method (#1776)

Version 0.10.1

Date: 2020-10-27

This is a micro release of Paanel primarily containing bug fixes following the 0.10.0 release. Many thanks to @MarcSkovMadsen, @jbednar and @philippjfr for contributing fixes to this release.

Enhancements:

  • Add pn.bind function to bind parameters to a function (#1629)

Bug fixes:

  • Fix WidgetBox CSS (#855)
  • Fix CSS load order in Templates (#1698)
  • Allow setting DiscreteSlider orientation (#1683)
  • Ensure JS callbacks and links are only set up once on templates (#1700)
  • Initialize pipeline only once (#1705)
  • Allow using NumberInput as Param pane widget (#1708)

Version 0.10.0

Date: 2020-10-23

This is a minor but jam-packed release of Panel, with a slew of new features and enhancements, plus a wide array of minor fixes and improvements to the documentation, and website. Many thanks to the people who contributed to this release, including @philippjfr, @MarkSkovMadsen (alert pane, templates, docs), @xavArtley (VTK improvements, templates, input/spinner widgets), @maximlt (panel serve), @jbednar (docs, reviewing), @kebowen (templates), @ahuang11 (datepicker), @nghenzi (react template, bugfixes), @nritsche (panel serve), @ltalirz (autocomplete input), @BoBednar (docs), @tmikolajczyk, @halilbay, @Hoxbro, and @ceball (testing and automation).

Features:

Enhancements:

  • Allow defining explicit embed states (#1274)
  • Implement __add__ and __iadd__ on layouts (#1282)
  • Add support for hierarchical multi-indexed DataFrame (#1383)
  • Add show_index option to DataFrame widget (#1488)
  • Link widgets with same name during embed (#1543)
  • Wait until JS dependency is loaded before rendering (#1577)
  • For AutocompleteInput, allow user-defined values (#1588) and case-insensitivity (#1548)
  • Allow dates to be disabled in DatePicker (#1524)
  • Enable new features for a Bokeh DataTable (#1512)
  • Panel serve improvements: MethodType parameter (#1450), title per app (#1354)
  • Server deployment guide for Azure (#1350)
  • Add Widget.from_param classmethod (#1344)
  • More options for ACE widget (#1391)

Bugfixes and minor improvements:

Backwards compatibility:

  • Switch away from inline resources in notebook (#1538, #1678)
  • Viewable.add_periodic_callback is deprecated; use pn.state.add_periodic_callback (#1542)
  • Use widget_type instead of type to override Param widget type in Param pane (#1614)
  • Spinner widget is now called NumberInput (#1513)

Version 0.9.7

The 0.9.6 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

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, @jbednar, @mycarta, @basnijholt, @jbednar and @philippjfr.

  • Compatibility with Bokeh 2.1 (#1424, #1428)
  • 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: 2019-04-04

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

Enhancements:

  • Add Template.save 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

Documentation:

  • 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-02

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.

Enhancements:

  • 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)

Compatibility:

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

Version 0.9.3

Date: 2019-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: 2019-03-21

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: 2019-03-19

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: 2019-03-13

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:

Features:

  • 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)

Removals:

  • 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: 2019-03-11

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: 2019-01-31

This release focuses primarily on solidifying existing functionality, significantly improving performance and fixing a number of important bugs. Additionally this release contains exciting new functionality, including several new components. We want to thank the many contributors to this release (a full list is provided at the bottom), particularly @MarcSkovMadsen (the author of awesome-panel.org) and @xavArtley, 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 required only minimal changes in existing APIs and added a small number of new ones, reflecting the fact that Panel is now relatively stable and is progressing steadily towards a 1.0 release.

Major Features & Enhancements

  • Added new DeckGL pane (#1019, #1027)
  • Major improvements to support for JS linking (#1007)
  • Huge performance improvements when nesting a lot of components deeply (#867, #888, #895, #988)
  • Add support for displaying callback errors and print output in the notebook simplifying debugging (#977)
  • Add support for dynamically populating Tabs (#995)
  • Added FileSelector widget to browse the servers file system and select files (#909)
  • Add pn.serve function to serve multiple apps at once on the same serve (#963)
  • Add a JSON pane to display json data in a tree format (#953)

Enhancements

  • Updated Parameter mappings (#999)
  • Ensure that closed tabs update Tabs.objects (#973)
  • Fixed HoloViews axis linking across Template roots (#980)
  • Merge FactorRange when linking HoloViews axes (#968)
  • Expose title and other kwargs on .show() (#962)
  • Let FileInput widget set filename (#956
  • Expose further bokeh CLI commands and added help (#951)
  • Enable responsive sizing for Vega/altair pane (#949)
  • Added encode parameter to SVG pane (#913)
  • Improve Markdown handling including syntax highlighting and indentation (#881)
  • Add ability to define Template variables (#815)
  • Allow configuring responsive behavior globally (#851)
  • Ensure that changes applied in callbacks are reflected on the frontend immediately (#857)
  • Add ability to add axes coordinates to VTK view (#817)
  • Add config option for safe_embed which ensures all state is recorded (#1040)
  • Implemented __signature__ for tab completion (#1029)

Bug fixes

  • Fixed DataFrame widget selection parameter (#989)
  • Fixes for rendering long strings on Windows systems (#986)
  • Ensure that panel does not modify user objects (#967)
  • Fix multi-level expand Param subobject (#965)
  • Ensure load_notebook is executed only once (#1000)
  • Fixed bug updating StaticText on server (#964)
  • Do not link HoloViews axes with different types (#937)
  • Ensure that integer sliders are actually integers (#876)
  • Ensure that GridBox contents maintain size (#971)

Compatibility

Backwards compatibility

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

Docs

  • Updated Django multiple app example and user guide (#928) [@stefjunod]
  • Clarify developer installation instructions, and fix up some metadata. (#952, #978)
  • Added Param reference notebook (#944)
  • Added Divider reference notebook

Version 0.7.0

Date: 2019-11-18T21:22:16Z

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](#775))

Bug fixes and minor improvements:

Documentation:

Version 0.6.2

Date: 2019-08-08T15:13:31Z

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-08T17:41:51Z

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

Enhancements:

  • 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:

Documentation:

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

Version 0.6.3

Date: 2019-09-19T10:28:36Z

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

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)

Documentation:

  • 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-02T17:56:26Z

Version 0.5.1

Date: 2019-04-11T16:52:06Z

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).

Features:

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

Bugfixes:

  • 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-04T00:42:59Z

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 (#326)
  • 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-05T22:49:23Z

Minor release fixing packaging issues.

Version 0.3.0

Date: 2018-12-05T00:47:25Z

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

Bugfixes:

Compatibility changes

  • Renamed Param expand options (#127)

Version 0.4.0

Date: 2019-01-28T18:02:57Z

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).

Enhancements:

Bug fixes:

Version 0.1.3

Date: 2018-10-23T12:09:07Z