Skip to content

Releases: holoviz/panel

Version 1.3.6

Choose a tag to compare

@philippjfr philippjfr released this 20 Dec 18:14

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 ChatReactionIcons alignment and trigger reactions correctly (#6086)
  • Change Column scroll_position default value from None to 0 (#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

Choose a tag to compare

@philippjfr philippjfr released this 18 Dec 17:23

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 Fast template styling (#6023)
  • Replace Player widget unicode icons with SVG for more consistency (#6030)
  • Elaborate on ChatInterface callback exception summary (#6046)
  • Add ToggleIcon widget (#6034)
  • Use minified Tabulator.js ([#6060]#6060))
  • Support rendering GeoDataFrame and GeoSeries in DataFrame pane (#6061)
  • Optimize rendering of ChatMessage (#6069)
  • Apply smaller optimizations for Viewable and ChatMessage (#6074)
  • Add bottom padding to MaterialTemplate (#6075)
  • Update mapbox-gl version for DeckGL pane (#6077)

Bug fixes

  • Remove duplicate property definition of VizzuChart.config (#5947)
  • Remove stray print in Tabulator styler handling (#5944)
  • Fix bug when clearing pn.cache before anything has been cached (#5981)
  • Fix obj.save() when threading is enabled (#5993)
  • Fix Matplotlib responsiveness and improve reference notebook (#5973)
  • Gracefully handle non-decodable access_token (#5994)
  • Ensure onload callbacks scheduled during or after load are still executed (#6005)
  • Don't attempt to set Tabulator text_align on Bokeh formatters that don't support it (#6010)
  • Correctly set error page to be rendered on auth failure (#6014)
  • Fix ChatInterface post 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 ChatMessage reactions icon rendering (#6034)
  • Fix issues with ChatInterface stop ensuring send button is re-enabled and placeholder removed (#6033)
  • Ensure that Design does not override properties on HoloViews pane (#6051)
  • Ensure async callbacks correctly dispatch events when Websocket is locked (#6052)
  • Fix state.add_periodic_callback when 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.langchain import lazy improving import time (#6056)
  • Change prominence of TooltipIcon (#6057)

Documentation

  • Improve reactive expression notebook (#5960)
  • Document requirement to install pyviz_comms in same env as Jupyter (#5980)
  • Update documentation's pyodide version to use version from panel.io.convert (#5996)

Version 1.3.4

Choose a tag to compare

@philippjfr philippjfr released this 29 Nov 18:24

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 ChatInterface buttons (#5839)

Bug fixes

  • Fix regression when setting text_align and HTMLTemplateFormatter on Tabulator (#5922)
  • Ensure notifications are correctly destroyed (#5924)
  • Fix header overflow issues in FastGridTemplate (#5935)
  • Ensure Audio model respects sizing (#5936)
  • Persist Tabulator selection across pages when pagination='remote' for all selection modes (#5929)
  • Ensure Tabulator styler subset logic is not lost (#5938)
  • Fix regression in OAuth when id_token does not contain user key (#5939)
  • Ensure Vega/Altair plot with responsive width/height respects fixed width/height value when set (#5940)
  • Ensure BrowserInfo is 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 SVG pane reference docs (#5934)

Version 1.3.2

Choose a tag to compare

@philippjfr philippjfr released this 22 Nov 15:11

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 config attribute 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_strategy parameter (#5832)
  • Use stdlib_module_names when determining pyodide dependencies (#5818)
  • Add Tabulator.sortable parameter (#5827)
  • Add delay for tooltip to show up for buttons (#5860)
  • Add serialize method on ChatMessage and ChatFeed (#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_align correctly if Tabulator is given Bokeh formatter (#5866)
  • Fix FileDownload embed=True style for Fast design (#5875)
  • Enable Tabulator selection across pages with pagination="remote" and selectable="checkbox" (#5889)
  • Fix rendering of VTK colorbar (#5902)
  • Ensure HoloViews DynamicMap updates when widget dimension has unit (#5904)
  • Add space between MaterialTemplate app 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 extension and config docs (#5790)
  • Document setting a multiselect header filter on Tabulator (#5825)
  • Add missing GridSpec docs (#5840)
  • Fix for getting_started widgets example (#5859)
  • Add more references to Panel Chat Examples (#5881)
  • Document Tabulator fontawesome css (#5892)
  • Fix broken link to panel tagged items in holoviz blog (#5903)
  • MenuButton docs improvements (#5907)

Version 1.3.1

Choose a tag to compare

@philippjfr philippjfr released this 31 Oct 16:50

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 ColorMap widget correctly handles shared layout and display parameters (#5732)
  • Fix accessing refreshed access_token (#5734)
  • Ensure Markdown code blocks always wrap (#5738)
  • Fix returning state.user_info if no id_token is present in cookies (#5747)
  • Fix Widget.from_param type annotation (#5754)
  • Fix auto send for ChatInterface with TextAreaInput (#5762)
  • Add support for iframe srcdoc on Location (#5774)
  • Ensure Tabulator.style applies correctly with changing data (#5757)
  • Ensure panel convert can correctly detect transformers_js import (#5772)
  • Adjust ReactiveHTML css 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 ReactiveExpr reference docs and change default widget location (#5755, #5760)
  • Fix pyscript WASM example (#5771)
  • Improve documentation for deep linking docs (#5752)

Version 1.3.0

Choose a tag to compare

@philippjfr philippjfr released this 24 Oct 08:01

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, ChatFeed and ChatInterface components (#5333)
  • Unify OAuth implementations and refresh access_token (#5627)
  • Add ColorMap widget (#5647)

Enhancement

  • Add unit to widget in HoloViews pane if provided (#5535)
  • Allow registering global on_session_destroyed callback (#5585)
  • Implement auto_grow on TextAreaInput (#5592)
  • Add ability to redirect users from authorization callback (#5594)
  • Add support for Path object in FileDownload (#5607)
  • Add authorization_code and password based OAuth login handlers (#5547)
  • Add format to EditableFloatSlider and EditableIntSlider (#5631)
  • Add support for decorating async functions with pn.io.cache (#5649)
  • Map param.Bytes to FileInput widget (#5665)

Bug fixes

  • Fixes for Column invisible scroll_button taking space (#5532)
  • Guard undefined values from being set on BrowserInfo (#5588)
  • Fix thumbnails and use Panel design on index page (#5595)
  • Fix regressions in TextEditor caused by migration to shadow DOM (#5609)
  • Sync location state from request (#5581)
  • Fix Select widget label offset in Material Design (#5639)
  • Override token contents when reusing sessions (#5640)
  • Fix patching a table with a DataFrame with a custom index (#5645)
  • Set FloatPanel status correctly on initialization (#5651)
  • Fix patching table with pd.Timestamp values (#5650)
  • Ensure notifications and browser_info are loaded when HoloViews is loaded (#5657)
  • Gracefully handle resolution of invalid paths in _stylesheets (#5666)
  • Handle patching tables with NaT values (#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

Choose a tag to compare

@philippjfr philippjfr released this 18 Sep 09:39

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 /logout endpoint now serves configurable template (#5514)
  • Add options to sanitize HTML panes (#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 convert requirements 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 TextEditor correctly detects selections and renders HTML (#5511)
  • Fix Markdown rendering with the MyST parser (#5497)
  • Fix OAuth login endpoint when --prefix is set (#5492)

Documentation

  • Update outdated DateRangeSlider.step documentation (#5510)

Version 1.2.2

Choose a tag to compare

@philippjfr philippjfr released this 01 Sep 17:23

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_formatters parameter (#5421)
  • Provide the the accessed path to authorization checks (#5386)
  • Add Perspective click events (#5430)
  • Add and improve pn.io.hold and pn.io.immediate_dispatch context managers to control events (#5444)
  • Allow to passing basic_login_template argument to panel server (#5454)

Bug fixes

  • Ensure BasicAuth forwards to original URL after login (#5357)
  • Correct return types from threading.Thread to panel.io.server.StoppableThread (#5396)
  • Various guards and fixes ensuring Tabulator re-renders correctly (#5410, #5412)
  • Avoid extra executions when executing periodic callback with counter (#5344)
  • Ensure updates to DataModel are correctly scheduled on the event loop (#5360)
  • Fixes for displaying single newlines in Markdown output and add renderer_options (#5376)
  • Allow update of Accordion title without updating content (#5413)
  • Fix authentication handling when prefix is set (#5422)
  • Fix serialization issues affecting TextLayer objects in DeckGL (#5427)
  • Fix height responsiveness of Perspective pane (#5429)
  • Ensure FileDownload button can be clicked anywhere (#5431)
  • Ensure ReactiveHTML children are rendered just like other models (#5434)
  • Set Perspective properties correctly to avoid causing unfocus on keypresses (#5432)
  • Ensure FloatPanel correctly exposes its children to allow linking (#5433)
  • Do no reset Tabulator options 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 Accordion CSS to remove gaps and avoid border overlap (#5460)
  • Ensure columns are deleted when updating traces on Plotly pane to avoid corruption (#5464)
  • Invalidate layout when TextEditor CSS loads (#5465)
  • Ensure FloatPanel reflects closed status (#5466)
  • Fix handling of string dtypes on Perspective pane (#5467)

Documentation

  • Fix incorrectly linked images in streamlit migration guide and VSCode guide (#5327, #5329)
  • Improve developer instructions (#5305, #5380, #5426)

Compatibility

  • Compatibility with param 2.0 watchers (#5350, #5455)

Version 1.2.1

Choose a tag to compare

@philippjfr philippjfr released this 25 Jul 16:39

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_notification and config.ready_notification (#5244)
  • Add Vizzu tooltip support and allow animations when data is updated (#5258)
  • Style tweaks for Card and Select components (#5280)

Bug fixes

  • Ensure GridStack children are sized correctly after render (#5242)
  • Fix Tabulator expanded row rendering (#5253)
  • Fix bug where local PDF pane is rendered as base64 string (#5264)
  • Avoid full re-rendering when updating HTML based components (#5275)
  • Ensure that Design does not trigger unnecessary updates to stylesheets (#5278)
  • Treat Tabulator row_contents as real children ensuring layout behaves correctly (#5292)
  • Fix Video min_height and max_height (#5296)
  • Make TextEditor invisible until CSS is loaded (#5297)
  • Fix disabled parameter 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

Choose a tag to compare

@philippjfr philippjfr released this 06 Jul 11:28
c229467

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 append mode for reactive generator output (#5129)
  • Upgrade to Tabulator 5.5 (#5182)
  • Add support for LoadingSpinner label (#5194)
  • Add the editable parameter to Perspective (#5211)
  • Add support for setting theme_classes on Tabulator (#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 ChatBox bubble width (#5172)
  • Fix Tabulator.visible handling (#5182)
  • Fix programmatic updates to Tabulator.page (#5187)
  • Ensure bokeh events generated in pyodide convert None to null (#5191)
  • Improve notebook detection (#5201)
  • Reduce priority of _repr_<img>_ to ensure _repr_html_ takes precedence (#5217)
  • Ensure we do not modify Tabulator.hidden_columns inplace (#5218)
  • Alignment and styling fixes for text input and button widgets (#5219)
  • Fix updates to Plotly nested properties such as selections (#5227)

Documentation

  • Add Streamlit migration guide (#5027)
  • Improve defer_load how-to guide (#5112)

Compatibility

  • Remove markdown-it-py pins (#5159)
  • Forward compatibility fixes for Param 2.0 (#5169, #5198)
  • Compatibility with Bokeh 3.2 (#5185)