All Versions
42
Latest Version
Avg Release Cycle
-
Latest Release
-

Changelog History
Page 1

  • v0.14.1 Changes

    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
  • v0.14.0 Changes

    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

    • ๐Ÿ“š Overhaul documentation (#3568)
    • ๐Ÿ‘Œ Improve Fast Template docstrings (#3570)
    • ๐Ÿ“„ Reorganize docs and convert static notebooks to Markdown (#3875, #3833)
    • โž• Add DevelopingCustomModels to the webpage (#3710)
    • ๐Ÿ‘Œ Improve typing (#3561, #3562, #3592, #3604, #3714, #3729)

    โšก๏ธ 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)
  • v0.13.1 Changes

    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)
  • v0.13.0 Changes

    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)
    • 0๏ธโƒฃ 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)
  • v0.12.7 Changes

    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)
  • v0.12.6 Changes

    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)
  • v0.12.5 Changes

    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)
  • v0.12.4 Changes

    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)
  • v0.12.3 Changes

    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)
  • v0.12.2 Changes

    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: