Releases: holoviz/panel
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)
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
append
mode for reactive generator output (#5129) - Upgrade to
Tabulator
5.5 (#5182) - Add support for
LoadingSpinner
label (#5194) - Add the
editable
parameter toPerspective
(#5211) - Add support for setting
theme_classes
onTabulator
(#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
tonull
(#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
Compatibility
Version 1.1.1
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_session
cache (#5117) - Enhancements for
ChatBox
including methods to update rows and hide names (#5118, #5118)
Bug fixes
- Fix
Progress
indicatorsizing_mode
(#5051) - Fix various
ChatBox
issues (#5065, #5101, #5101) - 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
throttled
oronkeyup
(#5078) - Allow to updating/clearing
enabled_dates
onDatetimePicker
(#5089) - Ensure session arguments are correctly parsed by Jupyter executor (#5106)
- Fix
defer_load
handling (#5107) - Fix styling with filters in
Tabulator
(#5110) - Fix issues when using
in
filter with single value on Tabulator (#5125) - Add fallback if
ReactiveHTML
shadow 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
ColumnDataChangedEvent
fixingPlotly
plots 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
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
ChatBox
widget (#4702) - Add a standalone
TooltipIcon
indicator (#4909) - Implement support for reactive generator functions (#5019)
- Allow setting
on_*
handlers in constructor (#5026) - Allow controlling initial
Template
sidebar state (#5033)
Bug fixes
- Handle height responsiveness of
HoloViews
layout correctly (#5009) - Apply
Plotly
toolbar colors depending on template (#5012) - Fix Fast
Design
style variables (#5015) - Allow reactive updates to override constant parameters (#5032)
- Fix
Tabulator
header filter styling (#5038) - Ensure Jupyter extensions warns users if app has no contents (#5041)
Version 1.0.4
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
IPyWidget
model (#4939) - Fix recursive and inplace updates on reactive panes (#4946, #4958)
- Fix issues with single
Select
widget (#4947) - Ensure CSS
config
parameters can be passed toTemplate
constructor (#4948) - Fixed vizzu data series type conversion for datetime (#4955)
- Small documentation fixes (#4943, #4960)
- Fix
icon
onToggle
andButton
widget (#4961) - Fix Volume definition on
Video
pane - Ensure icon renders on
Toggle
button (#4969) (#4970) - Ensure
Card.header_color
is correctly applied (#4971) - Update
param.List
signatures to suppress warnings (#4973) - Fix font loading in
VanillaTemplate
(#4975) - Guard is_file check on Windows (#4985)
- Fix serialization of
Plotly.selection_data
(#4987) - Speed up dynamic layout updates (#4989)