Releases
Version 1.8.7
This patch release reverts two changes that were made in 1.8.6 that turned out to be more disruptive than expected. Additionally it ensures that Tabulator automatically recalculates page sizes on resize and resolves issues with patched versions of Plotly.
🐛 Bug fixes
Rerun Tabulator page size calculation on resize (#8395)
Fix issues with monkey-patched versions of Plotly ([#8397]](https://github.com/holoviz/panel/pull/8397))
⏪ Reverted
Ensure
edit_readonlyresets both class- and instance-level parameters (#8371)Validate ReactiveHTML missing id errors (#8382)
Version 1.8.6
This patch release includes several ESM and React-related fixes, UI behavior improvements, and enhanced robustness in form inputs and file handling. It also bumps key dependencies and improves support for custom deployments. Thanks to @philippjfr, @maximlt, @emunsing, @TheoMathurin, @dalthviz and @hoxbro for their contributions to this release!
✨ Enhancements
Add
placeholderparameter onFloatInputandIntInput(#8360)Support for file extensions in
FileDropper.accepted_filetypes(#8380)Accept 2D arrays for stereo
Audio(#8381)
🐛 Bug Fixes
Ensure collapsed
Cardstill renders components to avoid child render issues (#8274)ESM & React Components:
Ensure
PathLikeis accepted forrequirementsin pyodide conversion calls (#8366)Ensure
edit_readonlyresets both class- and instance-level parameters (#8371)Fix
guestendpoint validation at root path (#8370)Don't attempt to refresh access token if there is no active user session (#8384)
Ensure OAuth state for user is reset after failing to refresh access token (#8389)
Ensure
config.designvalue is respected byTemplate(#8388)Improve robustness of
Tabulator.page_sizeinference (#8390)
⚠️ Compatibility & Deprecations
Added compatibility for pandas 3.0 (#8385)
📚 Documentation
Update
Plotlyexample to prevent flicker on load (#8362)
🧪 Maintenance
Bump
bokehto 3.8.2 in Django example app (#8376)Bump
preactto 10.26.10 (#8367)Update pre-commit hooks (#8363)
Version 1.8.5
This release includes several fixes and enhancements for notebook stability, Tabulator behavior, ESM/ReactiveComponent handling, and Markdown rendering. It also adds documentation updates for FastAPI integration, app conversion guides, and the Panel roadmap.
🐛 Bug Fixes
Fix error in notebook environments causing failure to run apps (#8334)
Prevent
Tabulatorfrom unintentionally revertingshow_index=Falseback toTrue(#8333)Ensure transformed param values are inherited by ESM components (#8338)
Ensure DataFrame objects can be referenced in Vega
datasets(#8330)Improve handling of code highlighting in
Markdownpane (#8331)Allow replacing child models inside
ReactiveESMcomponents (#8348)
📚 Documentation
Add how-to guides for converting Panel apps to desktop and mobile apps (#8349)
Update FastAPI integration instructions (#8337)
Publish updated Roadmap for Panel v2 and beyond (#8339)
🧪 Maintenance & Build
Use trusted publisher setup for NPM release
Bump Node.js version used in build
Version 1.8.4
Panel 1.8.4 includes key bug fixes and behavior improvements around event ordering, Tabulator interop, and Jupyter/Notebook usage. It also improves support for async usage, validation, and app routing—plus quality-of-life enhancements for both developers and users. Thanks to @philippjfr, @hoxbro, @maximlt, @ahuang11, @MarcSkovMadsen, @TheoMathurin, @ruoyu0088, and @dieterweber for your contributions to this release!
✨ Enhancements
Add config toggle to disable Bokeh validation (#8294)
Allow
Tabulator.row_contentto be an async function (#8309)Improve documentation and validation of
patch_value(#8312)Propagate layout-related parameters to
NestedSelect(#8317)
🐛 Bug Fixes
Fix crash when emptying a
DataFrame(#8256)Ensure new Panel instance is always loaded (#8293)
Improve robustness of Bokeh/Panel notebook integration (#8289)
Fix notebook reading errors by explicitly using UTF-8 encoding (#8304)
Ensure
param.Actiononly triggers one event (#8305)Fix conflict when using both
ipywidgetsandTabulatorextensions (#8308)Ensure discrete events (e.g. button clicks) are scheduled after change events (#8311, #8319)
Reinstate application name as default index page title (#8313)
Redirect requests to the prefixed root when
--prefixis set (#8321)Ensure non-active
Tabsare not clickable (#8324)
🧪 Maintenance & Infrastructure
Update Python/JS dependencies (#8318)
Fix type checking errors (#8314)
Pin
jupyterlite-coretemporarily (#8315)Clean up
pixi.tomlproject config (#8303)
⚠️ Compatibility & Deprecations
Heads up: Starting with Panel 1.9.0, pandas will no longer be installed by default. If your code depends on pandas and you were relying on Panel to install it implicitly, you’ll need to add it as an explicit dependency in your environment or project configuration.
Version 1.8.3
This patch release brings targeted UI fixes, improves Python and Django compatibility, and enhances the developer and contributor experience. It also includes fixes for Tabulator, Pyodide, templates, and app interactivity, along with several documentation and robustness improvements. Many thanks to @ahuang11, @hoxbro, @maximlt, @MarcSkovMadsen, @Coderambling and @philippjfr for their contributions to this release.
✨ Enhancements
Align CSS variables between default and dark themes (#8248)
Ensure behavior of dynamically served apps is aligned with file based apps (#8249)
Add
export()method toVegapane (#8266)Add official support for Python 3.14 (#8241)
Add
render_policy="manual"option forJSComponent(#8285)Disable text selection when editing in
EditableTemplate(#8286)Prevent full text selection when replacing input values on
CodeEditor(#8262)
🐛 Bug Fixes
Fix FastAPI bug where
pn.state.locationwasn’t retained (#8283)Fix Tabulator popup container rendering issues (#8247)
Resolve issues with pipeline
next/previousbuttons (#8273)Ensure ESM compilation uses
_esmpath (#8245)Fix CORS issue with
turbinedata URL in Pyodide (#8272)Ensure
ParamRef,ParamFunction, andParamMethoddo not override styling (#8264)Fix toggle behavior in
BootstrapTemplatesidebar (#8268)Minor robustness improvements for Bokeh model interop (#8270)
📚 Documentation
Minor enhancements to the Panel Gallery deployment (#8240)
Update Django integration docs (#8252)
Clarify setup instructions (#8255)
Fix typo and layout issue in
README.md(#8287)Fix unclosed code block in
convert.md(#8280)
🧪 Infrastructure & Developer Experience
Remove Bokeh metadata workaround related to Tornado (#8243)
Bump Django versions in example apps:
Add
setup-devcommand for easier local development (#8277)Improve internal
_descendentsresolution for parameterized classes (#8284)Add
__panel__stub method toPyComponent(#8271)
Version 1.8.2
This patch release focuses on polishing the user experience, fixing regressions, and improving documentation, particularly around app deployment and Tabulator interactivity. It includes several frontend and CSS tweaks, pyodide compatibility fixes, and two new deployment guides for Anaconda Notebooks and PythonAnywhere. Thanks to @philippjfr, @maximlt, @etihwo, @MarcSkovMadsen, and @Coderambling for their contributions to this release.
✨ Enhancements
Allow custom control over Tabulator editable rows using
JSCode(#8204)Improve UI discoverability on
EditableTemplate(#8206)Set pointer cursor on "Connection Lost" toast notification (#8209)
Serve
index.htmlautomatically when serving a static directory (#8222)
🐛 Bug Fixes
Ensure Tabulator does not break if other components don't correctly initialize (#8212)
Fix Pyodide
jsnullvalue conversion in Bokeh JSON patches (#8217)Fix regression causing column headers not to stretch properly across layout (#8219)
Ensure
config.npm_cdnis respected (#8233)Ensure bundled pyodide resources use correct path separator (#8230)
Ensure pyodide resource bundle is only generated if necessary (#8234)
Ensure pyodide session is registered as loaded (#8235)
📚 Documentation
Add how-to guide on deploying Panel apps on Anaconda Notebooks (#8207)
Add how-to guide on deploying Panel apps on PythonAnywhere (#8216)
Update
Plotly.ipynbto reflect current Plotly version and correct doc URLs (#8214, #8203)Add missing Anaconda logo to documentation (#8208)
Add how-to guide on using
uvto distribute Panel apps and dependencies (#8205)
Version 1.8.1
Many thanks to @ATL2001 (first contribution), @Coderambling, @philippjfr, and @hoxbro for their contributions.
Enhancements
Add configuration to disable container popup (#8200)
Bug Fixes
Ensure Tabulator empty column has no width (#8193)
Add UTC timezone to default time for croniter (#8199)
Documentation
Update indicators_performance.md to fix typo (#8192)
Version 1.8.0
This release brings a wide range of new features, enhancements, and compatibility improvements. Highlights include support for JSCode in ECharts and Tabulator, reworked WebSocket reconnection, and the ability to bundle resources into WASM apps, and numerous bug fixes to improve stability across components and templates. It also includes compatibility updates for Bokeh 3.8 and several improvements for use in Pyodide, JupyterLite, and authentication-based deployments. Many thanks to our returning contributors @dalthviz and @etihwo, a very warm welcome to our new contributors @c-meier and @flxmr and as usual many thanks to our core team including @maximlt, @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr.
🚀 Features
Support for inline JavaScript functions in
EChartsandTabulatorviaJSCodewrapper (#8162)Add support for reconnecting to a session after network disruption (#8120)
Add support for
AVIFimages (#8164)Add support for bundling local resources into WASM apps (#8181)
✨ Enhancements
Improve
.from_param()behavior and error messages (#8047, #8079)Add
--reuse-sessions warmoption to reduce session cold starts (#8087)Enable event dispatch immediately after WebSocket connect (#8101)
Improve error message display in
LiteralInput(#8102)Allow
holdusage from a thread (#8113)Improve uniformity and consistency in
Tabulatorcolumn configuration (#8127)Trigger
param.Eventcorrectly on value change (#8148)Allow registering external
extension_cdnfor JS resources (#8175)Allow overriding the
default_widgetsonHoloViewspane (#8186)
🐛 Bug Fixes
Ensure
Terminalresizes correctly (#8109)Bundle correct
AceEditorversion (#8111)Remove
bokeh-sampledatadependency from Pyodide builds (#8138)Correct resource handling when resources are symlinked (#8143)
Correct behavior when
FileDownloadresets cursor before reading (#8154)Fix handling of
NaTvalues (#8156)Apply template design after rendering template (#8155)
Prevent
select-allcheckbox from being hidden in Material theme (#8147)Fix handling of exclusive bounds in
Paramwidgets (#8165)Fix layout of
Cardheaders withrowflex mode (#8166)Uncap height of children in scrollable
Columnlayouts (#8167)Fix errors in
EChartswhen chart has already been destroyed (#8168)Fix
Tabulatorfilter behavior with list-based filters (#8169)Allow
Cardto overflow container (#8170)Fix
pyodidemodel syncing (#8174)
⚠️ Deprecations
Removed
panel.io.model.hold(was moved topanel.io.document.holdin 1.6.0) (#8188)Deprecated
panel.chat.langchain.PanelCallbackHandler(to be removed in 1.9.0) (#8188)
📦 Compatibility & Infrastructure
Update component versions (#7447)
DeckGLversion from 9.0.20 to 9.1.14EChartsversion from 5.6.0 to 6.0.0KaTeXversion from 0.6.0 to 0.16.22Perspectiveversion from 3.6.1 to 3.8.0Plotlyversion from 3.0.1 to 3.1.0Vegaversion from 5 to 6.1.2 and vega-lite dependency from 5 to 6.3.0Vizzuversion from 0.15 to 0.17.1
Drop support for Bokeh 3.5 and 3.6 (#8116)
Full compatibility with Bokeh 3.8 (#8160)
📚 Documentation
Add guide for using WebSocket comms (#7952)
Update links for Tabulator (#8126)
Align component parameter reference documentation (#8152)
Version 1.7.5
This patch release brings a number of important bug fixes and refinements, including improved modal behavior, Param integration fixes for ESM, and security hardening of authentication templates. Thanks to @harmvanderheijden, @marcskovmadsen, @maximlt, and @philippjfr for their contributions.
Enhancements
Improve
.from_param()error messages (#8047)Add
--reuse-sessions warmoption to preload and cache apps before first use (#8087)
Security
Fix XSS vulnerabilities in login and OAuth error templates by escaping user-controlled input (#8049)
Bug Fixes
Fix
value_throttledhandling in Param panes (#8057)Prevent
AutocompleteInputfrom resetting whenrestrict=False(#8056)Fix callback cleanup for
--reuse_sessionsmode (#8052)Reset
param.Eventstate on ESM components (#8054)Allow
Playercomponents to start upon initialization (#8058)Fix modal dialog stacking and focus behavior in VanillaTemplate (#8059, #8060)
Avoid errors in
Tabulatorwhen editing DataFrames withpd.NAvalues (#8068)Add guard for undefined
urlinImportedStyleSheet(#8071)Ensure session token payload is correctly updated when reusing sessions (#8072)
Ensure
--reuse-sessionscaches the--indexapp correctly (#8073)Add debounce logic to
ModelChangedevents in Pyodide to improve performance and prevent redundant updates (#8077)Ensure
Layoutableparams propagate to HoloViews plots (#8078)Fix regression in handling
param.Actionin.from_param()utility (#8079)Ensure
LoadingSpinner.visiblecorrectly hides the component (#8081)Ensure
JSONEditortriggers on re-ordering of nodes (#8086)Fix
JSONEditormenu option to improve usability (#8085)
Documentation
Add websocket communication how-to guide to documentation (#7952)
Add note about increasing proxy buffer size for OAuth behind reverse proxies (#8084)
Maintenance
Fix gallery deployment automation (#8055)
Version 1.7.4
This patch release introduces small but impactful security, compatibility, and usability improvements. It enhances OAuth behavior, adds byte support for the PDF pane, and fixes several rendering and import issues across backends and components. Thanks to @ahuang11, @dalthviz, @MarcSkovMadsen, and @philippjfr for their contributions.
Enhancements
Add support for
bytesinput to thePDFpane (#8044)Add
logout_urlfor Auth0 to OAuth error page template (#8036)
Security
Add authentication to files served from
--static-dirs(#8042)Escape error messages shown on the OAuth error page fixing XSS vulnerability (#8043)
Bug Fixes
Ensure
ReactComponentforces a re-render after render step (#8037)Fix
this.mousebug inEChartsimplementation (#8041)Fix incorrect import path in Django integration docs (
bokehjsdir→bokehjs_path) (#8040)Update Bokeh/FastAPI extra dependency pin to ensure compatibility (#8039)
Version 1.7.3
This patch release includes several critical stability improvements, JavaScript race condition fixes, and developer experience enhancements. It also introduces small but helpful UI features such as exception copying and better error feedback in CLI and ESM workflows. Many thanks to contributors @etihwo, @bsdz, @Coderambling, @hoxbro, @philippjfr, and @MarcSkovMadsen.
Enhancements
Add “Copy to Clipboard” button for exceptions in the UI (#8034)
Enable MathJax rendering if the extension is available (#8004)
Allow setting a custom title for
Tabulatormulti-index columns (#8008)Improve feedback in
panel compileand reactive ESM workflows (#8012, #8010)Ensure exceptions are printed to the command line in development mode (#8022)
Bug Fixes
Guard against race conditions in
DeckGLduring resize (#8031)Prevent errors when
client_commis undefined in some JS execution contexts (#8030, #8033)Fix dark theme background issue in
MultiChoicewidget (#8014)Avoid rendering Plotly components if container is not yet defined and prevent layout boomeranging (#8021)
Ensure React
useStatecallbacks are registered only once (#8023)Support
Pathobjects in stylesheet definition (#8026)
Version 1.7.2
This patch release includes a number of important bug fixes, optimizations, and compatibility updates, particularly for React and ESM-based components. It also includes enhancements to the Tabulator table and more robust support for Audio/Video panes. Many thanks to @etihwo for his continued contributions and the maintainer team @hoxbro and @philippjfr.
Enhancements
Support for passing
bytesandBytesIOobjects toAudioandVideopanes (#7963)Add header tooltips to
Tabulator(#7988)Optimize layout calculations for ESM components (#7989)
Allow nested
ReactComponents to bypass Shadow DOM (#7991)Support
--ico-pathCLI option to support explicit .ico path specification (#7992)Loosen parameter type for
ReactiveExpr.widget_layout(#7964)Automatically unblock Comm on WebSocket re-connect (#7986)
Bug Fixes
Fix
Tabulatorfast design and fix styling issues (#7956)Keep reference state consistent after Pyodide syncing (#7966)
Ensure correct model is used when determining if a link is set up (#7968)
Do not dispatch events on hold/unhold when the document is uninitialized (#7972)
Ensure theming does not error on
PyComponent(#7975)Prevent stylesheet patch from dispatching during initial load (#7978)
Fix caching issue for ESM render modules (#7990)
Correct initialization behavior of
ReactComponent(#7996)Fix threading race condition when applying consecutive updates to
Paramwidgets (#8003)
Version 1.7.1
This patch release adds a new option to disable FileDropper previews and fixes a regression when updating Column children in Bokeh<3.7. Additionally it includes a number of documentation improvements. Many thanks to our returning contributors @dalthviz, @emmanuel-ferdman, @MarcSkovMadsen, and @hoxbro
Enhancements
Add option to disable FileDropper previews (#7944)
--index-titleshelp string typo fix and don't calltitleon user input (#7935)
Bug fixes
Documentation
Fix image links in Azure documentation (#7938)
Version 1.7.0
This minor release is not as jam-packed as previous minor releases but adds a number of quality of life improvements, bug fixes and features along with version and compatibility updates for a number of JS dependencies. Many thanks to some of our more frequent contributors @dalthviz, @etihwo, our new contributor @emmanuel-ferdman and our maintainers @Hoxbro, @MarcSkovMadsen and @philippjfr.
Features
Add a secondary (right) sidebar to the
FastListTemplate(#7774)Add
Date(Time)Picker.allowInputoption (#7886)Add
Markdown.disable_anchorsoption (#7902)Add
config.cache_pathvariable to configure default location for diskcache (#7903)Support custom cookie path (#7911)
Allow customizing index page titles with
--index-titlesCLI option (#7916)Add
Image.targetoption to configure where to openlink_url(#7924)
Enhancements
Display parameter name in error messages (#7879)
Improve logic for computing Tabulator page size automatically (#7915)
Versions and Compatibility
Bump Ace
CodeEditorversion 1.40.1 and add themes (#7874)Bump pyodide version to 0.27.5 (#7905)
Bump
EChartsversion to 5.6.0 (#7905)Bump
JSONEditorversion to 10.2.0 (#7905)Bump
Perspectiveversion to 3.6.1 (#7919)
Bug fixes
Deduplicate components before compiling (#7887)
Avoid boomeranging of events after
holdis applied (#7892)Handle .ico image base64 mime-type correctly (#7894)
Ensure
FileDropperheight is not limited (#7898)Ensure correct stylesheet cache is used by theme hooks when component is shared between sessions (#7896)
Reset
BaseTemplate._documentscorrectly on autoreload (#7897)Ensure widget CSS is loaded correctly when server path is prefixed (#7900)
Correct display
Tabulatorwith multi index and multi index column (#7907)Ensure stretch and scale sizing_mode does not cause overflow in container (#7928)
Documentation
Document caching of dependencies by combining
cachewithdepends(#7876)Remove deprecated keyword in doc for
DateRangeSliderandDateTimeRangSlider(#7893)Add guidance on troubleshooting OAuth issues (#7921)
Version 1.6.3
This release introduces a number of performance improvements related to rendering of children in layouts and ESM components, a number of bug fixes and a number of documentation improvements. We are pleased to welcome @malemburg as a new contributor and want to thank @s-alexey, @Coderambling, @etihwo and our core maintainer team including @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
Implement smarter
Columnchild rendering #7846Optimize
ReactComponentchild renders #7828Add
indentandsoft_tabsoptions toCodeEditor#7831Allow creating
Param.widgetwithout instantiating object, speeding upWidget.from_param#7867
Bug fixes
Fix handling of React based
AnyWidgetComponenttypes #7820Cache ESM render modules #7827
Check for
Noneinselectfunction forPyComponent#7837Fix for
AttributeErrorinauth.py:CodeChallengeOAuth login #7844Fix error when
old_objectsis empty in_get_objects()#7842Ensure
ReactiveESMrenders elements #7853Ensure ESM shared resources are watched properly #7856
Fix Material design
Tabulatorheader color #7855Ensure current view and selection lookups on
TabulatorhandleNonecase #7858Ensure
Modalevents are targeted to correct model #7860Ensure
ChatFeedhas inherent height #7861Ensure
Markdowncode blocks are always left aligned #7862Gracefully handle
EChartsdelayed rendering #7869
Documentation
List version agnostic wheel URLs in WASM standalone docs #7857
Correct
ClassSelectorkeyword inbuild_todo.md#7819Fix documentation of
--oauth-extra-params#7865Fix minor issues in FastAPI docs #7866
Clarify OAuth redirect uri #7868
Add section in load balancing about Bokeh extensions (#7832)
Version 1.6.2
This release primarily introduces improvements for ESM and React components and refactoring to make it easy to subclass existing components. This is an effort to make it easier to provide alternative implementations for Panel components. Additionally this release includes compatibility for Bokeh 3.7, bug fixes for TextEditor and a variety of other bug fixes. Many thanks to our new contributor @s-alexey, our returning contributors @Coderambling and the core maintainer team including @Hoxbro, @ahuang11 and @philippjfr.
Enhancements
Allow
model.useStateinReactComponents to reference nested parameter values (#7743)Allow providing shared ESM modules (#7757)
Allow defining root node for
ReactComponent(#7787)Improve pretty printing in
HoloViewspane (#7775)Allow serializing joint dict/Parameterized types on
DataModel(#7789)Improve ListLike and NamedListLike to better match Python list behavior (#7794)
Improve rendering of ReactComponent children (#7802)
Allow overriding Param input widgets (#7813)
Performance
Bug fixes
Correctly handle empty source files (#7732)
Add extra guard around
get_ipythoncheck (#7734)Ensure
ReactComponentchildren are sized correctly (#7741)Ensure
ChatStepdoes not toggle from failed to success (#7742)Ensure
Feedand scrollable layout children heights are not fixed (#7747)Declare more
Childparameters on various components (#7749)Do not sync parameters mapped to None on on ESM components (#7750, #7753)
Always include esm.css for ESM components (#7752)
Do not duplicate stylesheets (d133eb9)
Ensure
ChatSteptext does not overflow container (#7770)Refactor
ChatFeedpost hook ensuring it processes correct message (#7722)Ensure hooks are applied to root components with
Fastdesign (#7777)Ensure resource mode is set in notebooks (#7776)
Clear state cookie if OAuth access token expired and can't be refreshed (#7780)
Fix formatting in
TextEditorwidget (#7739)Use Ace version with no require.js dependency (#7781)
Ensure multiple sequential notifications render (#7790)
Style correct column when frozen
Tabulatorcolumn is an index (#7792)Ensure IconButton tooltip timer is cleared on multiple mouseenter events (#7798)
Ensure pre-processors are applied to ESM children (#7799)
Ensure outputs are laid out correctly after initial render of
EditableTemplate(#7816)Fix regressiong related to providing Path to ESM component stylesheets (#7809)
Compatibility
Documentation
Incorrect hover text for max_width and max_height: both said Minimum instead of Maximum (#7729)
Various minor documentation updates (#7719, #7738, #7746, #7755, #7760, #7761, #7763)
Version 1.6.1
This patch release primarily addresses issues running Panel behind a reverse proxy, improves the developer experience of working with custom ESM bundles and adds compatibility for Plotly 6.0. Congratulations to @fabiovincenzi and @pankajp for their first contribution fixing inlining of stylesheets. Many thanks to to our returning contributors @ceball, @Azaya89 and @Coderambling as well as our core developer team including @ahuang11, @Maximlt, @hoxbro and @philippjfr for contributing to this release.
Enhancements
Add
ChatFeed.scroll_tomethod (#7671)Implement watch feature for
panel compilecommand (#7683)Generalize
ReactiveESM.selectso children are automatically detected (#7699)
Bug fixes
Ensure errors in sync periodic callbacks are logged (#7665)
Reset
visible_rangewhenFeed.objectsare updated (#7673)Ensure ESM bundles correctly resolve component implementations (#7684, #7698)
Fix default avatar in send/stream (#7677)
Ensure index redirects are relative to fix index page behind a reverse proxy (#7704)
Ensure root_url is correctly determined during auth (#7680)
Ensure the modal is on top in EditableTemplate (#7710)
Ensure Tabulator selection is recalculated after filtering (#7712)
Fix custom login endpoints (#7714)
Ensure type checkers can correctly infer extension argument types (#7709)
Ensure custom components and extensions respect resource mode in notebooks (#7701, #7716)
Ensure in process events are cleaned up after they are applied (#7717)
Compatibility
Bump pyodide version to 0.27.2 and PyScript version to 2025.2.1 (#7718)
Docs
Add links to other HoloViz libraries to the sidebar (#7674)
Version 1.6.0
This release adds a number of features including a standalone Modal component, the ability to infer widget parameters from values, and the ability to easily edit a ChatMessage. Additionally it includes a number of enhancements for styling, particularly in dark themes, other enhancements for chat components and a large number of bug fixes. Many thanks for our returning contributor @kdheepak, our new contributors @pgierz, @jonatantreijs and @etihwo, and of course the whole maintainer team including @ahuang11, @MarcSkovMadsen @hoxbro, @maximlt and @philippjfr.
Features
Add PAM authentication support (#6861)
Add
Widget.from_valuesmethod (#7033)Add a standalone
Modallayout (#7083)Introduces
ChatMessageandChatFeededit functionality (#7559)
Enhancements
Allow
ChatFeed.callback_exceptionto accept a callable and 'traceback' (alias for verbose) (#7558)Fix Accordion active_header_background in dark theme (#7576)
Increase default max character limit on
ChatAreaInput(#7562)Fix chat message alignment issues (#7563)
Make
Markdownpane line breaking behavior configurable (#7582)Improve styling of chat components in dark theme (#7601, #7602)
Automatically scroll when streaming to
ChatFeedandChatStep(#7608)Add support for remote filesystems on
FileSelector(#7618)Add support for
FigureWidgetevents onPlotlypane (#7654, #7662)
Bug fixes
Fix Azure Oauth issues (#7587)
Correctly display file not found paths in
panel convert(#7589)Fix
Tabulator.patchwhen table is filtered (#7621)Ensure
esbuildcan be detected on windows duringpanel compile(#7625)Fix various issues styling
Tabulatorwhen it is wider than the viewport (#7626)Fix resource loading when serving Panel app on nested FastAPI endpoint (#7627)
Fix
panel oauth-secretcommand (#7628)Ensure fonts are applied to
NotificationArea(#7633)Handle session context where session is not defined (#7634)
Ensure
CompositeWidgetcan be populated in callback (#7636)Correctly identify skimage and PIL packages when converting to pyodide (#7637)
Ensure we use CDN resources in pyodide (#7638)
Consistently apply sizing_mode to
FileSelectorcomponents (#7640)Ensure tasks are cancelled correctly (#7641)
Ensure
NotificationAreastylesheet loads in panel-preview (#7643)Ensure
NestedSelectupdates whenoptionsare changed (#7649)Ensure
ButtonIcondisplays an icon during click (#7650)
Compatibility and Updates
Update
panel convertto latest versions of pyodide and pyscript (#7584)Bump plotly.js version to 2.35.3 (#7657)
Bump tabulator.js version to 6.3.1 (#7656)
Documentation
Ensure Open in JupyterLite links work (#7622)
Add admonitions for outdated guides and minor corrections (#7635)
Add form tutorial (#7568)
Fix and reorganize API docs (#7659)
Version 1.5.5
This release fixes a regression causing .node_modules to be bundled into our released wheel and introduces a number of bug fixes and enhancements. Many thanks to @mayonnaisecolouredbenz7, @pmeier, @Italirz, @Coderambling and our maintainer team @MarcSkovMadsen, @hoxbro, @ahuang11, @thuydotm, @maximlt and @philippjfr.
Enhancements
Add ability to
scroll_toa particular object onColumn(#7206)Add pointer when hovering on
Markdowncopy button (#7490)Allow streaming to
ChatStep(#7520)Improve
ChatMessagerepr (#7521)Add
ChatInterfacebutton tooltips (#7552)
Bug fixes
Ensure Notifications are cleaned up correctly (#4964)
Ensure
FileDownloadlabel text updates correctly (#7489)Fix
Tabulatoraggregation behavior (#7450)Fix typing for
.servablemethod (#7530)Ensure
NestedSelectrespectsdisabledparameter (#7533)Ensure errors in hooks aren't masked by fallback to different signature (#7502)
Ensure Notifications are only shown once if scheduled onload (#7504)
Documentation
Maintenance
Enable strict type checking (#7497)
Ensure node_modules aren't bundled into package (#7526)
Internal cleanup of compatibility code for older param versions (#7527)
Compatibility
Compatibility for websockets 14 when running on FastAPI server (#7491)
Compatibility with Textual 0.86 (#7501)
Compatibility with Altair 5.5.0 (#7523)
Bump Vizzu version to 0.15 (#7485)
Version 1.5.4
This release primarily focuses on improving the ESM components including fixes for serialization of parameter values, improvements for compiling bundles, and building custom layouts. Additionally this release includes the new DatetimeSlider, adds a copy button to codeblocks in Markdown panes, improves responsive sizing for Plotly and starts adding better support for Polars. Many thanks and a warm welcome to our new contributor @MP-MaximilianLattka as well as our maintainer team, including @Hoxbro, @thuydotm, @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements
Add
DatetimeSliderwidget (#7374)Improve Jupyter preview error handling (#7434)
Add copy button to
Markdowncodeblocks (#7451)Various improvements for writing ESM components (#7462)
Log authorization callback errors (#7463)
Support polars in
pn.cache(#7472)Improve and document
holdutility (#7474)Improve how
panel compilecollects bundles (#7477)
Bug fixes
Fix issues detecting changed property values during serialization (#7432)
Ensure ESM compilation correctly detects file extension (#7446)
Ensure parameter overrides are applied to ESM components (#7452)
Ensure component
Childrenparameter correctly resolves when multiple types are defined (#7454)Fix issues using Jupyter Preview with notifications enabled (#7466)
Ensure
HTML/Markdownstreaming does not freeze during rapid updates (#7480)Ensure
Plotlysizes correctly on initial render (#7483)
Version 1.5.3
This release fixes a number of smaller regressions related to Tabulator row_content, ensures --dev/--autoreload picks up on external modules correctly and resolves OAuth guest endpoints correctly. Additionally it introduces some enhancements and bug fixes for custom components, such as adding support for loading custom components ESM Javascript bundles from the inbuilt endpoint ensuring that the bundle can be cached by the browser. Many thanks and welcome to our new contributors @chryshumble and @haojungc, our returning contributors @TheoMathurin, @aktech and @Coderambling and the core maintainer team @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
Sync dark mode on
browser_infoobject (#7382)Allow loading custom component ESM bundles from URL (#7410, #7412)
Bug fixes
Address issues with
Tabulatorembed_content and optimize row expansion (#7364)Prevent pipeline network plot from linking with other plots (#7372)
Various fixes for custom component compilation (#7381)
Fix OAuth guest endpoint (#7385)
Fix
ReactiveESM._importmaptyping (#7392)Ensure that autoreload records modules to watch before startup (#7399)
Prevent
Tabulatorfrom overlapping whenmax_heightis set (#7403)Do not mutate layout
Childreninplace (#7417)Set
Tabulatornull formatter to empty string (#7421)Ensure Tabulator table content does not overflow (#7425)
Ensure
cachehandles hashing of classes and instances correctly (#7478)
Compatibility
Upgraded
Tabulatorversion to 6.3 (#7419)
Documentation
Update components_overview.md with text fixes (#7335)
Corrected styles in doc (#7371)
Fix typo in
panel.io.serverdocstring (#7405)
Version 1.5.2
Date: 2024-10-03
This release is a small patch release primarily addressing a regression handling selections on multi-indexed data on the Tabulator widget along with a number of documentation improvements. Many thanks to @jrycw along with @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
Bug fixes
Fix regression handling selection on multi-indexed
Tabulatordata (#7336)Fix Fast template theme toggle color (#7341)
Documentation
Fix typo for FastListTemplate reference example (#7339)
Fix custom component docstrings (#7342)
Improve plotly style guide (#7346)
Ensure sidebar toggle patch is loaded correctly (#7349)
Fix and update WebLLM example (#7351)
Correctly document step unit on
DateSlider(#7353)
Version 1.5.1
Date: 2024-09-27
This release primarily focuses on a number of tweaks and enhancements for the documentation and also resolves a number of bugs related to Tabulator rendering and the new FastAPI integration. As always, many thanks to our contributors including our new contributors @dennisjlee and @alexcjohnson, our returning contributors @thuydotm and @jbednar and the core maintainer team @hoxbro, @maximlt, @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements
Bug fixes
Fix langchain import in
panel.chat.langchain(#7297)Ensure Tabulator is consistently redrawn after render and resize (#7305)
Filter out empty plotly_selected events (#7312)
Improve parameter validation on
Timepicker(#7308)Ensure
Tabulator.selectionconsistency whenpagination='local'(#7304)Correctly handle ipv6 localhost URI in
Location(#7316)Ensure resource URLs are handled correctly in all server implementations (#7318)
Ensure
Plotlydatetime are correctly converted from timestamp to date string (#7319)
Regressions
Only postpone
--setupscript until after server startup if--num-procsis greater than 1 (#7289)
Compatibility
Support for Bokeh 3.6.x releases (#7322)
Documentation
Fix and improve JupyterLite pyodide distribution (#7286)
Document how to apply gradient styling o
Tabulatorcells (#7291)Clarified wording in best practices docs (#7290)
Minor tweaks for the
FileDropper(#7307)Ensure docs consistently recommend
--devover--autoreload(#7285)Tweaks for Tabulator docs (#7315)
Improve fastapi docs (#7317)
Add note about Tabulator font-size (#7321)
Tweak best practices (#7301)
Fix typo in JPG component docs (#7323)
Version 1.5.0
Date: 2024-09-13
This release, while technically a minor release hugely expands the scope of what is possible in Panel. In particular the introduction of the new panel.custom module makes it trivially easy to create new JS and React based components using modern tooling, a first-class developer experience and support for compilation and bundling. We are incredibly excited to see which new components you build using this approach. This release also includes native integration with FastAPI, such that you can now run Panel apps natively on an existing FastAPI server. We also introduce a number of new components, improved the developer experience, and squashed a huge number of bugs, particularly for the Tabulator component.
We really appreciate all the work that went into this release from 21 separate contributors. In particular we would like to welcome our new contributors @twobitunicorn, @justinwiley, @dwr-psandhu, @jordansamuels, @gandhis1, @jeffrey-hicks, @kdheepak, @sjdemartini, @alfredocarella and @pmeier. Next we want to recognize our returning contributors @cdeil, @Coderambling, @jrycw and @TBym, and finally the dedicated crew of core contributors which includes @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt, @mattpap, @jbednar and @philippjfr.
Features
Allow building custom ESM based
JSComponentandReactComponent(#5593)Add
Placeholderpane (#6790)Add
FileDropperwidget (#6826)Add
ChatStepcomponent to show/hide intermediate steps (#6617)Add
TimePickerwidget (#7013)Add
PyComponentbaseclass (#7051)Add native support for running Panel on FastAPI server (#7205)
Enhancements
Allow callbacks after append and stream (#6805)
Enable directory uploads with
FileInput(#6808)Make
autoreloadrobust to syntax errors and empty apps (#7028)Add support for automatically determining optimal
Tabulator.page_size(#6978)Display value for player (#7060)
Optimize rendering and scrolling behavior of
Feed(#7101)Implement support for multi-index columns in
Tabulator(#7108)Add placeholder while loading to
ChatFeed(#7042)Allow streaming chunks to
HTMLandMarkdownpanes (#7125)Show
Playerinterval value on click (#7064)Expose
Playeroptions to scale and hide buttons (#7065)Add
on_keyupandvalue_inputforCodeEditor(#6919)Detect WebGL support on
BrowserInfo(#6931)Add nested editor to
Tabulator(#7251)Support anchor links in
HTMLandMarkdownpanes (#7258, #7263)
Bug fixes
Ensure
Gaugeis responsively sized (#7034)Ensure
Tabulatorsortersare correctly synced (#7036)Ensure
Tabulatorselectionis consistent across paginated, sorted and filtered states (#7058)Do not propagate clicks on input elements in
Cardheader (#7057)Ensure
Tabulatorrange selection applies to current view (#7063)Ensure
Tabulator.selectionis updated when indexes change (#7066)Ensure
Tabulatorcan be updated with None value (#7067)Fix issues with PYTHONPATH in Jupyter Preview (#7059)
Ensure
Tabulatorstyling is correctly applied on multi-index (#7075)Fix various scrolling related Tabulator issues (#7076)
Ensure
Tabulatordata is updated after filters are changed (#7074)Allow controlling
DataFramepane header and cell alignment (#7082)Highlight active page in
Tabulatorusing Fast Design (#7085)Ensure follow behavior works when streaming to paginated
Tabulator(#7084)Avoid events boomeranging from frontend (#7093)
Correctly map
Tabulatorexpanded indexes when paginated, filtered and sorted (#7103)Ensure custom
HoloViewsbackends do not error out (#7114)Ensure events are always dispatched sequentially (#7128)
Ensure
'multiselect'Tabulator.header_filteruses 'in' filter function (#7111)Ensure no content warning is not displayed when template is added (#7164)
Make it easy to prompt user for input in
ChatFeed(#7148)Fix
LaTeXpane MathJax rendering (#7188)Ensure OAuth expiry is numeric and can be compared (#7191)
Correctly detect max depth of
NestedSelectif level is empty (#7194)Make
--setup/--autoreload/--warmwork with--num-procs(#6913)Ensure error rendering application does not crash server (#7223)
Refactor
state.notificationsto fix pyodide (#7235)Handle setting None value on
DateRangePicker(#7240)Add header_tooltips parameter to
Tabulator(#7241)Fix issue using
Tabulator.header_filterwith recent Pandas versions (#7242)Fix setting of
Dialbackground (#7261)Fix issues when loading multiple times in a Jupyter(Lab) session (#7269)
Compatibility and Updates
Update to Bokeh 3.5.x
Update
Tabulatorto 6.2.1 (#6840)Update to latest Pyscript (2024.08.01) and Pyodide (0.26.2) (#7016)
Add compatibility for latest
Textual(#7130)
Documentation
Update Tabulator.ipynb to show correct version number of
Tabulator(#7053)Update jupyterlite version (#7129)
Describe usage of pyscript editor (#7017)
Add pycafe deployment guide (#7183)
Add WebLLM example to gallery (#7265)
Deprecation and API Warnings
PasswordInputandTextAreaInputno longer inherit directly fromTextInput(#6593)Remove deprecated
panel.depends.param_value_if_widgetfunction (#7202)
Version 1.4.5
Date: 2024-07-25
This release addresses includes a wide range of bug fixes and some minor enhancements primarily aimed at performance. Many thanks to @CodeRambling as a returning contributor, and the core developer team including @Hoxbro, @MarcSkovMadsen, @maximlt and @philippjfr for contributing to this release.
Enhancements
Ensure
Designis applied globally when using global templates (#6992)Do not re-render all children when expanding Tabulator row (#7008)
Allow providing
DataFrameas part of vega(-lite) spec (#6979)
Bug fixes
Clear selection if value change from pagination=remote (#6008, #6968)
Ensure user cookie can be unencoded (#6937)
Do not trigger ScrollButton event unless clicked (#6938)
Do not error on autoreload shutdown (#6940)
Ensure hooks such as plot linking are applied across roots in a template (#6975)
Ensure
Feedmaintains scroll position (#6984)Ensure correct Document is set after liveness session cleanup (#6988)
Fix issue detecting PyScript worker (#6998)
Fix
FileDownloadicon alignment (#6981)Ensure redraw does not error out if
Tabulatoris undefined (#6930)Guard auth against user being removed (#6908)
Documentation
Add crossfiltering dashboard tutorial (#6630)
Add server video stream tutorial (#6727)
Improve
Parampane docstring (#6989)Fix streamz reference notebook (#6980)
Document that
Imagepane is a wrapper around PNG, JPEG, PDF etc. panes (#7004)
Version 1.4.4
Date: 2024-05-31
This release primarily addresses a critical regression in notebook comm channel handling introduced in 1.4.3 and includes a few minor fixes for Tabulator and documentation related issues. Many thanks to @justinwiley for his first contribution to Panel, @twobitunicorn as a returning contributor and the core contributors @maximlt and @philippjfr for their continued work.
Bug fixes
Fix notebook CommManager extraction of buffers (#6880)
Fix issue when editing timezone-aware datetime column
Tabulator(#6879)Ensure
Tabulatordoes not rebuild children when usingembed_contentwithrow_content(#6881)Ensure
ParamRef,ParamFunctionandParamMethodresolve synchronous generators asynchronously (#6885)Ensure periodic callback cleanup does not error on session warmup (#6886)
Documentation
Update OAuth documentation to correctly reference auth_code provider (#6875)
Fix
CheckBoxGroupvaluetype annotation in reference docs (#6877)
Version 1.4.3
Date: 2024-05-23
This patch release is likely the last in the 1.4.x series. The most important fixes in this release are fixes to ensure keyboard shortcuts do not get triggered inside Panel components for for recent versions of JupyterLab, fixes for OAuth token refreshes, and various documentation fixes. The release also includes a small number of enhancements, including improved UX for the FileSelector. Many thanks to the many contributors to this release including @jrycw, @Coderambling, @cdeil, @twobitunicorn, and the maintainers @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt and @philippjfr.
Enhancements
Add CSS on mouse interaction with
Card(#6636)Make
ChatMessage.reaction_iconsreactive (#6807)Allow external library to define additional socket handler (#6820)
Allow navigating
FileSelectorwith double click (#6843)
Bug fixes
Ensure reference is resolved when passing options to
from_param(#6762)Ensure token refresh is always scheduled (#6802)
Fix small memory leak when caching
Designmodifiers (#4978)Ensure refreshed tokens can be accessed across processes (#6817)
Ensure binary buffers are correctly extracted in notebook
CommManager(#6818)Make
Tabulatorresize handling more robust (#6821)Fix links in
panel convertindex (#6828)Suppress keyboard shortcuts in notebook output (#6825)
Ensure we don't error out when
FastDesignProvideris undefined (#6832)Ensure model changes are applied while session is starting (#6835)
Documentation
Refactor the
hvplot.interactivetutorial utilizingpn.rx(#6700)Update styling after upgrade to latest pydata-sphinx-theme (#6823)
Fix bug in Reset Jupyterlite script (#6834)
Fix gallery deployment URL (#6831)
Add redirects for old documentation pages (#6833)
Remove Google Analytics (#6836)
Various documentation fixes (#6829)
Fix link in gallery index (#6858)
Version 1.4.2
Date: 2024-04-23
This micro-release fixes a number of smaller regressions and bugs including parsing of notebooks. Many thanks to our new contributor @bkreider, our returning contributors, @jrycw and @ea42gh, and our dedicated team of maintainers including @ahuang11, @MarcSkovMadsen and @philippjfr.
Enhancements
Allow toggling CTRL+Enter vs Enter to send
ChatAreaInput(#6592)Allow adding JS callbacks in
ChatInterface.button_properties(#6706)
Bug fixes
Fix regression in parsing notebooks served as apps (#6736)
Do not include placeholder in
ChatInterface.serializeand properly replace placeholder for streams (#6734)Remove
Perspective.toggle_configwhich was erroneously reintroduced in 1.4.1 (#6721)Fix dynamically setting
ChatMessagefooter_objects/header_objects(#6705)Allow
Location.syncof DataFrame parameters (#6745)Fix and improve Plotly event handling (#6753)
Fix issue when converting templated apps to Pyodide/PyScript (#6756)
Fix styling of loading indicator in Fast design (#6761)
Ensure
VTKnan, above and below colors are serialized (#6763)Fix issues with
Perspectivetheme and persist config when switching plugins (#6764)Do not restore unmodified parameters in
config.settriggering undesirable side-effects ([#6772 (#6771)Make autoreload module cleanup more robust (#6771)
Ensure that cache
.clear()clears the correct function (#6771)
Documentation
Various fixes and cleanup of documentation (#6704, #6707, #6710, #6755,)
Document how display full html document in iframe (#6740)
Version 1.4.1
Date: 2024-04-05
This micro-release fixes a number of regressions and other bugs introduced in recent releases and further improves the dashboard builder UI. Additionally it includes some tweaks and polish for the new tutorial material. Many thanks to our new contributor @jrycw, our returning contributors @cdeil and @TheoMathurin and our maintainers @ahuang11, @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
Enhancements
Allow rendering raw
IPython.displayoutput in dashboard builder (#6657)Improve snapping behavior and add undo functionality in dashboard builder UI (#6687))
Bug Fixes
Fix layout persistence issues in dashboard builder (#6602)
Ensure
Perspectiveloads in notebooks and docs (#6626)Allow full reset of dashboard builder layout (#6625)
Fix issues with
VTKcolormap serialization (#6651)Allow
TabulatorHTMLTemplateFormatterto reference multiple columns (#6663)Fix loading spinner in converted app without template (#6665)
Avoid unnecessary rescroll on Column (#6666)
Fix dynamically updating description tooltips (#6676)
Ensure Perspective is fully loaded before attempting render (#6689))
Ensure busy indicators are always reset (#6698)
Styling
Only apply styling to Bootstrap buttons (#6610)
Change into a slicker
Cardbutton icon (#6638)Fix card header margins (#6639)
Ensure
Perspectiverenders correctly in all browsers (#6664)
Documentation
Improve layout builder docs (#6601)
Ensure all docs pages are indexed (#6615)
Document
Flexbox.gapparameter (#6616)Improve custom template documentation (#6618)
Improve Layout Builder Docs (#6619)
Improve PyCharm and Colab notebook documentation (#6599)
Update gallery endpoint in docs (#6645)
Various smaller documentation fixes and improvements (#6682, #6690)
Version 1.4.0
Date: 2024-03-25
This minor release packs a punch both in terms of features, the number of enhancements and bug fixes and perhaps most importantly the addition of a set of tutorials that aim to get novices up-to-speed. The main new feature is a so called EditableTemplate which allows arranging dashboards using a drag-and-drop interface and also has strong integration with JupyterLab previews to go from a notebook to a deployed app without having to worry about writing layout code. Next, this release includes a number of need widgets (NestedSelect, DateRangePicker, ButtonIcon), layouts (Feed) and panes (Textual, WebP), and overhauls the autoreload feature with faster and more robust support for reloading entire modules. Lastly this release, along with Param 2.1.0, continues to build on the new reactive expression API making it easy to write reactive expressions and pipelines including support for streaming data with generators. We really appreciate all the work that went into this release and especially want to call out @MarcSkovMadsen's effort in putting together the new tutorial materials. There's more work to do but it's a huge step forward and we're excited to hear your feedback. We want to extend a special thanks to our amazing new crop of new contributors including @atisor73, @Osuwaidi, @suryako, @Davide-sd, @doraaki, @mayonnaisecolouredbenz7, @CTPassion, @J01024, @l3ender and @Coderambling. Next we want to recognize our returning contributors @vaniisgh, @cdeil, @limx0m, and @TheoMaturin, and the finally the dedicated crew of core contributors which include @maximelt, @Hoxbro, @MarcSkovMadsen, @ahuang11, @mattpap and @philippjfr.
Features
Add
EditableTemplateto support dashboard builder UI in Jupyter (#5802)Add
ChatAreaInputas default text input widget forChatInterface(#6379)Add Panel tutorials (#5525, #6208, #6212, #6388, #6425, #6466, #6491)
Add
DateRangePickerwidget (#6027)Add
Feedlayout and use it as layout forChatFeed(#6031, #6296)Add
WebPpane (#6035)Add
ButtonIcon(#6138)Add
Textualpane (#6181)
Enhancements
Improve
--autoreloadby using watchfiles and selectively reloading packages (#5894, #6459) Load loading indicator from file instead of inlining (#6112)Allow providing additional stylesheets in
card_params(#6242)Add
scrolloptions to permanently toggle on layouts (#6266)Allow choosing position of frozen columns on
Tabulator(#6309)Add help message on
ChatFeed(#6311)Ensure CSS can be applied to every aspect of
ChatMessage(#6346)Add HoloViz logos as
ChatMessageavatars (#6348)Add
gapparameter toFlexBox(#6354)Set default
stepofDatetimeRangeSliderto 1 minute (#6373)Add support for passing objects reference to
FlexBox(#6387)Allow editable sliders to be embedded (#6391)
Add
messageintocss_classestoChatMessagemarkup (#6407)Allow appending objects to the
ChatMessageheader & footer (#6410)Add ability to declare icon label (#6411)
Add title and settings and fix datetime to
Perspective(#6482)Warn user if loading extension in VSCode or Colab without
jupyter_bokeh(#6485)Throttle updates to Boolean indicators (#6481)
Add
ParamRefbaseclass forParamFunctionandParamMethod(#6392)Add ability to Skip
Param<Ref|Function|Method>updates (#6396)Add
Param<Ref|Method|Function>andReactiveExprto panes module (#6432)Set up
param.rxdisplay accessor on import (#6470)Allow using Carto tiles in
DeckGL(#6531)Improve
VTKJSbinary serialization (#6559)Ensure component CSS is pre-loaded if possible, avoiding flicker on load (#6563)
Styling
Ensure navbar toggle icon is correct color in
BootstrapTemplate(#6111)Change
loadingbackground filters to work better in dark themes (#6112)Improve styling of
FileInputwidget (#6479)Improve Jupyter Preview error handling and error template (#6496)
Add scale animation to icons on hover and click (#6376)
Redesign index pages (#6497)
Improve
Tabulatoreditor text color inFastdesign (#6512)Ensure
BootstrapTemplatehamburger icon is white (#6562)
Compatibility & Version Updates
Bump
Perspectiveversion to 2.9.0 (#5722)Upgrade to Bokeh 3.4.x (#6072)
Upgrade
Vizzuto 0.9.3 (#6476)Bump
JSONEditorversion to 10.0.1 (#6477)Upgrade to PyScript Next and Pyodide 0.25.0 in
panel convert(#6490)Bump vtk.js version to 30.1.0 (#6559)
Bug fixes
Add resize handler for
FloatPanel(#6201)Fix serving of global template in notebook (#6210)
Ensure
Tabulatorrenders in collapsedCard(#6223)Fix issues with
VTK,VTKVolumeandVTKJSdue to webgpu renderer (#6244)Ensure
HTMLand other markup panes can be emptied (#6303)Ensure collapsed
Carddoes not cause stretching (#6305)Ensure notebook preview always uses server resources (#6317)
Remove animation from loading spinner without spin (#6324)
Ensure model is only added/removed from Document once (#6342)
Ensure
loading_indicatorresets when configured with context manager (#6343)Fix modal overflow and resizing issues (#6355)
Ensure that ripple matches notification size (#6360)
Fully re-render
CodeEditoron render calls ensuring it displays correctly (#6361)Ensure
FileDownloadbutton has correct height (#6362)Ensure
HTMLmodel is redrawn ifstylesheetsis emptied (#6365)Allow providing custom template (#6383)
Ensure
Debuggerrenders without error (#6423)Ensure pending writes are dispatched in order and only from correct thread (#6443)
Ensure layout reuses model if available (#6446)
Improved exception handler in unlocked message dispatch (#6447)
Fix display of interactive
Matplotlib(#6450)Ensure
Plotlypane renders and hides correctly inCard(#6468)Fix issues rendering widget components with
Fastdesign (#6474)Fix binary serialization from JS -> Pyodide (#6490)
Avoid overeager garbage collection (#6518)
Fix floating point error in
IntRangeSlider(#6516)Load JS modules from relative path (#6526)
Ensure no events are dispatched before the websocket is open (#6528)
Ensure
Markdownparsing does not choke on partial links (#6535)Fixes to ensure larger
PDFs can be rendered (#6538)Ensure
IPywidgetcomms are only opened once (#6542)Fixes for message handling in Jupyter Preview context (#6547)
Fix unnecessary loading of
ReactiveHTMLresources (#6552)Ensure
Template.raw_csshas higher precedence than default template CSS (#6554)Avoid asyncio event loop startup issues in some contexts (#6555)
Ensure column subset is retained on
Tabulator.style(#6560)Ensure bokeh mathjax bundle when mathjax extension is loaded in notebook (#6564)
Chat Components
Ensure
ChatInterfacerespect supplied default user (#6290)Ensure
ChatMessageinternals correctly respectDesign(#6304)Fix
ChatInterfacestopbutton for synchronous functions (#6312)Include
stylesheetsdownstream, including layouts in ChatMessage (#6405)Ensure
ChatMessageheaderupdates dynamically (#6441)Ensure streaming
ChatMessageonChatInterfaceand mentionserialize(#6452)Ensure ChatInterface supports chat input without
value_inputparameter (#6505)Ensure word breaks to avoid overflow in
ChatMessage(#6187, #6509)Ensure nested disabled state stays disabled on
ChatFeed(#6507)Allow streaming
Noneas the initialChatMessagevalue (#6522)
Documentation
Add Roadmap to documentation (#5443)
Improve
HoloViewsreference guide (#6065)Improve the user experience for resetting Jupyterlite (#6198)
Add section headers to Chat reference documentation (#6370)
Migrate gallery to new Anaconda DSP instance (#6413)
Improve home page (#6422)
Adding AWS deployment to documentation (#6434)
Update Streamlit comparison (#6467)
Add logging how-to guide (#6511)
Document pygments dependency for code syntax highlighting (#6519)
Add how-to guide on configuring PyCharm (#6525)
Deprecations & Removals
Remove
Acealias forCodeEditorRemove
ChatBoxwhich has been replaced bypanel.chatcomponentsRemove
HTML.stylewhich is now replaced withHTML.stylesRemove
Trend.titlewhich is now replaced byTrend.nameRemove
Viewable.appwhich is now replaced withpn.io.notebook.show_serverRemove
Viewable.backgroundwhich is now replaced withViewable(styles={'background': ...})Remove
Viewable.pprintwhich is now replaced withprint(Viewable(...))
Version 1.3.8
Date: 2024-01-24
This patch release fixes an important regression in the 1.3.6 release that resulted in global state to be incorrectly resolved in certain cases. Many thanks to our new contributor @fohrloop and our maintainers @ahuang11, @Hoxbro and @philippjfr for contributing to this release.
Bug fixes
Ensure
ReactiveHTMLcorrectly resetsEventparameters (#6247)Fix
ChatFeed/ChatInterfacetests and async generator placeholders (#6245)Fix logic when looking up
pn.state.curdoc(#6254)Handle margin=None in layout sizing mode computation (#6267)
Compatibility
Updates for compatibility with pandas 2.2 (#6259)
Documentation
Fix typos and add a cross-reference in docs (User Profiling) (#6263)
Improve documentation on
TextAreaInput(#6264)
Version 1.3.7
Date: 2024-01-19
This patch release focuses on a number of fixes and minor enhancements for the chat components and various other smaller improvements and fixes including docs improvements. In particular we want to highlight the new Ploomber deployment guide contributed by @neelash23. Next we want to welcome @jz314, @fayssalelmofatiche and @neelasha23 as new contributors and welcome back @SultanOrazbayev as a returning contributor. Lastly we want to thank the core contributor team, including @MarcSkovMadsen, @ahuang11, @maximlt, @Hoxbro and @philippjfr for their continued efforts maintaining Panel.
Enhancements
Add
filter_bytoChatMessage.serialize(#6090)Support using an SVG for
ToggleIcon(#6127)Add resizable param to
TextAreaInput(#6126)Improve date and datetime picker functionality (#6152)
Add activity indicator to
ChatMessage(#6153)Lazily import bleach HTML sanitizer (#6179)
Bug fixes
Fix generator placeholder and optimize updates in Chat components (#6105)
Fix issue with callback future handling on Chat components (#6120)
Fix bug in Chat interfaces related to
pn.state.browser_info(#6122)Allow instantiating empty
Matplotlibpane (#6128)Ensure icon displays inline with text on
FileDownload(#6133)Fix styling of links in
Tabulatorfast theme (#6146)Fix passing of
card_paramsonChatFeed(#6154)Handle
Tabulator.title_formatterif is typedict(#6166)Fix
per_sessioncaching (#6169)Correctly reshape nd-arrays in
Plotlypane (#6174)Handle NaT values on
Perspectivepane (#6176)Do not rerender output if
ReplacementPaneobject identity is unchanged (#6183)Tabulator: fix valuesLookup set up for older list-like editors (#6192)
Fix pyodide loading message styling issues (#6194)
More complete patch for the
TextEditorto support being rendered in the Shadow DOM (#6222)Add guard to
Tabulatorensuring that it does not error when it is not rendered ([#6223](https://github.com/holoviz/panel/pull/6223))Fix race conditions when instantiating Comm in Jupyter causing notifications to break (#6229, #6234)
Handle duplicate attempts at refreshing auth tokens (#6233)
Compatibility & Security
Upgrade Plotly.js to 2.25.3 to address CVE-2023-46308 (#6230)
Documentation
Add
DesignandThemeexplanation documentation (#4741)Fix pyodide execution in documentation
Use GoatCounter for website analytics (#6117)
Add Dask How to guide (#4234)
Fix
Materialtemplate notebook .show() call (#6137)Add missing item in docstring (#6167)
Ploomber Cloud deployment documentation (#6182)
Correct duplicate wording (#6188)
Update JupyterLite Altair example to latest API (#6226)
Version 1.3.6
Date: 2023-12-20
This patch release addresses a major regression in server performance introduced in 1.3.5 along with some additional minor fixes. We want to welcome @nenb as a new contributor and want to thank the maintainers @ahuang11, @maximlt and @philippjfr for their contributions to this release.
Enhancements
Add explicit size option to ToggleIcon (#6092)
Bug fixes
Fix execution of OAuth of callback to refresh
access_token(#6084)Fix
ChatReactionIconsalignment and trigger reactions correctly (#6086)Change
Columnscroll_positiondefault value fromNoneto0(#6082)Fix issue with accumulating callbacks on server (#6091)
Ensure ReactiveExpr renders in pyodide (#6097)
Ensure TooltipIcon description can be updated (#6099)
Fix IPyWidgets rendering in BootstrapTemplate (#6100)
Fix padding and alignment of FileDownload (#6101)
Version 1.3.5
Date: 2023-12-18
This micro-release fixes a large number of issues, applies some performance optimizations and resolves some regressions introduced in previous micro-releases. The main regressions that were addressed include rendering of ChatMessage reaction icons, the ability to obtain an OAuth access_token if it is not a valid JWT token, and issues with async callbacks. We are very pleased to welcome new contributors @mitulb, @fazledyn-or, @benbarn313 and @vaniisgh and want to thank them for their contributions. We also want to thank @cdeil for continuing to contribute and the maintainer team including @MarcSkovMadsen, @Hoxbro, @maximlt, @ahuang11, @droumis and @philippjfr for their continued efforts.
Enhancements
Add support for timestamp timezones for
ChatMessage(#5961)Replace whitelist blacklist with allowlist denylist (#5975)
Allow stopping respond callbacks midway on
ChatInterface(#5962)Add support for
Image.caption(#6003)Improvements for
Fasttemplate styling (#6023)Replace
Playerwidget unicode icons with SVG for more consistency (#6030)Elaborate on
ChatInterfacecallback exception summary (#6046)Add
ToggleIconwidget (#6034)Use minified
Tabulator.js(#6060)Support rendering
GeoDataFrameandGeoSeriesinDataFramepane (#6061)Optimize rendering of
ChatMessage(#6069)Apply smaller optimizations for
ViewableandChatMessage(#6074)Add bottom padding to
MaterialTemplate(#6075)Update mapbox-gl version for
DeckGLpane (#6077)
Bug fixes
Remove duplicate property definition of
VizzuChart.config(#5947)Remove stray print in
Tabulatorstyler handling (#5944)Fix bug when clearing
pn.cachebefore anything has been cached (#5981)Fix
obj.save()when threading is enabled (#5993)Fix
Matplotlibresponsiveness and improve reference notebook (#5973)Gracefully handle non-decodable
access_token(#5994)Ensure
onloadcallbacks scheduled during or after load are still executed (#6005)Don't attempt to set Tabulator
text_alignon Bokeh formatters that don't support it (#6010)Correctly set error page to be rendered on auth failure (#6014)
Fix
ChatInterfacepost callback for default (#5998)Ensure matplotlib backend is set correctly in pyodide worker (#6029)
Synchronously create Document patch message to avoid race conditions (#6028)
Do not inline CSS if it can be loaded from CDN (#6039)
Fix
ChatMessagereactions icon rendering (#6034)Fix issues with
ChatInterfacestop ensuring send button is re-enabled and placeholder removed (#6033)Ensure that
Designdoes not override properties onHoloViewspane (#6051)Ensure async callbacks correctly dispatch events when Websocket is locked (#6052)
Fix
state.add_periodic_callbackwhen callback is async (#6053)Do no update objects inplace unless explicitly requested fixing issues with non-updating components (#6055)
Update sizing of Panel models dynamically (#6054)
Make
panel.chat.langchainimport lazy improving import time (#6056)Change prominence of
TooltipIcon(#6057)
Documentation
Improve reactive expression notebook (#5960)
Document requirement to install
pyviz_commsin same env as Jupyter (#5980)Update documentation's pyodide version to use version from panel.io.convert (#5996)
Version 1.3.4
Date: 2023-11-29
This micro-release primarily addresses two important regressions related to the Tabulator text_align option and OAuth failing if the id_token does not contain the required user information. We are very excited to welcome @TBym to the growing list of contributors and thank the core maintainers @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
Allow passing partial function to tabulator filter (#5912)
Allow defining custom callbacks for
ChatInterfacebuttons (#5839)
Bug fixes
Fix regression when setting
text_alignandHTMLTemplateFormatteronTabulator(#5922)Ensure notifications are correctly destroyed (#5924)
Fix header overflow issues in
FastGridTemplate(#5935)Ensure
Audiomodel respects sizing (#5936)Persist Tabulator selection across pages when
pagination='remote'for all selection modes (#5929)Ensure
Tabulatorstyler subset logic is not lost (#5938)Fix regression in OAuth when
id_tokendoes not contain user key (#5939)Ensure Vega/Altair plot with responsive width/height respects fixed width/height value when set (#5940)
Ensure
BrowserInfois imported by default (#5942)
Documentation
Restore plot styling guides in how-to guide (#5919)
Document support for emojis on Button labels (#5926)
Update and improve
SVGpane reference docs (#5934)
Version 1.3.2
Date: 2023-11-22
This micro-release focuses on a number of performance improvements, speeding up the initial rendering of simple apps by 2x in many cases. In addition it includes a number of smaller enhancements for various widgets, better support for async and threading and a number of bug fixes related to authentication, the Tabulator widget and a few other items. We are very pleased to welcome @isumitjha and @fohria as new contributors and want to thank our core team including @maximlt, @Hoxbro, @MarcSkovMadsen, @ahuang11 and @philippjfr for their continuing contributions.
Performance
Speed up
Pane.clone(#5848)Speed up
configattribute access (#5851)Cache templates loaded from string (#5854)
Only load extension entrypoints once (#5855)
Do not freeze document models unless needed (#5864)
Enhancements
Use the compiled version of Pyodide by default (#5808)
Add support for
AutocompleteInput.search_strategyparameter (#5832)Use
stdlib_module_nameswhen determining pyodide dependencies (#5818)Add
Tabulator.sortableparameter (#5827)Add delay for tooltip to show up for buttons (#5860)
Add
serializemethod onChatMessageandChatFeed(#5764)Allow running onload and defer_load tasks on threads (#5865)
Allow Image panes for
ChatMessage.avatar(#5870)Allow async callbacks on
FileDownload(#5878)Allow running scheduled tasks on threads (#5879)
Bug fixes
Fix Google OAuth default scopes (#5823)
Fix logic for cleaning up OAuth user (#5824)
Set
text_aligncorrectly ifTabulatoris given Bokehformatter(#5866)Fix
FileDownloadembed=Truestyle forFastdesign (#5875)Enable
Tabulatorselection across pages withpagination="remote"andselectable="checkbox"(#5889)Fix rendering of
VTKcolorbar (#5902)Ensure HoloViews
DynamicMapupdates when widget dimension has unit (#5904)Add space between
MaterialTemplateapp and site title separator (#5905)Consistently handle errors during authentication (#5909)
Compatibility
Updates for Numpy 2.0 compatibility (#5817)
Improve notebook handling when loading bokeh dev versions (#5820)
Documentation
Enhance
extensionandconfigdocs (#5790)Document setting a multiselect header filter on
Tabulator(#5825)Add missing
GridSpecdocs (#5840)Fix for getting_started widgets example (#5859)
Add more references to Panel Chat Examples (#5881)
Document
Tabulatorfontawesome css (#5892)Fix broken link to panel tagged items in holoviz blog (#5903)
MenuButton docs improvements (#5907)
Version 1.3.1
Date: 2023-10-31
This micro-release primarily ships a variety of bug and regression fixes focusing on auth, the chat components, and WASM (i.e. PyScript and Pyodide) support. It also adds an enhancement to the auth components that now makes it possible to let users access applications as a guest. Many thanks to our new contributors @art3xa, @polivbr and @tupui as well as our core development team including @MarcSkovMadsen, @maximlt, @ahuang11 and @philippjfr.
Enhancements
Add support for authenticating as guest using OAuth and basic auth components (#5743)
Bug fixes
Ensure
ColorMapwidget correctly handles shared layout and display parameters (#5732)Fix accessing refreshed
access_token(#5734)Ensure
Markdowncode blocks always wrap (#5738)Fix returning
state.user_infoif noid_tokenis present in cookies (#5747)Fix
Widget.from_paramtype annotation (#5754)Fix auto send for
ChatInterfacewithTextAreaInput(#5762)Add support for iframe
srcdoconLocation(#5774)Ensure
Tabulator.styleapplies correctly with changing data (#5757)Ensure
panel convertcan correctly detecttransformers_jsimport (#5772)Adjust
ReactiveHTMLcss resources for relative paths (#5779)Ensure invalid query parameters warn instead of erroring (#5781)
Apply pyscript CSS by default without the splashscreen (#5784)
Ensure components which require DOM element to be attached can be rendered in
Card(#5786)
Documentation
Fix typo in examples/reference/widgets/StaticText.ipynb (#5739)
Add
ReactiveExprreference docs and change default widget location (#5755, #5760)Fix pyscript WASM example (#5771)
Improve documentation for deep linking docs (#5752)
Version 1.3.0
Date: 2023-10-23
This minor release packs many exciting new features, specifically a new panel.chat subpackage containing components with powerful capabilities for interacting with LLM whether local or remote. Secondly this release adds compatibility with Param 2.0 bringing powerful new features including the ability to leverage reactive expressions using the rx wrapper and deeper support for reactively linking parameters, expressions and bound functions on Panel components. Lastly we overhauled the OAuth implementations adding support for code authorization and password based OAuth grant workflows and automatically refreshing the access_token when it expires. Beyond that this release includes many enhancements and numerous bug fixes. Special thanks to our first time contributors @aktech and @monodera and returning contributors @cdeil, @pierrotsmnrd and @TheoMartin. We also want to highlight the contribution of our new core contributor @ahuang11 for developing the chat components and recognize @MarcSkovMadsen and @philippjfr for their efforts on testing and improving these new components. Finally we thank the entire core team @Hoxbro, @MarcSkovMadsen, @maximlt, @ahuang11 and @philippjfr for their continued efforts.
Feature
Integrate support for param reactive expressions and expose
pn.rx(#5138, #5582)Implement
ChatMessage,ChatFeedandChatInterfacecomponents (#5333)Unify OAuth implementations and refresh
access_token(#5627)Add
ColorMapwidget (#5647)
Enhancement
Add unit to widget in
HoloViewspane if provided (#5535)Allow registering global
on_session_destroyedcallback (#5585)Implement
auto_growonTextAreaInput(#5592)Add ability to redirect users from authorization callback (#5594)
Add support for
Pathobject inFileDownload(#5607)Add authorization_code and password based OAuth login handlers (#5547)
Add format to
EditableFloatSliderandEditableIntSlider(#5631)Add support for decorating async functions with
pn.io.cache(#5649)Map
param.BytestoFileInputwidget (#5665)
Bug fixes
Fixes for
Columninvisiblescroll_buttontaking space (#5532)Guard undefined values from being set on
BrowserInfo(#5588)Fix thumbnails and use Panel design on index page (#5595)
Fix regressions in
TextEditorcaused by migration to shadow DOM (#5609)Sync
locationstate from request (#5581)Fix
Selectwidget label offset in Material Design (#5639)Override token contents when reusing sessions (#5640)
Fix patching a table with a
DataFramewith a custom index (#5645)Set
FloatPanelstatus correctly on initialization (#5651)Fix patching table with
pd.Timestampvalues (#5650)Ensure
notificationsandbrowser_infoare loaded whenHoloViewsis loaded (#5657)Gracefully handle resolution of invalid paths in
_stylesheets(#5666)Handle patching tables with
NaTvalues (#5675)
Compatibility
Add support for Python 3.12 and drop Python 3.8 support
Upgrade to Param 2.0 as minimum required version
Compatibility with Bokeh 3.3.0
Documentation
Improved docs on deploying with GCP (#5531)
Add Streamlit migration guide for chat components (#5670)
Version 1.2.3
Date: 2023-09-18
This micro-release primarily fixes some critical regressions that were introduced in the 1.2.2 release, along with some other minor bug fixes. Many thanks for our users for reporting these issues so quickly and @monodera, @ndmlny-qs, @ahuang11, @mattpap, @Hoxbro and @philippjfr for their contributions to the release.
Enhancements
Add ability to change admin page endpoint (#5447)
Authentication
/logoutendpoint now serves configurable template (#5514)Add options to sanitize
HTMLpanes (#5516)
Bug fixes
Fix regression introduced in 1.2.2 causing issues with periodic callbacks and
--autoreload(#5490)Fix regression introduced in 1.2.2 causing issues with authorization callbacks (#5504)
Fix regression introduced in 1.2.2 related to logout redirects (#5484)
Fix extracting
panel convertrequirements from requirements.txt (#5509)Ensure visibility is applied correctly for all components when initialized as False (#5508)
Fix rendering of backticks in
ReactiveHTML(#5512)Ensure Quill
TextEditorcorrectly detects selections and renders HTML (#5511)Fix
Markdownrendering with the MyST parser (#5497)Fix OAuth login endpoint when
--prefixis set (#5492)
Documentation
Update outdated
DateRangeSlider.stepdocumentation (#5510)
Version 1.2.2
Date: 2023-08-31
This micro-release is likely the last in the 1.2.x series with a large number of bug fixes and a few enhancements to existing components. The enhancements include the ability to control the scroll position on a Column, improvements for authentication and authorization, the ability to add click event handlers to Perspective and a few other items. Bug fixes also center fixes for authentication, some improvements when rendering Tabulator avoiding various race conditions in its rendering pipeline, and fixes for Perspective, Echarts, DeckGL and a few other components. We are very grateful for a large number of community contributions to this release and welcome and congratulate new contributors @s22chan, @RaulPL, @dogbunny, @thomasjpfan, @SultanOrazbayev and @pierrotsmnrd. Many thanks also to returning contributors @TBym, @Lnk2past, @ndmlny-qs, @owenlamont and our core developer team @MarcSkovMadsen, @ahuang11, @Hoxbro, @maximlt, and @philippjfr.
Enhancements
Add scroll button, auto-scroll and scroll position options to
Column(#5245, #5365, #5369, #5403)Add cache busting to server CSS resources (#5414)
Add
Tabulator.title_formattersparameter (#5421)Provide the the accessed path to authorization checks (#5386)
Add
Perspectiveclick events (#5430)Add and improve
pn.io.holdandpn.io.immediate_dispatchcontext managers to control events (#5444)Allow to passing
basic_login_templateargument to panel server (#5454)
Bug fixes
Ensure
BasicAuthforwards to original URL after login (#5357)Correct return types from
threading.Threadtopanel.io.server.StoppableThread(#5396)Various guards and fixes ensuring
Tabulatorre-renders correctly (#5410, #5412)Avoid extra executions when executing periodic callback with counter (#5344)
Ensure updates to
DataModelare correctly scheduled on the event loop (#5360)Fixes for displaying single newlines in
Markdownoutput and addrenderer_options(#5376)Allow update of
Accordiontitle without updating content (#5413)Fix authentication handling when prefix is set (#5422)
Fix serialization issues affecting
TextLayerobjects inDeckGL(#5427)Fix height responsiveness of
Perspectivepane (#5429)Ensure
FileDownloadbutton can be clicked anywhere (#5431)Ensure
ReactiveHTMLchildren are rendered just like other models (#5434)Set
Perspectiveproperties correctly to avoid causing unfocus on keypresses (#5432)Ensure
FloatPanelcorrectly exposes its children to allow linking (#5433)Do no reset
Tabulatoroptions if DataFrame indexes are unchanged (#5436)Add ability to work around issues when removing series from
ECharts(#5435)Fix race conditions when initializing and rendering IPyWidgets in notebooks (#5462)
Tweak
AccordionCSS to remove gaps and avoid border overlap (#5460)Ensure columns are deleted when updating traces on
Plotlypane to avoid corruption (#5464)Invalidate layout when
TextEditorCSS loads (#5465)Ensure
FloatPanelreflects closed status (#5466)Fix handling of string dtypes on
Perspectivepane (#5467)
Documentation
Compatibility
Version 1.2.1
Date: 2023-07-25
This micro-release focuses on a small number of enhancements and rendering related bug fixes. Specifically it adds support for notifying users when the page is ready and when the Websocket disconnects using corresponding config options and upgrades the Vizzu version, thereby adding support for tooltips and enabling animations when the data is updated. The bug fixes are primarily focused on ensuring components such as GridStack and Tabulator render correctly and do not unnecessarily re-render or reload stylesheets. Many thanks and welcome to @owenlamont, @sciemon, @DGLaurits, @Ciemarr and @Kislovskiy for their first contributions to Panel and the maintainers @MarcSkovMadsen, @Hoxbro and @philippjfr for contributing to this release.
Enhancements
Add
config.disconnect_notificationandconfig.ready_notification(#5244)Add
Vizzutooltip support and allow animations when data is updated (#5258)Style tweaks for
CardandSelectcomponents (#5280)
Bug fixes
Ensure
GridStackchildren are sized correctly after render (#5242)Fix
Tabulatorexpanded row rendering (#5253)Fix bug where local
PDFpane is rendered as base64 string (#5264)Avoid full re-rendering when updating
HTMLbased components (#5275)Ensure that
Designdoes not trigger unnecessary updates to stylesheets (#5278)Treat
Tabulatorrow_contentsas real children ensuring layout behaves correctly (#5292)Fix
Videomin_heightandmax_height(#5296)Make
TextEditorinvisible until CSS is loaded (#5297)Fix
disabledparameter on editable sliders (#5319
Compatibility
Update pyodide and pyscript versions and switch to compiled build (#5309)
Documentation
Add VS Code How To Guide (#5196)
Fix binder (#5257)
Tweak example in the Build an App section of Getting Started (#5302)
Update pyodide documentation with latest versions (#5234, #5308)
Remove MyST inline directives from JupyterLite notebooks (#5311)
Version 1.2.0
Date: 2023-07-06
This release primarily aims at providing compatibility with Bokeh 3.2 and the upcoming Param 2.0 release. Additionally it includes a number of improvements including the ability to generate multiple outputs from a generator using the new 'append' mode and updates and fixes for Tabulator. We are also excited about the new Streamlit migration guide and a number of bug fixes. Many thanks to @sdc50, @xiaoyang-sde and the core team including @ahuang11, @MarcSkovMadsen, @Hoxbro, @maximlt and @philippjfr for contributing to this release.
Enhancements
Add
appendmode for reactive generator output (#5129)Upgrade to
Tabulator5.5 ([#5182](https://github.com/holoviz/panel/pull/5182))Add support for
LoadingSpinnerlabel (#5194)Add the
editableparameter toPerspective(#5211)Add support for setting
theme_classesonTabulator(#5216)Move resource handling onto
BaseTemplate(#5228)
Bug fixes
Correctly process fields on
Vega(and altair) selections (#5164)Fix for resource handling particularly when working with Django (#5175)
Fix
ChatBoxbubble width (#5172)Fix
Tabulator.visiblehandling ([#5182](https://github.com/holoviz/panel/pull/5182))Fix programmatic updates to
Tabulator.page(#5187)Ensure bokeh events generated in pyodide convert
Nonetonull(#5191)Improve notebook detection (#5201)
Reduce priority of
_repr_<img>_to ensure_repr_html_takes precedence (#5217)Ensure we do not modify
Tabulator.hidden_columnsinplace (#5218)Alignment and styling fixes for text input and button widgets (#5219)
Fix updates to
Plotlynested properties such as selections (#5227)
Documentation
Compatibility
Version 1.1.1
Date: 2023-06-21
The first micro-release in the 1.1.x series brings a large number of bug fixes and some minor enhancements. The most important fixes include compatibility with JupyterLab 4 and improved support for updating ipywidgets. This release saw a lot of contributors and we welcome @TBym, @Glatzli, @theyashi, and @enismaxim1 to the Panel developer community and thank our existing contributors and maintainers @ahuang11, @Hoxbro, @sophiamyang, @maximlt, @MarcSkovMadsen, and @philippjfr for their continued contributions.
Enhancements
Implement
per_sessioncache (#5117)Enhancements for
ChatBoxincluding methods to update rows and hide names (#5118, #5118)
Bug fixes
Fix
Progressindicatorsizing_mode(#5051)Ensure kernel shutdown futures are not collected in Jupyter server extension (#5069)
Add bokeh version check for notebook to better support bokeh dev versions (#5071, #5093)
Fix false warning emitted when constructing a Param pane with
throttledoronkeyup(#5078)Allow to updating/clearing
enabled_datesonDatetimePicker(#5089)Ensure session arguments are correctly parsed by Jupyter executor (#5106)
Fix
defer_loadhandling (#5107)Fix styling with filters in
Tabulator(#5110)Fix issues when using
infilter with single value on Tabulator (#5125)Add fallback if
ReactiveHTMLshadow DOM lookup fails (#5126)Allow automatic loading of extensions during launch and warn about missing extensions (#5144)
Correctly process fields on
Vega(and altair) selections (#5145)Immediately dispatch
ColumnDataChangedEventfixingPlotlyplots not updating (#5147)
Documentation
Overhaul Perspective reference page (#5087)
Add new HuggingFace deployment documentation (#5158)
Enable and document mathjax extension in Markdown reference (#5158)
Compatibility
Correctly serialize new IPyWidget models on creation (#5114)
Ensure we handle JupyterLab 4 comm messages correctly (#5140)
Backward compatibility
Renamed Trend parameter title to name (#5092)
Version 1.1.0
Date: 2023-05-31
This is the first minor release in the 1.x series with a number of new features and small bug fixes. The main features we are excited about are the new ChatBox widget added by @ahuang11 and support for reactive generators. Many thanks to @ahuang11, @philippjfr and @Hoxbro for contributing to this release and our amazing community for reporting issues.
Features
Add the
ChatBoxwidget (#4702)Add a standalone
TooltipIconindicator (#4909)Implement support for reactive generator functions (#5019)
Allow setting
on_*handlers in constructor (#5026)Allow controlling initial
Templatesidebar state (#5033)
Bug fixes
Handle height responsiveness of
HoloViewslayout correctly (#5009)Apply
Plotlytoolbar colors depending on template (#5012)Fix Fast
Designstyle variables (#5015)Allow reactive updates to override constant parameters (#5032)
Fix
Tabulatorheader filter styling (#5038)Ensure Jupyter extensions warns users if app has no contents (#5041)
Version 1.0.4
Date: 2023-05-31
Another micro-release in the 1.0.x series addressing small issues reported by our engaged community. Many thanks to @ahuang11, @simzer, @alexmilowski and the core contributors @droumis, @Hoxbro and @philippjfr for contributing to this release.
Fix global loading spinner (#4936)
Fix issues resolving whether
IPyWidgetmodel (#4939)Fix recursive and inplace updates on reactive panes (#4946, #4958)
Fix issues with single
Selectwidget (#4947)Ensure CSS
configparameters can be passed toTemplateconstructor (#4948)Fixed vizzu data series type conversion for datetime (#4955)
Fix
icononToggleandButtonwidget (#4961)Fix Volume definition on
VideopaneEnsure
Card.header_coloris correctly applied (#4971)Update
param.Listsignatures to suppress warnings (#4973)Fix font loading in Vanilla template (#4975)
Guard is_file check on Windows (#4985)
Fix serialization of
Plotly.selection_data(#4987)Speed up dynamic layout updates (#4989)
Version 1.0.3
Date: 2023-05-25
Another micro-release in the 1.0.x series with a number of smaller bug fixes. Most importantly this resolves issues with loading indicators and with apps converted to the pyodide-worker target. Many thanks to @n3011, @Hoxbro and @philippjfr for contributing to this release.
Resolve
_repr_jpeg_methods correctly (#4904)Fix handling of queued events in pyodide worker (#4913)
Various fixes for loading indicator (#4915)
Allow
-1inTabs.activeand allow recovering from closed tabs (#4920)Ensure
HoloViewslayout is correctly initialized whencenteris set (#4921)Ensure VSCode editor does not apply white background to Panel output (#4923)
Do not error on deserialization errors in notebooks (#4927)
Ensure basic auth provider works when dynamically starting server (#4926)
Ensure
Parampanenameis updated when object changes (#4928)Align functionality and styling of
FileDownloadwithButton(#4929)Fix equality comparisons of parameter values when updating a
Pane(#4934)Warn about ignored widget parameters on
Parampane (#4934)
Version 1.0.2
Date: 2023-05-19
A micro-release in the 1.0.x series with a number of bug fixes and documentation tweaks. Many thanks to @jbednar and @philippjfr for contributing to this release.
Bug fixes
Ensure
Designstylesheets are not replaced when updating component stylesheets (#4883)Ensure tooltips are rendered correctly as HTML (#4887)
Fix loading of index page resources (#4891)
Ensure
FloatPanelcan be rendered in classic notebooks (#4892)Attempt rendering output in notebooks even if not all resources have been initialized (#4893)
Do not load large bokeh-mathjax bundle in notebooks by default (#4895)
Make Fast template sidebar opening transition smoother (#4898)
Ensure new items added to
Cardlayout are rendered (#4899)Fix logo rendering in BasicAuth template (#4900)
Documentation
Update Vega/Altair reference notebook to use altair 5 APIs (#4894)
Version 1.0.1
Date: 2023-05-18
A micro-release fixing some small issues discovered in Panel 1.0. Thank you to @droumis, @Hoxbro and @philippjfr for contributing fixes.
Bug fixes
Ensure
Reactiveobjects wrapped in reactive are re-rendered correctly (#4868)Tweaks for Material
Designcomponent inset label styling (#4877)Ensure
SlidesTemplateslides changes trigger updates in thepn.state.location.hash(#4878)
Documentation
Version 1.0.0
Date: 2023-05-17
The Panel 1.0 release is finally here and it brings a huge number of improvements. The largest improvements in this release come from an upgrade from Bokeh 2.x to Bokeh 3.x. Bokeh overhauled its internal layout engine and stylesheet handling, making applications significantly more performant and customizable going forward.
This release marks a huge step forward in the usability of Panel but is also just a first step in leveraging many of the new capabilities that the updated layout engine and design system affords. In the coming months we will continue to improve and polish the UI and UX and make it easier for you to extend Panel as needed.
For now we want to thank the many people that contributed to this release either by contributing directly or by testing and providing feedback. Many thanks to the core contributors @MarcSkovMadsen, @Hoxbro, @maximlt, @jbednar, @droumis and @philippjfr and the outside contributors @ahuang11, @cdeil, @MridulS, @AndrewMaged814, @midnighter and @wendrul.
Major Features
The three main features we want to highlight as part of this release are:
Add new and highly performant layout engine, addressing many performance and layout issues (#4326, #4463, #4491, #4503, #4522, #4690)
Add unified Design and Theme system (#4413, #4475, #4466, #4540, #4548, #4770, #4792, #4793, #4801)
Implement support for passing parameters, widgets and bound functions by reference for simple and powerful reactivity (#4495, #4505, #4603, #4606)
Some of the changes related to the new layout engine and design system will require small updates to your existing applications. To make this transition as smooth as possible we have provided an upgrade/migration guide.
New Components
This release also adds a number of exciting new components you can leverage in your applications:
Add
Swipelayout (#3007)Add
Switchwidget ([#4130](https://github.com/holoviz/panel/pull/4130))Add
BrowserInfomodel to expose browser window and navigator APIs (#4533)Add
BasicAuthprovider for quick password based auth (#4684)Add a
SlidesTemplatebased on reveal.js to create interactive presentations (#4798)
Major enhancements
There are also a number of major enhancements in this release that we are very excited about:
Improved Markdown rendering (#4688)
Add support for tooltips on widgets ([#4130](https://github.com/holoviz/panel/pull/4130), #4621, #4643)
Ensure
.ipynband.mdbased apps can be used as--index(#4432)Add support for selecting
formatandencodingfor Matplotlib image output and implemented responsive Image sizing (#4514)Add support for icons on
Button(#4797)Add generic
Imagepane that auto-detects the image filetype (#4551)Add support for writing applications in Markdown (#4602)
Improve support for inline resources for Jupyter (#3013, #4787)
Add ability to reuse sessions to speed up rendering (#3679, #4658)
Improve notebook resource and extension loading (#4752)
Add ability to add global loading spinner to application(s) (#4659)
Documentation
The last major change we want to highlight is a complete overhaul of the documentation, moving from long and difficult-to-navigate user guides to distinct easily applied how-to guides along with separate, longer explanation sections. We also put in significant effort to ensure that most of our documentation can be run interactively in Pyodide or JupyterLite.
Modernize documentation by using latest pydata-sphinx-theme (#4609, #4701)
Add upgrade/migration guide (#4693)
Migrate user guide to how-to guides (#4244, #4251, #4267, #4290, #4412, #4422, #4759, #4774)
Completely overhaul App Gallery (#4047, #4565, #4574, #4598, #4683)
Use pyodide rendering throughout documentation and add JupyterLite links (#4751)
Deprecations & API changes
Compatibility
Bokeh 3 compatibility (#4098, #4117, #4129, #4140, #4150, #4275, #4467, #4435, #4441, #4449, #4448, #4508)
Upgrade plotly.js to 2.18.0 (#4320)
Upgrade Tabulator to 5.4 and optimize rendering (#4482](https://github.com/holoviz/panel/pull/4482))
Upgrade Echarts to 5.4.1 (#4538)
Upgrade pyodide (0.23.1) and pyscript versions (#4344)
Add support for altair and vega-lite v5 (#4488)
Add support for latest versions of ipywidgets (#4716, #4766, #4779)
Deprecations
Deprecate
IDOMpane (#4293](https://github.com/holoviz/panel/pull/4293), #4323)Deprecate
Viewable.app(#4293](https://github.com/holoviz/panel/pull/4293))Deprecate
Viewable.pprint(#4347)Deprecate and remove
RGGPlotRename
AcetoCodeEditor(#4627)
API changes & Backward Compatibility
Pandas is now only a (lazy) runtime dependency (#4411)
Tabulator.frozen_rowsnow respects the order of rows in the data instead of the order in which thefrozen_rowswere defined (#4482](https://github.com/holoviz/panel/pull/4482))Make
margindefaults consistent across widgets and panes (#4528)Extension calls must specify all required extensions (#4562)
The
.embedmethod now returns a Mimebundle object for rendering (#4791)Remove
panel examplesCLI command and pyct dependency (#4691)Expose all layout components in top-level API (#4696)
Other Enhancements
Configuration
Allow to set the log level of the Admin logger (#3495)
Add
pn.state.servedto simplify determining whether script is executed as an application or in an interactive session (#4252)Add
pn.config.loading_indicatorto determine whether to show loading indicator by default (#4259)
Jupyter
Improve startup, error handling and shutdown of Jupyter kernels (#4364)
Log errors in JupyterLab preview to server logs (#4773)
Support binary JS -> Python communication in notebooks (#4635)
Modify sys.path when running inside Jupyter Kernel (#4489)
Pyodide
IPython
displaycompatibility in pyodide builds (#4270)Ensure
panel convertrespectspn.config(#4359)Fix notification support in Pyodide (#4387)
Miscelleanous
Handle cancelling and empty value edit events on
Tabulator(#4343)Add favicon to base template (#4626)
Ensure
CrossSelectorfilters apply on each keystroke (#4339)Do not re-create
Vega.selectionsobject unless selections changed (#4497)Standardize parameter mapping APIs (#4386)
Add
Plotly.link_figureparameter (#4333)Add support for .JPEG file extension in the
JPGpane (#4532)Make periodic callback
countera parameter (#4134)Add Echarts events (#2174)
Bug fixes
Fix caching on undecorated Parameterized method (#4332)
Ensure that global notification object can be used inside notebook callbacks (#4331)
Ensure
hash_funcsare applied recursively in cache (#4334)Fix cache
FIFOpolicy bug (#4789)Fix specifying custom index with relative path (#4288)
Fix issue reusing
FileDownloadmodel (#4328)Fix
DeckGLtooltip handling (#4628)Fix NumPy integer/floating checks on
Perspective(#4366)Ensure
memrayprofiler temporary file is flushed (#4666)Fix mimetype issue on windows (#4738)
Fix
Plotlyundefined value errors for eventdata (#4355)
Tabulator
Ensure updates to
Tabulatorformatter or editor updates model (#4296, #4781)Ensure
Tabulatorinternal_index_mappingis updated on stream (#4292)Ensure
Tabulatorheader filters aren't treated as regex (#4423)Ensure
Tabulatorstylesare re-applied when local pagination changes (#4795)
Jupyter
Ensure JupyterLab preview works on Windows (#4819)
Ensure notifications are enabled even if hv.extension has been loaded (#4330)
Version 0.14.4
Date: 2023-03-04
This release is a small bug fix release preceding the upcoming major release of Panel 1.0. Many thanks to the contributors to this release which include @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Bugs
Fix
Tabulatorclient-side string filters by not parsing them as regex (4423)Fix the RGGPlot pane (#4380)
Fix
panel examplescommand by ensuring examples are correctly packaged (#4484)Fix event generation by considering NaNs as equal when comparing Numpy arrays (#4481)
Use cache from previous sessions when using
to_disk(#4481)Fix relative imports when running inside Jupyter Kernel (#4489)
Do not re-create
Vega.selectionsobject unless selections changed (#4497)
Enhancements
Add support for altair and vega-lite v5 (#4488)
Misc
Use latest react-grid from CDN (#4461)
Version 0.14.3
Date: 2023-01-28
This release introduces a large number of bug fixes and minor enhancements. Due to the upcoming release of Panel 1.0 we have also made the unconventional decision to issue new deprecation in a micro release. Specifically the IDOM pane and Viewable.app and Viewable.pprint methods have been scheduled for deprecation. Many thanks to the contributors to this release which include @wendrul, @droumis and the core team @MarcSkovMadsen, @maximlt, @Hoxbro and @philippjfr.
Bugs
Tabulator
Ensure streamed rows on
Tabulatorcan be edited (#4292)Ensure changes on
Tabulatorformatterandeditormodels are reflected in frontend (#4296)Ensure cancelling edit does not clear cell on
Tabulator(#4343)Ensure inserting empty data on numeric column in
Tabulatordoes not error (#4343)
Notebook
Fix issues rendering components as ipywidgets for some versions of ipykernel (#4289)
Add warning if custom resources could not be loaded in notebook (#4329)
Ensure notifications are enabled even if
hv.extensionhas been loaded (#4330)Ensure global notification object can be used inside notebook callbacks (#4331)
Type definitions
Fix return type of
Widget.from_param(#4335)Ensure type annotation allows
strandPathLikeobjects onpanel.serve(#4336)Fix type annotations on
panel.io.convert.convert_app(s) (#4342)
Misc
Ensure markdown links render correctly in template sidebar (#4222)
Improve .applies for
EChartsandDeckGL(#4224)Fix specifying custom
--indexwith relative path (#4288)Skip
on_loadcallbacks in liveness check (#4302)Ensure re-rendered
FileDownloadstill fetches live data (#4328)Fix handling of
panel.cacheon undecoratedParameterizedmethod (#4332)Ensure user provided
hash_funcsare applied inpanel.cache(#4334)Fix plotly eventdata undefined val (#4355)
Ensure
panel convertrespectspanel.configoptions (#4359)Propagate options from HoloViews and Bokeh plots to enclosing Pane (#4360)
Propagate options from dynamic components such as ParamMethod and Interactive to enclosing layout (#4360)
Minor enhancements
Allow to set the log level of the Admin logger (#3495)
Make
refresh_tokenavailable in Auth (#4227)Simplify determining whether script is executed as application with
pn.state.servedproperty (#4252)Add
loading_indicatorto globalconfig(#4259)IPython
displaycompatibility in pyodide builds (#4270)Split
PanelJupyterExecutorinto separate module (#4276)Allow dynamic loading of javascript modules in
ReactiveHTML(#4319)Add
Plotly.link_figureparameter (#4333)Ensure
CrossSelectorfilters apply on each keystroke (#4339)Improve startup, error handling and shutdown of Jupyter kernels in
jupyter_server_extension(#4364)
Compatibility and Version Updates
Upgrade plotly.js to 2.10.1 (#4320)
Upgrade to pyodide 0.22.1 in
panel convert(#4334)Upgrade to pyscript 2022.12.01 in
panel convert(#4334)Fix compatibility of Perspective pane with Numpy 1.24 (#4362)
Deprecations
Add deprecation warning to
IDOMpane (#4293)Add deprecation warning for
Viewable.appandViewable.pprintmethods (#4293, #4347)
Documentation
Add CONTRIBUTING.md (#4262)
Add Gallery VideoStream example (#4047)
Add description of literal options to the docs for
ReactiveHTML(#3803)
Version 0.14.2
Date: 2022-12-14
This release primarily focuses on bug fixes. In particular it resolves various issues with support for rendering ipywidgets (particularly in ipywidgets>=8.0) and also fixes a number of issues with the Jupyter Server previews. Many thanks for @govinda18, @joelostblom, @banesullivan, @xeldnahcram, @geronimogoemon, @minasouliman, @peterfpeterson, @jlstevens and the core maintainers @maximlt, @Hoxbro, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Enhancements
Add support for
Tqdm.process_map(#4093)Support non-vtkPolyData types in vtk synchronizer (#4124)
Allow invoking
convertfunctions from pyodide (#4135)Support
stepformat in date sliders (#4152)Add a
Reactoncomponent to simplify rendering (#4190)
Bugs
Ensure Jupyter server extension serves resources, extensions and paths correctly (#4083, #4133, #4202)
Ensure
IPyWidgetcomm does not break when new widget is rendered (#4091)Improving detection of comms in VSCode and Google Colab (#4115)
Ensure
.jsmimetype is served correctly on Windows (#4118)Ensure unhiding
Tabulatorcolumns renders cells correctly (#4119)Ensure embedded
Sliderwidgets initialize with correct default (#4121)Handle missing event loop in thread gracefully (#4123)
Ensure
Matplotlibpane handles explicitwidth/heightsettings correctly (#4128)Allow
Viewerto render servable but non-viewable objects (#4131)Fix regression in tracking sessions in admin interface (#4132)
Ensure
Tabsheaders do not scroll unnecessarily (#4146)Ensure
Locationmodel reports as idle (#4159)Fix auth error template rendering (#4162)
Fix issues with value on
EditableSliderwhen it is outsidefixed_start/fixed_endrange (#4169)Ensure
ipywidgetsevents are handled the same way as regular events (#4171)Don't raise
TypeErrorfor class which contains__panel__(#4174)Do not dispatch events if bokeh
Documentis set to hold events (#4178)Execute
onloadcallbacks immediately in pyodide app (#4191)Improve
IPyWidgetkernel handling in server contexts (#4195)Fix rendering of
IPyWidgetwith child views in the notebook (#4197)
Docs
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
requestsin pyodide (#3973)Add option to clear value of DatetimePicker (#3990)
Add support for hashing dates in pn.cache (#4004)
Silence
EMPTY_LAYOUTwarnings (#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 serveindex template (#3980)Do not error if
curdochas 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_loadcallback 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
Tabulatorhandles filtering on edited values correctly ifshow_index=False(#3988, #4016)Ensure
Tabulatordeclares numeric sorter for numeric dtypes (#3999)Fix regression initializing
DiscreteSliderwith non-integer value (#4009)Ensure that template.config.raw_css is correctly applied (#4018)
Fix handling
MenuButtonclicks whensplit=True(#4021)Ensure styling on
Tabulatorwith empty DataFrame does not error (#4028)Allow changing
levelonDebuggerwidget (#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_loadof components (#3882)Add
config.exception_handlerto easily capture, log and notify users about errors (#3893)Implement
pn.cachefunction 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.unsyncunsets query params (#3806)Allow None value on numeric sliders and
LiteralInput(#3174)Allow serving admin panel with
pn.serve(#3798)Improve
ReactiveHTMLloop support and validation (#3813)Support declaring
Perspective.plugin_configpane (#3814)Do not flicker busy indicator during
--autoreloadcheck (#3804)Improve robustness of
state.curdocin threaded and async contexts (#3776, #3810, #3834)Support datetime bounds for
DatetimePickerandDatetimeRangePicker(#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
Markdowncode syntax highlighting (#3758)Ensure components do not re-render if
backgroundorloadingparameters 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
Tabulatoras defaultparam.DataFramewidget (#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)
Compatibility & Version updates
Support ipywidgets>=8.0 (#3782)
Bump jsoneditor package (#3838)
Upgrade to Tabulator 5.3.2 (#3784)
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.executedispatches 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)
Tabulator
Do not re-render
Tabulatoroncss_classesorbackgroundchange (#3598)Ensure expand icon updates on
Tabulator.expandedchange (#3703)Update
pageParameter when pagination is 'local' (#3704)Do not apply
sortersonTabulatorcell edits (#3744)Ensure
Tabulator.controlsrenders (#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)Ensure layout recomputes on
HTML/Markdownre-rerender (#3616)Allow overriding all widget parameters on
Parampane (#3754)Ensure
DatePickerstart/end are transformed when jslinked (#3759)Ensure notifications can be enabled without a template (#3820)
Ensure
ReactiveHTMLinline callbacks on loop variables return correct node (#3840)Ensure that
Perspectivedoes not take precedence on empty dict (#3936)Improve
sizing_modebehavior 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)
Add support for
Plotlyanimation frames (#3449)Implement single and multi-selection in Vega pane (#3470, #3499, #3505)
Add typehints to help developers and users (#3476)
Add
pn.state.executemethod to run callbacks in the right context (#3550)Add support for asynchronous
on_edit/on_clickTabulator callbacks (#3550)Add
DatetimeRangeSliderwidget (#3548)
Bug fixes
Fix pyodide array buffer conversion (#3409)
Allow
placeholderto be updated onTextEditor(#3427)Fix issues editing data in sorted columns (#3431)
Ensure bokeh correctly detects whether
HTML/Markdowncontains latex (#3438)Ensure notifications work on server created with
pn.serveand.show(#3445)Replace slickgrid background image in custom
FastTemplateCSS (#3461)Ensure
param.Arrayis synced correctly inReactiveHTML(#3456)Ensure selection on filtered
Tabulatordoes not raise out-of-bounds error (#3462)Ensure updating
Tabulatordoes not reset scroll position (#3450)Various fixes for
FastTemplateCSS (#3464)Ensure
Tabulatoron_clickandon_editevents return correct row when paginated (#3410)Fix broken JupyterLab preview (#3469)
Skip
Tabulatorrow selection when clicking on expand button (#3474)Ensure overflow in
MaterialTemplateis not clipped (#3492)Allow providing
--indexfor 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
DataFramewidgetsortersparameter with bokeh model (#3527)Ensure that HoloViews callback events are not auto-dispatched (#3528)
Ensure non-updateable
Panecan be updated insideTabs(#3532)Fix slowdown of JupyterLab on Windows (#3531)
Fix issue with inverted data when editing a cell in a sorted Tabulator column (#3531)
Ensure
Tabulatorhas 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
Tabulatorcolumn 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
MarkdownandHTML(#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
JSONEditorwidget (#1974)Add quill.js based
TextEditorwidget (#2875)Implement
NotificationsAPI for templates (#3093)Implement profiling page for Panel (#2645, #2664, #2667, #2707, #2905)
Implement support for
Vegaevents (#2592)Implement
ArrayInputwidget (#2047)Add
Debuggerwidget (#2548)Add LinearGauge indicator (#3222)
Add
ComponentResourceHandlerto server (#3284, #3289, #3303)
Enhancements
Components
Editable sliders
namecan be changed (#2678)Make
Plotlypane resize when window resizes (#2704)Viewerobjects can now be used withpn.serve(#2769)VTKimprovement for NaN handling (#2826)Add support for configuring
Vegaoutput (#2846)Add a
groupsparameter toSelectwidget (#2876)Add
Card.hide_headeroption (#2947)Support bytes and pathlib.Path objects on Image (#2963, #3294)
Add alphabetical and custom sort to
Param(#2986)Add
autoplayandmutedtoAudioandVideo(#3053)Add a
disabled_optionsparameter to a custom Select widget (#3067)Expose the
orientationparameter of the button group widgets (#3083)Add support for rendering pandas styler objects (#3152)
Viewernow better at working withdependsfunctions (#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)Add
Tabulator.header_alignparameter (#2861)Implement DateEditor and DatetimeEditor for
Tabulator(#2899, #3008)Implement
Tabulator.buttons(#3111)Redesign
Tabulator.styleshandling (#3175)Set default alignment for
Tabulator(#3194)Bidirectionally sync
Tabulator.sorters(#3217)Add support for setting percentage widths on
Tabulatorcolumns (#3239)Add
Tabulator.on_clickcallback (#3245)Restore
Tabulatorscroll position after patch (#3273)Enable max row limits for
Tabulator(#3306)
Notebook
Add basic JupyterLab theme support (#2848)
Support jupyter server
root_dirwith 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 authentication errors (#3096)
Support saving png to file-like objects (#3155)
Check if there are any query parameters in
baseurland adds it tolocation.searchif possible (#3214)Improve handling of
--indexCLI argument (#3221)Fix event dispatch (#3231)
Add azure oauth v2.0 endpoint support (#3224)
Ensure
gc.collectis not excessively called (#3259)Added
panel.reactiveandpanel.viewableto namespace (#3157)Consistent handling of page title (#3290)
Bugs
Components
Fix warnings in
ReactiveHTMLregex (#2786)Fixed UTF-8 decoding in Terminal widget (#2880)
Allow a
param.Selectorwith no objects to be casted toAutocompleteInput(#2966)Update
ButtonGroupvalue when changing options (#2999)Fix
TQDMstyle color reset (#3040)Fix align-items on
Flexbox(#3122)Fix issue serializing
Spinnerwith negative value (#3154)Fixes for jslinking
HoloViewscomponents (#3165)BooleanStatusandLoadingSpinnernow update when changing color (#3191)Fix
Widget.from_paramwhen precedence is negative (#3199)Ensure
DiscreteSliderlabel is updated (#3278)Ensure
ReactiveHTMLtemplate variables only escapes exact matches (#3279)Fix handling of single and empty options on
DiscreteSlider(#3297)Ensure
Progresscorrectly initializes as indeterminate (#3307)Always resolve DOM nodes in ReactiveHTML._scripts (#3311)
Fixes
CrossSelector.disabledparameter (#3326)Fix
EditableSliderupdates when novalue_throttledis set (#3387)
Tabulator
Fix HTMLTemplateFormatter on
Tabulator(#2781)Fix layout of
Tabulatorwith non-default theme (#3147)Ensure
Tabulatorselection is not reset on patch (#3287)Fix
Tabulator.downloadmethod (#3292)Restore ability to limit number of
selectablerows onTabulato(#3295)Ensure
Tabulatorvalue 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
HoloViewspane in template (#3386)
General
Added check for bool in
Location.parse_query(#2759)Ensure cleanup happens when enabling
--warmor--autoreloadwith Bokeh 2.4 (#2760)Ensure autoload.js correctly determines
state.rel_path(#2776)Fix issue with
.appmethod (#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_configfor preview server extension (#3291)Fix handling of
oauth_providerargument topanel.io.server.serve(#3293)Allow exporting absolute paths when saving (#3305)
Documentation
Added
ToggleGroupdocs (#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 Performance docs (#3171)
Adds
Plotlystyling 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
FileInputwidget (#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
Vegaversion (#3320)Update
ipywidgetssupport 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
DeckGLpane (#3158)
API Changes
Make
Param.mappingpublic (#3173)Switch
DatetimePickerstart/endtoparam.Date(#3202)Perspectiveparameters renamed:row_pivots->split_by,column_pivots->group_byandcomputed_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
HoloViewsplotly backend (#2961)
Bug fixes:
Do not run
Aceimport on initialization (#2959)Ensure empty
Strhas same height as non-empty (#2981)Ensure
Tabulatorsupports grouping on numeric columns (#2987)Fix
Tabulatorwith 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:
Make OAuth cookie expiry configurable (#2724)
Run
onloadcallbacks with--warmoption (#2844)Improve Plotly responsive sizing behavior (#2838)
Adds escape parameter to
DataFramepane to enable using html markup (#2893)Allow to update the completions options from a parameter (#2895)
Tabscache 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
Tabulatorcheckbox selection only happens in checkbox column (#2812)Vtkvolumecorrection of dimensions order (#2818)Allow data item to miss optional field in
Vegapane (#2853)Allow to set
AutoCompleteInputin a Param pane (#2874)Fix
Terminalkeystroke and size handling (#2878)Fix
Tabulatorstyles on scroll (#2881)Do not sync
Indicatorproperties from frontend to avoid errors (#2886)Fix roundtrip of datetimes on
ReactiveDatacomponents (#2888)Fix handling of
Plotlypane inTabs(#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)
Ensure
HoloViewsmatplotlib 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
Cardcollapsible icon offset is computed robustly (#2940)Ensure
--autoreloaddoes not reload panel modules (#2941)Ensure
pn.state.curdocis available to async callbacks (#2942)
Documentation:
Fix default values of panels.io.server.serve(](https://github.com/holoviz/panel/pull/)) (#2799)
Update docs about pn.serve per user state (#2849)
Added FastApi in the user guide for embedding apps (#2870)
Simplify homepage (#2850)
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
--autoreloadcaused 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
.icofiles andpathlibobjects (#2757)
Bug fixes:
Fixed export of vtk.js module (#2562)
Fix broken
HTMLTemplateFormatteronTabulator(#2730)Fix serialization issues of Panel components on
ReactiveHTML(#2743)Ensure
FlexBoxbehaves like a layout and makes its children discoverable (#2779)Ensure
Plotlyplots can be updated in tabs (#2747)Fix embedding of Panel apps in Flask (#2727)
Ensure
Spinnerwidget honors bounds when created fromParamobject (#2740)Ensure
Tabulatorstyle does not disappear after resize event (#2770)Fix
PeriodicCallbackerrors (#2764)Fix syncing of boolean types with URL parameters (#2758)
Ensure
Tabulator.download_menuapplies kwargs to the filenameTextInput(#2763)Ensure
Tabulatordoes not error when no Styler is defined (#2785)
Documentation:
Fix MaterialUI custom component example (#2680)
Fix image url in
Markdownreference 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
Parampane (#2637)Added
on_session_destroyedcallback (#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
Trenddata (#2647)Ensure sorters are applied correctly after updating
Tabulatorvalue (#2639)Correctly reflect filtered data on
Tabulator.selection(#2676Unescape child literal HTML in ReactiveHTML (#2690)
Ensure Trend indicator can be rendered in layout (#2694)
Documentation:
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
Tqdmindicator (#2554)Ensure
--autoreloaddoesn'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:
Add
ReactiveHTML(#1894, #2091, #2092, #2098, #2115, #2210, #2287, #2290, #2332, #2345, #2372, #2373, #2374, #2383, #2384, #2393, #2397, #2399, #2400, [#2401 #2402, #2404, #2533, #2535)Add
TerminalWidget based on xterm.js (#2090)Add ability to configure global template (#2271)
Add
GridStacklayout (#2375)Add
PDFpane (#2444)Add
/panel-previewendpoint for Jupyter server extension (#2341, #2361)Add
TqdmIndicator (#2079)
Enhancements:
Add empty
Progressbar (#2088)Optimize initialization of templates (#2096)
Serialize
Perspectiveschema (#2130)Updated
JSONpane to accept single quote and wrap properly (#2143, #2443)Improvements for
Perspective(#2153)Improve handling of server prefix and proxied deployment scenarios (#2159, #2162)
Completely overhauled the default index template (#2198, #2340)
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
DataFrameandTabulator(#2331)Add
Tabulatortheme for Fast Templates (#2425)Add ability to make only certain
Tabulatorrows selectable (#2433)Add
visibleparameter to all components (#2440)Send
Plotlyrestyle and relayout events rather than full updates (#2445)Add
push_notebookhelper function for syncing bokeh property changes in notebooks (#2447)Improve visual styling of
Card(#2343, #2348, #2376, #2437, #2527)Ensure
configvariables are configured per user session (#2358, #2455, #2481)Add
save_layoutandprevent_collisiontoReactTemplateandFastGridTemplate(#2296, #2357)Add ability to declare root application from
panel serve(#2392)Support jslinking Parameterized class (#2441)
Improve
config.sizing_modebehavior (#2442)Add separate
RangeSlidervalue_startandvalue_endparameters (#2457, #2468)Allow saving Templates (#2461)
Bundle
Tabulatorresources to allow usage in airgapped environment (#2471)Ensure
Trendindicator title wraps (#2483)Scroll on
Tabulatorselection (#2503)Increase notebook resource load timeout (#2515)
Auto-detect VSCode and Colab comms (#2536)
Add tooltip to
Tabulatorcells 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
Acez-index (#2126)Fix updating of
Tabulatorselection property (#2128)Ensure changes on ReactiveData source are scheduled correctly (#2134)
Fixed
Playerlooping when start is 0 (#2141)Fix divide by zero issues on Trend indicator (#2148)
Ensure
GridSpecoverride handles duplicate matches (#2150)Fix for
loadingparameter widget linking (#2160)Fix
Tabulatorajax call on empty data (#2161)Fix
Tabulatorsorting and data initialization (#2163)Fix editing
Tabulatorwith filters applied (#2165)Fix theming on
HoloViewsplot updates (#2209)Fixed data handling on
Perspectivepane (#2212)Improve template and resource management for png export (#2221)
Improve and standardize selection behavior of
Tabulator(#2230)Ensure JS changes to
Plotlypane are applied if not explicitly triggered (#2251)Fix server-side Tabulator selection changes (#2252)
Fix update of
Paramsubobjects (#2255)Add support for
vtkCornerAnnotations(#2257)Improve request handling for remote pagination on
Tabulator(#2265)Allow setting
Paramprecedence to None (#2266)Disable nested field separators on
Tabulator(#2289)Ensure
Parampane handles changes to unknown parameter (#2346)Fix issues with local
AudioandVideo(#2380)Ensure
ReactiveDataemits correct old data in event (#2398)Ensure
Plotlyinteractivity works whenPlotlypanes are displayed in tabs (#2418, #2463)Fix
Acewidget 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
Plotlypane (#2465)Fix issue with throttled updates on Param (#2470)
Ensure
Tabulatorstyle is applied while streaming (#2478)Fix issues setting resources on save (#2492)
Fix
VideoStreamunpause (#2508)Ensure
DataFrameandTabulatorwidget data can be updated in callback (#2510)Fix chaining of
bindfunctions (#2513)Fix broken serialisation when syncing url parameters (#2520)
Fix
Perspectivefor string types (#2525)Fix race condition in
--autoreload(#2539)
Documentation:
Update
Server_Deployment.ipynb(#2118)Expand description of
watch=TrueinParam.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
Tabsdocumentation (#2448)Added basic description and example of the
Tabulator.configurationparameter (#2412)Add parameters to
Plotlyreference guide (#2385)Add useful links to developer docs (#2319)
Add documentation about parameterized components (#2454)
Demonstrate how to lazily load tabs (#2479)
Compatibility:
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
Tabulatorsorting and data initialization (#2163)Improved handling of
IDOMbuild 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
Videopane causing video not to be rendered at all (#2109)Fix missing closing tag in Fast templates (#2121)
Remove bootstrap CSS from
FastGridTemplate(#2123)Ensure
Tabulatorselection can be set from Python (#2128)Ensure changes on ReactiveData objects are scheduled correctly on server (#2134)
Fix for
Playerwidget 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
GridSpechandles overrides across multiple cells (#2150)Fix for
loadingparameter widget linking (#2160)Use relative URLs for resource loading to ensure proxied apps work (#2159)
Fix
Tabulatorajax 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:
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
visibleproperty (#2065)Allow bind to extract dependencies and evaluate other dynamic functions (#2056)
Allow setting
root_directoryonFileSelectorwidget ([#2086](https://github.com/holoviz/panel/issues/2086()
Bug fixes:
Fixed loading of jQuery in
BootstrapTemplate(#2057)Fix VTK imports to ensure
VTKVolumepane renders grids (#2071)Fix loading of template resources from relative paths (#2067)
Fix
Spinnercomponent overflow (#2070)Handle integer column names on
Perspectivewidget (#2069)Fix bundling of template resources (#2076)
Fix
value_throttledinpn.dependsdecorator (#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
Perspectivepane based on the FINOS Perspective library (#2034)Implement
--autoreloadfunctionality for the Panel server (#1983)Add
--warmoption 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.servenow supports serving static files and Bokeh apps, not just Panel apps (#1939)Add a
TrendIndicatorfor conveniently showing history and value of a numeric quantity (#1895)Add
TextToSpeechwidget (#1878)Add
SpeechToTextwidget (#1880)Add
loadingparameter and spinners to all components (#1730, #2026)Add
IDOMpane to develop interactive HTML components in Python (#2004)Add powerful new
Tabulatorwidget for flexible and configurable display of tabular data (#1531, #1887)
Enhancements:
Add watch argument to
bindfunction so that covers all the features of pn.depends (#2000)Add
formatparameter to DatetimeRangeInput widget (#2043)Allow
ParamMethodandParamFunctionto evaluate lazily (#1966)Add
value_inputparameter to TextInput widgets (#2007)Implement
Glyph3dMappersupport forVTKpanes (#2002, #2003)Add Jupyter server extension to serve resources (#1982)
Enhancements for
DarkTheme(#1964)Add
refreshfunctionality toFileSelector(#1962)Add support for Auth0 authentication (#1934)
Avoid recursive preprocessing slowing down rendering (#1852)
Add support for per-layer tooltips on
DeckGLpane (#1846)Add
Viewerbaseclass for custom user components (#2045)
Bug fixes:
Fixed
FileSelectorfile icon on selected files (#2046)Drop query args when checking URLs (#2037)
Fix
Card.header_backgroundpropagation (#2035)Disable
GoldenTemplatesidebar when empty (#2017)Ensure
Card.collapsedandAccordion.activeparameters are synced (#2009)Fix inline resources when saving (#1956)
Switch
Parampane widget type when bounds (un)defined (#1953)
Compatibility:
Updated
EChartspane 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)
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)
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 BytesIO/StringIO buffers as input to image panes (#1711)
Fix out-of-bounds errors when assigning to
GridSpecwith fixed ncols (#1721)Fix deserialization issues for
Plotly.hover_data(#1722)Fixed updating of
Alertparameters 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
EChartsandipywidgetrerender when inCard(#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:
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
WidgetBoxCSS (#855)Fix CSS load order in Templates (#1698)
Allow setting
DiscreteSliderorientation (#1683)Ensure JS callbacks and links are only set up once on templates (#1700)
Initialize pipeline only once (#1705)
Allow using
NumberInputasParampane 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:
Add
CardandAccordionlayout (#1262, #1266, #1267, #1616, #1619)Location component (#1150, #1297, #1357, #1407, #1498, #1519, #1532, #1638, #1658)
VTK improvements: colorbars (#1270), synchronization (#1248, #1637), orientation widget (#1635), volume controller (#1631), serialization (#1596), follower (#1451)
Add default templates (#1277, #1374, #1419, #1421, #1459, #1472, #1473, #1479, #1530, #1535, #1608, #1617, #1645, #1647, #1650, #1660, #1661, #1662, #1677, #1682, #1685, #1687)
Improvements for ipywidgets support (#1285, #1389, #1476, #1675)
Add
pn.state.busyandpn.state.onloadcallback (#1392, #1518)Add ability to declare OAuth provider (#820, #1468, #1470, #1474, #1475, #1480, #1508, #1594, #1625)
Add busy/loading indicators and enable on Template (#1493)
Allow serving REST APIs as part of panel serve (#1164)
Add
pn.state.as_cachedfunction (#1526)Add MenuButton widget (#1533)
Add a number of
ValueIndicators(#1528, #1590, #1627, #1628, #1633)Add support for
param.Event(#1600)Add
IntInputandFloatInputwidgets (#1513)Record session statistics on
pn.state.session_info(#1615, #1620, #1634)Bundle external JS dependencies for custom models and templates (#1651, #1655)
Add support for ipympl (interactive mode) on Matplotlib (#1469)
Enhancements:
Allow defining explicit embed states (#1274)
Implement
__add__and__iadd__on layouts (#1282)Add support for hierarchical multi-indexed DataFrame (#1383)
Add
show_indexoption toDataFramewidget (#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:
VTK model compilation (#1669), findPokedRenderer (#1456), misc (#1406, #1409)
Fix parameterized parameter handling (#1584)
Theming improvements (#1670)
JS dependency handling (#1626)
Parameterized: explicit triggering (#1623), strings with None default (#1622)
Docs and examples (#1242, #1435, #1448, #1467, #1540, #1541, #1558, #1570, #1576, #1609)
Many other minor fixes and improvements (#1284, #1384, #1423, #1489, #1495, #1502, #1503, #1507, #1520, #1521, #1536, #1539, #1546, #1547, #1553, #1562, #1595, #1621, #1639)
Backwards compatibility:
Switch away from inline resources in notebook (#1538, #1678)
Viewable.add_periodic_callbackis deprecated; use pn.state.add_periodic_callback (#1542)Use
widget_typeinstead oftypeto override Param widget type in Param pane (#1614)Spinnerwidget is now calledNumberInput(#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.
Fixes for
FileDownloadwidget 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
clonemethod (#1349)Fix for
jslinkon Bokeh models (#1358)Fix for rendering geometries in
Vegapane (#1359)Fix issue with
HoloViewspane overriding selected renderer (#1429)Fix issues with
JSONpane depth parameter and rerendering (#1431)Fixed
param.Dateandparam.CalenderDateparameter mappings (#1433, #1434)Fixed issue with enabling
num_procsonpn.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
DeckGLpane (#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.savewith ability to save to HTML and PNG but not embed (#1224)
Bug fixes:
Fixed formatting of datetimes in
DataFramewidget (#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
FileDownloadandFileInputexample 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](https://github.com/holoviz/panel/issues/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](https://github.com/holoviz/panel/issues/1164))
Fix for saving as PNG which regressed due to changes in bokeh 2.0 (#1165](https://github.com/holoviz/panel/issues/1165))
Allow pn.serve to resolve Template instances returned by a function (#1167](https://github.com/holoviz/panel/issues/1167))
Ensure Template can render empty HoloViews pane (#1168](https://github.com/holoviz/panel/issues/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
Buttonlabel not being applied (#1152](https://github.com/holoviz/panel/issues/1152))Pin pyviz_comms 0.7.4 to avoid issues with undefined vars (#1153](https://github.com/holoviz/panel/issues/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
MultiChoicewidget (#1140](https://github.com/holoviz/panel/issues/1140))Add
FileDownloadwidget (#915, #1146](https://github.com/holoviz/panel/issues/1146))Add ability to define
Sliderformat option (#1142](https://github.com/holoviz/panel/issues/1142))Expose
pn.state.cookiesandpn.state.headersto allow accessing HTTP headers and requests from inside an app (#1143)
Bug fixes:
Ensure
DiscreteSliderrespects layout options (#1144](https://github.com/holoviz/panel/issues/1144))
Removals:
Slider no longer support
callback_policyandcallback_throttleas they have been replaced by thevalue_throttledproperty 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](https://github.com/holoviz/panel/issues/1098)) [@philippjfr]
Bug fixes:
Fix PNG export due to issue with PhantomJS (#1081](https://github.com/holoviz/panel/issues/1081), #1092](https://github.com/holoviz/panel/issues/1092)) [@bstadlbauer, @philippjfr]
Fix for threaded server (#1090](https://github.com/holoviz/panel/issues/1090)) [@xavArtley]
Ensure Plotly Pane does not perform rerender on each property change (#1109](https://github.com/holoviz/panel/issues/1109)) [@philippjfr]
Fix issues with jslink and other callbacks in Template (#1135](https://github.com/holoviz/panel/issues/1135)) [@philippjfr]
Various fixes for VTK pane (#1123](https://github.com/holoviz/panel/issues/1123)) [@xavArtley]
Fixes for .show keyword arguments (#1073](https://github.com/holoviz/panel/issues/1073), #1106](https://github.com/holoviz/panel/issues/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
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
FileSelectorwidget to browse the servers file system and select files (#909)Add
pn.servefunction to serve multiple apps at once on the same serve (#963)Add a
JSONpane 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
Templateroots (#980)Merge FactorRange when linking HoloViews axes (#968)
Expose title and other kwargs on
.show()(#962)Let
FileInputwidget set filename (#956Expose further bokeh CLI commands and added help (#951)
Enable responsive sizing for
Vega/altair pane (#949)Added encode parameter to
SVGpane (#913)Improve
Markdownhandling 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
VTKview (#817)Add config option for
safe_embedwhich ensures all state is recorded (#1040)Implemented
__signature__for tab completion (#1029)
Bug fixes
Fixed
DataFramewidget 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
Paramsubobject (#965)Ensure
load_notebookis executed only once (#1000)Fixed bug updating
StaticTexton server (#964)Do not link
HoloViewsaxes with different types (#937)Ensure that integer sliders are actually integers (#876)
Ensure that
GridBoxcontents 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
Paramreference notebook (#944)Added
Dividerreference 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)
New widgets and panes:
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](https://github.com/holoviz/panel/issues/775))
Bug fixes and minor improvements:
Improved fancy layout for scrubber (#571)
Improved JSON embedding (#589)
Misc fixes and improvements (#626, #631, #645, #662, #681, #689, #695, #723, #725, #738, #743, #744, #748, #749, #758, #768, #772, #774, #775](https://github.com/holoviz/panel/issues/775), #779, #784, #785, #787, #788, #789)
Prepare support for python 3.8 (#702)
Documentation:
Add Comparisons section (#643)
Docs fixes and improvements (#635, #670, #705, #708, #709, #740, #747, #752)
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:
Restore logging messages that were being suppressed by the distributed package (#682)
Misc other bug fixes and improvements (#575, #588, #649, #654, #657, #660, #667, #677)
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.periodto 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:
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.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
Spinnerwidget 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 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
labelfor Parameters (#290)Add ColorPicker widget (#267)
Add support for interact title (#266)
Bugfixes and minor improvements:
Combine HTML and JS in MIME bundle to improve browser compatibility (#327)
Inlined subobject expand toggle button (#329)
Use Select widget for ObjectSelector consistently to avoid issues with short lists and numeric lists (#362)
Various small improvements (#238, #245, #257, #258, #259, #262, #264, #276, #289, #293, #307, #313, #343, #331)
Various bugfixes (#247, #261, #263, #282, #288, #291, #297, #295, #305, #309, #322, #328, #341, #345, #354, #364)
Changes potentially affecting backwards compatibility:
Refactored io subpackage (#315)
Moved panes and widgets into subpackage (#283)
Renamed pane precedence to priority to avoid confusion with Param precedence (#235)
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)
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.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:
Fix example packaging (#177)
Various bugfixes and compatibility improvements (#126, #128, #132, #136, #141, #142, #150, #151, #154, etc.)
Compatibility changes
Renamed Param expand options (#127)
Version 0.1.3
Date: 2018-10-23T12:09:07Z