Releases: holoviz/panel
Version 1.3.7
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_by
toChatMessage.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 alignment issues in chat components (#6104, #6135)
- 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
Matplotlib
pane (#6128) - Ensure icon displays inline with text on
FileDownload
(#6133) - Fix styling of links in
Tabulator
fast theme (#6146) - Fix passing of
card_params
onChatFeed
(#6154) - Handle
Tabulator.title_formatter
if is typedict
(#6166) - Fix
per_session
caching (#6169) - Correctly reshape nd-arrays in
Plotly
pane (#6174) - Handle NaT values on
Perspective
pane (#6176) - Do not rerender output if
ReplacementPane
object 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
TextEditor
to support being rendered in the Shadow DOM (#6222) - Add guard to
Tabulator
ensuring that it does not error when it is not rendered (#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
Design
andTheme
explanation documentation (#4741) - Fix pyodide execution in documentation
- Fix wrong and broken link (#5988, #6132)
- Use GoatCounter for website analytics (#6117)
- Add Dask How to guide (#4234)
- Fix
Material
template 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
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 fromNone
to0
(#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
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
andGeoSeries
inDataFrame
pane (#6061) - Optimize rendering of
ChatMessage
(#6069) - Apply smaller optimizations for
Viewable
andChatMessage
(#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 onHoloViews
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
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
ChatInterface
buttons (#5839)
Bug fixes
- Fix regression when setting
text_align
andHTMLTemplateFormatter
onTabulator
(#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
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
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 onChatMessage
andChatFeed
(#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 ifTabulator
is given Bokehformatter
(#5866) - Fix
FileDownload
embed=True
style forFast
design (#5875) - Enable
Tabulator
selection across pages withpagination="remote"
andselectable="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
andconfig
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
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 noid_token
is present in cookies (#5747) - Fix
Widget.from_param
type annotation (#5754) - Fix auto send for
ChatInterface
withTextAreaInput
(#5762) - Add support for iframe
srcdoc
onLocation
(#5774) - Ensure
Tabulator.style
applies correctly with changing data (#5757) - Ensure
panel convert
can correctly detecttransformers_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
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
,ChatFeed
andChatInterface
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
onTextAreaInput
(#5592) - Add ability to redirect users from authorization callback (#5594)
- Add support for
Path
object inFileDownload
(#5607) - Add authorization_code and password based OAuth login handlers (#5547)
- Add format to
EditableFloatSlider
andEditableIntSlider
(#5631) - Add support for decorating async functions with
pn.io.cache
(#5649) - Map
param.Bytes
toFileInput
widget (#5665)
Bug fixes
- Fixes for
Column
invisiblescroll_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
andbrowser_info
are loaded whenHoloViews
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
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
/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
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
andpn.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
topanel.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 addrenderer_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 inDeckGL
(#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
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_notification
andconfig.ready_notification
(#5244) - Add
Vizzu
tooltip support and allow animations when data is updated (#5258) - Style tweaks for
Card
andSelect
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
andmax_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)