Releases: holoviz/panel
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_to
a particular object onColumn
(#7206) - Add pointer when hovering on
Markdown
copy button (#7490) - Allow streaming to
ChatStep
(#7520) - Improve
ChatMessage
repr (#7521) - Add
ChatInterface
button tooltips (#7552)
Bug fixes
- Ensure Notifications are cleaned up correctly (#4964)
- Ensure
FileDownload
label text updates correctly (#7489) - Fix
Tabulator
aggregation behavior (#7450) - Fix typing for
.servable
method (#7530) - Ensure
NestedSelect
respectsdisabled
parameter (#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
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
DatetimeSlider
widget (#7374) - Improve Jupyter preview error handling (#7434)
- Add copy button to
Markdown
codeblocks (#7451) - Various improvements for writing ESM components (#7462)
- Log authorization callback errors (#7463)
- Support polars in
pn.cache
(#7472) - Improve and document
hold
utility (#7474) - Improve how
panel compile
collects 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
Children
parameter correctly resolves when multiple types are defined (#7454) - Fix issues using Jupyter Preview with notifications enabled (#7466)
- Ensure
HTML
/Markdown
streaming does not freeze during rapid updates (#7480) - Ensure
Plotly
sizes 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_info
object (#7382) - Allow loading custom component ESM bundles from URL (#7410, #7412)
Bug fixes
- Address issues with
Tabulator
embed_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._importmap
typing (#7392) - Ensure that autoreload records modules to watch before startup (#7399)
- Prevent
Tabulator
from overlapping whenmax_height
is set (#7403) - Do not mutate layout
Children
inplace (#7417) - Set
Tabulator
null formatter to empty string (#7421) - Ensure Tabulator table content does not overflow (#7425)
Compatibility
- Upgraded
Tabulator
version to 6.3 (#7419)
Documentation
Version 1.5.2
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
Tabulator
data (#7336) - Fix Fast template theme toggle color (#7341)
Documentation
Version 1.5.1
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.selection
consistency whenpagination='local'
(#7304) - Correctly handle ipv6 localhost URI in
Location
(#7316) - Ensure resource URLs are handled correctly in all server implementations (#7318)
- Ensure
Plotly
datetime are correctly converted from timestamp to date string (#7319)
Regressions
- Only postpone
--setup
script until after server startup if--num-procs
is 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
Tabulator
cells (#7291) - Clarified wording in best practices docs (#7290)
- Minor tweaks for the
FileDropper
(#7307) - Ensure docs consistently recommend
--dev
over--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
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
JSComponent
andReactComponent
(#5593) - Add
Placeholder
pane (#6790) - Add
FileDropper
widget (#6826) - Add
ChatStep
component to show/hide intermediate steps (#6617) - Add
TimePicker
widget (#7013) - Add
PyComponent
baseclass (#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
autoreload
robust to syntax errors and empty apps (#7028) - Add support for automatically determining optimal
Tabulator.page_size
(#6978) - Various typing improvements (#7081, #7092, #7094, #7132)
- 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
HTML
andMarkdown
panes (#7125) - Show
Player
interval value on click (#7064) - Expose
Player
options to scale and hide buttons (#7065) - Add
on_keyup
andvalue_input
forCodeEditor
(#6919) - Detect WebGL support on
BrowserInfo
(#6931) - Tweak
ChatMessage
layout (#7209, #7266) - Add nested editor to
Tabulator
(#7251) - Support anchor links in
HTML
andMarkdown
panes (#7258, #7263)
Bug fixes
- Ensure
Gauge
is responsively sized (#7034) - Ensure
Tabulator
sorters
are correctly synced (#7036) - Ensure
Tabulator
selection
is consistent across paginated, sorted and filtered states (#7058) - Do not propagate clicks on input elements in
Card
header (#7057) - Ensure
Tabulator
range selection applies to current view (#7063) - Ensure
Tabulator.selection
is updated when indexes change (#7066) - Ensure
Tabulator
can be updated with None value (#7067) - Fix issues with PYTHONPATH in Jupyter Preview (#7059)
- Ensure
Tabulator
styling is correctly applied on multi-index (#7075) - Fix various scrolling related Tabulator issues (#7076)
- Ensure
Tabulator
data is updated after filters are changed (#7074) - Allow controlling
DataFrame
pane header and cell alignment (#7082) - Highlight active page in
Tabulator
using Fast Design (#7085) - Ensure follow behavior works when streaming to paginated
Tabulator
(#7084) - Avoid events boomeranging from frontend (#7093)
- Correctly map
Tabulator
expanded indexes when paginated, filtered and sorted (#7103) - Ensure custom
HoloViews
backends do not error out (#7114) - Ensure events are always dispatched sequentially (#7128)
- Ensure
'multiselect'
Tabulator.header_filter
uses '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
LaTeX
pane MathJax rendering (#7188) - Ensure OAuth expiry is numeric and can be compared (#7191)
- Correctly detect max depth of
NestedSelect
if level is empty (#7194) - Make
--setup
/--autoreload
/--warm
work with--num-procs
(#6913) - Ensure error rendering application does not crash server (#7223)
- Refactor
state.notifications
to fix pyodide (#7235) - Handle setting None value on
DateRangePicker
(#7240) - Add header_tooltips parameter to
Tabulator
(#7241) - Fix issue using
Tabulator.header_filter
with recent Pandas versions (#7242) - Fix setting of
Dial
background (#7261) - Fix issues when loading multiple times in a Jupyter(Lab) session (#7269)
Compatibility and Updates
- Update to Bokeh 3.5.x
- Update
Tabulator
to 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
Version 1.4.5
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
Design
is applied globally when using global templates (#6992) - Do not re-render all children when expanding Tabulator row (#7008)
- Allow providing
DataFrame
as part of vega(-lite) spec (#6979, #7024) - Make autoreload robust to syntax errors and empty apps (#7028)
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
Feed
maintains scroll position (#6984) - Ensure correct Document is set after liveness session cleanup (#6988)
- Fix issue detecting PyScript worker (#6998)
- Fix
FileDownload
icon alignment (#6981) - Ensure redraw does not error out if
Tabulator
is undefined (#6930) - Guard auth against user being removed (#6908)
- Fix empty
Vega
pane withsizing_mode
exception (#7020) - Ensure
Gauge
is responsively sized (#7034) - Ensure
Tabulator
sorters are correctly synced (#7036) - Improve font-size and alignment in Bootstrap Card header (#7037)
- Do not sync
StaticText.value
with the frontend (#7038)
Documentation
- Add crossfiltering dashboard tutorial (#6630)
- Add server video stream tutorial (#6727)
- Improve
Param
pane docstring (#6989) - Fix streamz reference notebook (#6980)
- Document that
Image
pane is a wrapper around PNG, JPEG, PDF etc. panes (#7004) - Fix missing scrollbar in Fast template docs (#7026
- Improve server video tutorial (#7027)
Version 1.4.4
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
Tabulator
does not rebuild children when usingembed_content
withrow_content
(#6881) - Ensure
ParamRef
,ParamFunction
andParamMethod
resolve synchronous generators asynchronously (#6885) - Ensure periodic callback cleanup does not error on session warmup (#6886)
Documentation
Version 1.4.3
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_icons
reactive (#6807) - Allow external library to define additional socket handler (#6820)
- Allow navigating
FileSelector
with 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
Design
modifiers (#4978) - Ensure refreshed tokens can be accessed across processes (#6817)
- Ensure binary buffers are correctly extracted in notebook
CommManager
(#6818) - Make
Tabulator
resize handling more robust (#6821) - Fix links in
panel convert
index (#6828) - Suppress keyboard shortcuts in notebook output (#6825)
- Ensure we don't error out when
FastDesignProvider
is undefined (#6832) - Ensure model changes are applied while session is starting (#6835)
Documentation
- Refactor the
hvplot.interactive
tutorial 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
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.serialize
and properly replace placeholder for streams (#6734) - Remove
Perspective.toggle_config
which was erroneously reintroduced in 1.4.1 (#6721) - Fix dynamically setting
ChatMessage
footer_objects
/header_objects
(#6705) - Allow
Location.sync
of 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
VTK
nan, above and below colors are serialized (#6763) - Fix issues with
Perspective
theme and persist config when switching plugins (#6764) - Do not restore unmodified parameters in
config.set
triggering undesirable side-effects (#6772) - Make autoreload module cleanup more robust (#6771)
- Ensure that cache
.clear()
clears the correct function (#6781)