Releases: holoviz/panel
Release list
Version 1.3.6
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
ReactiveExprrenders in pyodide (#6097) - Ensure
TooltipIcondescription can be updated (#6099) - Fix IPyWidgets rendering in
BootstrapTemplate(#6100) - Fix padding and alignment of
FileDownload(#6101)
Version 1.3.5
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]#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
Version 1.3.4
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
Version 1.3.2
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)
- Support for rendering into DOM from PyScript Next worker (#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
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
Version 1.3.0
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
Version 1.2.3
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
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
- Fix incorrectly linked images in streamlit migration guide and VSCode guide (#5327, #5329)
- Improve developer instructions (#5305, #5380, #5426)
Compatibility
Version 1.2.1
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)
- Various smaller documentation fixes ([#4821], #5249, #5266)
- 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
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) - 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) - 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)