Changelog
Solara Changelog
Version 1.42.0
- Feature: Mutation detection is now available under the
SOLARA_STORAGE_MUTATION_DETECTION
environmental variable. #595. - Feature: Autofocusing text inputs is now supported. #788.
- Feature: Custom colours are now supported for the Solara loading spinner. #858
- Bug Fix: Echarts responsive size is now properly supported. #273.
- Bug Fix: Some version checks would prevent Solara from starting. #904.
- Bug Fix: Solara apps running in qt mode (
--qt
) should now always work correctly. #856. - Bug Fix: Hot reloading of files outside working directory would crash app. 069a205 and #869.
Version 1.41.0
- Feature: Support automatic resizing of Altair (Vega-Lite) figures. #833.
- Feature (Experimental): Support running Solara applications as standalone QT apps. #835.
- Feature: Add option to hide "This website runs on Solara"-banner. #836.
- Feature: Support navigating to hashes. #814.
- Bug Fix: Chunks and assets in nbextensions would fail to load. 9efe26c.
- Bug Fix: Vue widget decorator now always uses absolute paths. #826.
Version 1.40.0
- Feature: In Jupyter Notebook and Lab, Solara (server) now renders the ipypopout window instead of Voila #805
- Feature: Support styling input field of ChatInput component. #800.
- Feature: InputTextArea component for multi line text input. #801. Contributed by Alonso Silva
- Bug Fix: Markdown links triggered a JavaScript error. #765
Version 1.39.0
- Feature: Add option to start Solara server on a random unused port (using
--port=0
). #762 - Bug Fix: Extension checking for e.g. ipyleaflet now work correctly on Amazon SageMaker Studio Lab. #757
- Bug Fix: Various solara components should now work correctly in notebooks viewed on vscode, colab and voila. #763
Version 1.38.0
- Feature: We detect and warn when there are possible reverse proxy or uvicorn misconfigurations. #745
- Bug Fix: Auth redirect did not respect SOLARA_BASE_URL. #747
- Bug Fix: Support for
websockets >= 13.0
and large cookies. #751 - Bug Fix: Windows support was broken from version 1.35.0 to 1.37.2. This went undetected due to a CI configuration error. #712 #739
Version 1.37.2
- Bug Fix: If matplotlib was imported before solara, we did not set the backend, now we do. #741
Version 1.37.1
- Bug Fix: The newly introduced hooks validator could emit a warning on certain call syntax. This can fail CI pipelines that do now allow warnings c7c3b6a.
Version 1.37.0
Feature: We now check if a component follows the rules of hooks https://solara.dev/documentation/advanced/understanding/rules-of-hooks #706
Use SOLARA_CHECK_HOOKS=off to disable this check in case this gives unexpected issues, and please open an issue. * Fix: solara-server skips directories when reading extensions which might cause a startup failure otherwise #715
Version 1.36.0
- Feature: Provide a jupyter-widgets-popout-container css class on body for doing specific styling in combination with ipypoout 85c1899
Version 1.35.1
- Bug Fix: Vulnerability which allowed for accessing any file on the system. CVE-2024-39903 391e212.
- Bug Fix: On windows we now read all text files (like CSS) with utf8 encoding by default 681f69b
Version 1.35.0
- Feature: On slower systems, pytest-ipywidgets could time out when connecting to the app,
PYTEST_IPYWIDGETS_SOLARA_APP_WAIT_TIMEOUT
can be set to increase the timeout. c302caf and Our testing docs. - Bug Fix: The sidebar container did not have
height: 100%
set, causing the sidebar to not fill the entire height of the page. 5358f0f - Bug Fix: Vulnerability which allowed for accessing any file on the system. CVE-2024-39903 391e212. A follow up fix was need for this in 1.35.1, we recommend upgrading to that version.
- Bug Fix: Allow the FileBrowser to navigate to the root on Windows 707 - Contributed by Jochem Smit.
Version 1.34.1
- Bug Fix: Using
SOLARA_ASSETS_PROXY=False
(default on py.cafe) would break grid layout. #705 - Bug Fix: Hot reload work in more situations on Linux. #702
Version 1.34.0
- Feature: Enhancements for Solara
InputDate
andInputDateRange
components #672:- Limiting allowed dates with
min_date
andmax_date
arguments. - Monthly granularity with
date_picker_type="month"
. InputDateRange
selection can be sorted in ascending order withsort
argument.
- Limiting allowed dates with
- Bug Fix: Typo in
solara.Tooltip
. #695 - Bug Fix:
ipywidgets.Accordion
content was not hidden when closed. #694 - Bug Fix:
solara.Tooltip
would break any functionality in it's children that relied on theblur
,keydown
, orfocus
events. #696 - Bug Fix: Raise an error instead of showing a custom page on 404. Enables custom 404 pages in Solara apps. #670
- Bug Fix: Prevent broken installation by restricting Numpy version. #687 and
286e196
.
Version 1.33.0
Details
- Feature: Add support for
color
argument tosolara.Switch
. #658 - Bug Fix: Support
define
for ES Modules when running with virtual kernel. #668 - Bug Fix: Typo in
NameError
message. #666 - Bug Fix: Show
solara.AppBar
when navigation tabs are the only child. #656 - Bug Fix: PermissionError for nbextensions on startup in
solara>=1.29
. #648
Version 1.32.2
Details
- Bug Fix: Theme change not behaving correctly for
solara.Markdown
andipywidgets
. #636
Version 1.32.1
Details
- Bug Fix:
solara.display
not working when running a solara server in production mode, or when running a Solara app with flask. #622 - Bug Fix:
solara.Markdown
would raise aNameError
ifpymdown-extensions
was not installed. #621
Version 1.32.0
Details
- Feature: Support for multiple custom asset locations. #602
- Refactor: Improve API for working with third-party dataframes. #600
- Bug Fix: Give task results more unique keys. #609
- Bug Fix: Avoid closing kernel multiple times. e5ca67b
- Bug Fix: Make
page_close
beacon thread safe. 2501c83 - Bug Fix: Viewing embedded Solara application in fullscreen could cause a Reacton error. #603
- Bug Fix: Remove fade when navigation is done from a thread/task. #594
- Bug Fix: Support Pydantic 1 and 2 in reactive variables. #601
Version 1.31
We changed solara from a single package into multiple packages.
The solara
package is a meta package that installs all the necessary dependencies to get started with Solara. By default, we install:
Notebook users can simply install solara-ui
if they do not need the solara-server. Read our installation guide for more information.
Version 1.30.1
Details
- Bug Fix: Serialization error from attempt to serialize default event handles in
component_vue
. 793cbb1 - Bug Fix:
on_kernel_start
callback cleanups could have been triggered multiple times. 4b75ca9 - Bug Fix: Autorender did not render child routes. #575
Version 1.30.0
Details
- Feature: Multiple file support for
FileDrop
. #562 - Feature: Solara server is now compatible with Pyodide (threads are combined if they cannot be used). #569
- Bug Fix: Nested Vuetify apps were not displayed correctly. #570
- Bug Fix:
on_kernel_start
callbacks were accumulating on hot reload. #556 - Bug Fix: ES Modules were being loaded multiple times on hot reload. #559
- Bug Fix: Theme CSS was not loaded when
rootPath
was non-trivial. 829946c - Fix:
Route.component
is now rendered, instead of the internalRenderPage
component. #555 - Fix:
Route.layout
now allows for layouts to be used when defining routes manually. #554 - Fix: Allow custom command like arguments that can be parsed by the application. #558
Version 1.29.1
Details
Version 1.29.0
Highlights
- Feature: Improved matplotlib support (pylab interface, display support) making it work more similar as in Jupyter. #540
- Feature: use_dark_effective to get the effective dark mode of the app, making it easier to support dark mode on the Python side #551.
Details
- Feature:
/resourcez
endpoint to get server resource statistics #547. - Bug fix: router.push to external links should not use history, allowing navigation to external links 11c6094.
- Bug fix: After upgrading widgets, solara server would still use the previous version due to browser cache #523.
- Bug fix: The example todo app would not work because Ref(..) did not work in combination with use_reactive #544.
Version 1.28.0
Highlight
- Feature: Theming support, including dark theme and auto-detection of device preference #494.
Details
- Feature: Support for ES modules using ipyReact #516.
- Feature: Support for Polars dataframes in
solara.DataFrame
#195 - Bug Fix: User reactive variables sometimes taking on the value of a solara builtin one (issue #510) #514
- Bug Fix: An extra scrollbar sometimes appearing when no
AppBar
orSideBar
was present on the page #477 - Bug Fix: The browser main scrollbar being present on pages with no scrolling enabled #518
Version 1.27.0
Highlight
- Feature: Task support. Lets you run code in the background, with the UI available to the user. This is useful for long running tasks, like downloading data or processing data #461.
- Feature: Provide access to cookies and request headers #501
- Refactor: Replace MathJax with KaTeX for faster math rendering and a lighter package #483
Version 1.26.0
Demo of @solara.lab.computed with
Highlight
- Feature: computed reactive variables which use the return value of the function. The value will be updated when any of the reactive variables used in the function #455.
Details
- Feature: on_kernel_start triggers callback on virtual kernel start #471.
- Bug fix: Altair works in VSCode and Google Colab #488.
- Feature: get_kernel_id and get_session_id for custom storage #452.
- Bug fix: Mermaid and Math rendering in Jupyter Lab and VSCode #480.
Version 1.25.1
Details
- Performance: Removed unnecessary CSS and JS.
- Performance: Quality of Life - JS and CSS resources automatically reloaded on version change.
- Bug fix: overlay disabling navigation for display width < 960px.
Version 1.25.0
Demo of a Chat GPT interface with medical 3d visualization
Highlight
- Feature: Chat interface components for chatbots, chatrooms or conversational elements in your dashboards or apps #384
Details
- Performance: Under starlette, we throttle sending websocket messages to get better performance, this is experimental and can be enabled by setting the
environment variable
SOLARA_EXPERIMENTAL_PERFORMANCE=1
#400 - Performance: Reuse the jinja environment when rendering templates (this also saves memory).
Version 1.24.0
Demo of CSS hot reloading
Highlight
- Feature: Hot reloading of css file used with Style components #396
- Bug fix: display() did not work in threads #398
- Bug fix: Support home directory on Windows.
Details
- Bug fix: Do not trigger re-render due to unneeded state in context #386
- Feature: Show number of widgets created and close when using --timing #387
Version 1.23.0
Demo app 'TimeTrekker'
Demo app 'Wanderlust'
Highlights
- Feature: Solara now has a production mode (enabled by passing in
--production
) which will load optimized CSS and JS and disable hot reloading. Our Solara server page contains more information about it. If you used--reload
or--dev
before you can now use the-a/--auto-restart
flat. The--dev
and--reload
flags are kept for backwards compatibility. - Feature: All
Input
components expose thestyle
andclasses
arguments for custom styling. - Feature: New component:
InputDate
andInputDateRange
which use a datepicker in a menu. (#326) - Feature: The AppLayout component exposes the
style
andclasses
argument for custom styling: #367 - Feature: Initial support for ipyvue and ipyvuetify v3: #364
- Feature: The
InputText
now takes anupdate_events
on argument for custom key combination. This also allows to opt-out of the 'blur' event triggering an on_value: #376 - Bug fix: When using a Sidebar or AppBar we would previously render the main
Page
component twice, this does not happen anymore: #366 - Documentation: Added a "Jupyter dashboard tutorial" part 1.
- Documentation: Added documentation for
use_effect
,use_memo
, and improved the documentation ofuse_thread
. - Example: Added an AI tokenizer app example
- Showcase: Added a reproduction of the OpenAI Wanderlust app to our showcases.
Details
- Feature: Menu supports use_activator_width argument, which can be set to false to not have the menu popup be the same with as the activator which is useful for fixed width components such as a date picker.
- Feature:
- Bug fix: Menu component avoids an extra div around the activator to not interfere with the layout: #345
- Bug fix: Menu could be closed or opened on a re-render.
- Bug fix: Solara server failed to start in Docker when $HOME is not set or not writable.
- Bug fix: Solara server should only try to watch files that exists for hot reloading: #356
- Bug fix: A ToggleButtons component using Buttons with
value=None
would cast it to a string (i.e.value="None"
) : #369 - Bug fix: PyTest based tests using vue_component_registry would fail outside of solara context, tests should run normally now.
- Bug fix: Our monkeypatched Output widget would raise an exception when
get_ipython
returns None such as in pytest based testing. - Bug fix: A custom
Layout
component was ignored when running solara as a module: #368 - Bug fix: A custom title was ignored when running solara as a script.
- Bug fix: When a child component would overrwrite a meta tags, it now overwrites it.
- Bug fix: do not use excessive memory when rendering markdown: #382
Solara Changelog
Version 1.42.0
Version 1.41.0
Version 1.40.0
Version 1.39.0
Version 1.38.0
Version 1.37.2
Version 1.37.1
Version 1.37.0
Version 1.36.0
Version 1.35.1
Version 1.35.0
Version 1.34.1
Version 1.34.0
Version 1.33.0
Details
Version 1.32.2
Details
Version 1.32.1
Details
Version 1.32.0
Details
Version 1.31
Version 1.30.1
Details
Version 1.30.0
Details
Version 1.29.1
Details
Version 1.29.0
Highlights
Details
Version 1.28.0
Highlight
Details
Version 1.27.0
Highlight
Version 1.26.0
Demo of @solara.lab.computed with
Highlight
Details
Version 1.25.1
Details
Version 1.25.0
Demo of a Chat GPT interface with medical 3d visualization
Highlight
Details
Version 1.24.0
Demo of CSS hot reloading
Highlight
Details
Version 1.23.0
Demo app 'TimeTrekker'
Demo app 'Wanderlust'
Highlights
Details