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](https://github.com/holoviz/panel/pull/3817), [#3830](https://github.com/holoviz/panel/pull/3830), [#3851](https://github.com/holoviz/panel/pull/3851), [#3856](https://github.com/holoviz/panel/pull/3856), [#3857](https://github.com/holoviz/panel/pull/3857), [#3858](https://github.com/holoviz/panel/pull/3858), [#3860](https://github.com/holoviz/panel/pull/3860), [#3861](https://github.com/holoviz/panel/pull/3861), [#3863](https://github.com/holoviz/panel/pull/3863), [#3864](https://github.com/holoviz/panel/pull/3864), [#3868](https://github.com/holoviz/panel/pull/3868), [#3878](https://github.com/holoviz/panel/pull/3878))
- Manage our own CDN to improve performance and reliability for delivering JS payloads ([3867](https://github.com/holoviz/panel/pull/3867), [#3870](https://github.com/holoviz/panel/pull/3870))
- Add ability to `defer_load` of components ([3882](https://github.com/holoviz/panel/pull/3882))
- Add `pn.widget` helper function ([1826](https://github.com/holoviz/panel/pull/1826), [#3589](https://github.com/holoviz/panel/pull/3589))
- Add `config.exception_handler` to easily capture, log and notify users about errors ([3893](https://github.com/holoviz/panel/pull/3893))
- Implement `pn.cache` function for memoization support ([2411](https://github.com/holoviz/panel/pull/2411))
- Rewrite server extension to run Panel applications in kernels so that previews run in the same environment as the deployed app ([3763](https://github.com/holoviz/panel/pull/3763))
- Add ability to define authorization callback ([3777](https://github.com/holoviz/panel/pull/3777))
- Support memray profiler ([3509](https://github.com/holoviz/panel/pull/3509))
- Add liveness endpoint ([3832](https://github.com/holoviz/panel/pull/3832))
- Add ability to configure exception handler ([3896](https://github.com/holoviz/panel/pull/3896))
Enhancements
- Ensure OAuth redirects to requested app and retains query arguments ([3555](https://github.com/holoviz/panel/pull/3555))
- Add extension entry point ([3738](https://github.com/holoviz/panel/pull/3738))
- Update Admin Logs page to use `Tabulator` ([3694](https://github.com/holoviz/panel/pull/3694))
- Ensure `location.unsync` unsets query params ([3806](https://github.com/holoviz/panel/pull/3806))
- Allow None value on numeric sliders and `LiteralInput` ([3174](https://github.com/holoviz/panel/pull/3174))
- Allow serving admin panel with `pn.serve` ([3798](https://github.com/holoviz/panel/pull/3798))
- Improve `ReactiveHTML` loop support and validation ([3813](https://github.com/holoviz/panel/pull/3813))
- Support declaring `Perspective.plugin_config` pane ([3814](https://github.com/holoviz/panel/pull/3814))
- Do not flicker busy indicator during `--autoreload` check ([3804](https://github.com/holoviz/panel/pull/3804))
- Improve robustness of `state.curdoc` in threaded and async contexts ([3776](https://github.com/holoviz/panel/pull/3776), [#3810](https://github.com/holoviz/panel/pull/3810), [#3834](https://github.com/holoviz/panel/pull/3834))
- Support datetime bounds for `DatetimePicker` and `DatetimeRangePicker` ([3788](https://github.com/holoviz/panel/pull/3788))
- Allow setting the Oauth provider using environment variables ([3698](https://github.com/holoviz/panel/pull/3698))
- Implement `Player.value_throttled` ([3756](https://github.com/holoviz/panel/pull/3756))
- Ensure that URL query parameters are preserved during OAuth ([3656](https://github.com/holoviz/panel/pull/3656))
- Improve `Markdown` code syntax highlighting ([3758](https://github.com/holoviz/panel/pull/3758))
- Ensure components do not re-render if `background` or `loading` parameters change ([3599](https://github.com/holoviz/panel/pull/3599))
- Add ability to define admin dashboard plugins ([3668](https://github.com/holoviz/panel/pull/3668))
- Do not calculate embed state for disabled widgets ([3757](https://github.com/holoviz/panel/pull/3757))
- Add hard bounds to editable sliders ([3739](https://github.com/holoviz/panel/pull/3739))
- Add bundling of shared resources ([3894](https://github.com/holoviz/panel/pull/3894))
- Add `Tabulator` as default `param.DataFrame` widget ([3912](https://github.com/holoviz/panel/pull/3912))
Documentation
- Overhaul documentation ([3568](https://github.com/holoviz/panel/pull/3568))
- Improve Fast Template docstrings ([3570](https://github.com/holoviz/panel/pull/3570))
- Reorganize docs and convert static notebooks to Markdown ([3875](https://github.com/holoviz/panel/pull/3875), [#3833](https://github.com/holoviz/panel/pull/3833))
- Add DevelopingCustomModels to the webpage ([3710](https://github.com/holoviz/panel/pull/3710))
- Improve typing ([3561](https://github.com/holoviz/panel/pull/3561), [#3562](https://github.com/holoviz/panel/pull/3562), [#3592](https://github.com/holoviz/panel/pull/3592), [#3604](https://github.com/holoviz/panel/pull/3604), [#3714](https://github.com/holoviz/panel/pull/3714), [#3729](https://github.com/holoviz/panel/pull/3729))
Compatibility & Version updates
- Support ipywidgets>=8.0 ([3782](https://github.com/holoviz/panel/pull/3782))
- Bump jsoneditor package ([3838](https://github.com/holoviz/panel/pull/3838))
- Upgrade to Tabulator 5.3.2 ([3784](https://github.com/holoviz/panel/pull/3784))
- Improve Django compatibility ([3843](https://github.com/holoviz/panel/pull/3843), [#3835](https://github.com/holoviz/panel/pull/3835))
- Remove all usage of deprecated `Pane`
Bugs
Server
- Ensure closed websocket does not cause errors
- Handle session and websocket close cleanly ([3769](https://github.com/holoviz/panel/pull/3769))
- Fix prefix handling for admin page ([3809](https://github.com/holoviz/panel/pull/3809))
- Support admin dashboard in multi-process deployments ([3812](https://github.com/holoviz/panel/pull/3812))
- Improve document cleanup when not invoked using `server_destroy` ([3842](https://github.com/holoviz/panel/pull/3842))
- Ensure `pn.state.execute` dispatches immediately if possible ([3859](https://github.com/holoviz/panel/pull/3859))
- Ensure autoload.js resources are appropriately prefixed ([3873](https://github.com/holoviz/panel/pull/3873))
Notebook
- Fix support for copying cells and creating new views in JupyterLab ([3652](https://github.com/holoviz/panel/pull/3652))
- Ensure output renders in VSCode notebook with latest ipywidgets ([3765](https://github.com/holoviz/panel/pull/3765))
- Resolve issues with Jupyter slowdown due to event_loop patching on Windows ([3770](https://github.com/holoviz/panel/pull/3770))
- Ensure old comm managers do not raise errors in notebook ([3853](https://github.com/holoviz/panel/pull/3853))
- Simplify rendering of ipywidget ([3937](https://github.com/holoviz/panel/pull/3937))
Tabulator
- Do not re-render `Tabulator` on `css_classes` or `background` change ([3598](https://github.com/holoviz/panel/pull/3598))
- Ensure expand icon updates on `Tabulator.expanded` change ([3703](https://github.com/holoviz/panel/pull/3703))
- Update `page` Parameter when pagination is 'local' ([3704](https://github.com/holoviz/panel/pull/3704))
- Do not apply `sorters` on `Tabulator` cell edits ([3744](https://github.com/holoviz/panel/pull/3744))
- Ensure `Tabulator.controls` renders ([3768](https://github.com/holoviz/panel/pull/3768))
- Ensure correctness of event row and selection indices in `Tabulator` ([3771](https://github.com/holoviz/panel/pull/3771), [#3841](https://github.com/holoviz/panel/pull/3841))
- Fix issues with frontend and backend sorters being out of sync in Tabulator ([3825](https://github.com/holoviz/panel/pull/3825), [#3839](https://github.com/holoviz/panel/pull/3839))
- Fix default values of a list header filter in `Tabulator` ([3826](https://github.com/holoviz/panel/pull/3826))
- Fix the edit event with a python filter in `Tabulator` ([3829](https://github.com/holoviz/panel/pull/3829))
- Disable client-side date filtering on `Tabulator` ([3849](https://github.com/holoviz/panel/pull/3849))
- Support editing of pandas masked array dtypes in `Tabulator` ([3850](https://github.com/holoviz/panel/pull/3850))
- Fix issues editing a cell when client-side filtering applied ([3852](https://github.com/holoviz/panel/pull/3852))
- Do not recompute data when local pagination is enabled ([3854](https://github.com/holoviz/panel/pull/3854))
- Don't skip filtering when the column name is undefined ([3862](https://github.com/holoviz/panel/pull/3862))
Misc
- Fix `FileInput.save` ([3579](https://github.com/holoviz/panel/pull/3579))
- Fix issues with `Matplotlib.high_dpi` option ([3591](https://github.com/holoviz/panel/pull/3591), [#3594](https://github.com/holoviz/panel/pull/3594))
- Ensure layout recomputes on `HTML`/`Markdown` re-rerender ([3616](https://github.com/holoviz/panel/pull/3616))
- Allow overriding all widget parameters on `Param` pane ([3754](https://github.com/holoviz/panel/pull/3754))
- Ensure `DatePicker` start/end are transformed when jslinked ([3759](https://github.com/holoviz/panel/pull/3759))
- Ensure notifications can be enabled without a template ([3820](https://github.com/holoviz/panel/pull/3820))
- Ensure `ReactiveHTML` inline callbacks on loop variables return correct node ([3840](https://github.com/holoviz/panel/pull/3840))
- Ensure that `Perspective` does not take precedence on empty dict ([3936](https://github.com/holoviz/panel/pull/3936))
- Improve `sizing_mode` behavior when width/height are specified ([3955](https://github.com/holoviz/panel/pull/3955))
- Do not load notyf resources unless notifications are enabled ([3958](https://github.com/holoviz/panel/pull/3958))