This is the old changelog, check the Solara website for the up to date changelog.
-
WebSocket Reconnection: Solara now supports a WebSocket that can reconnect, attempting to restore the page session, which enhances the user experience by removing the necessity for browser refreshes.
- Addresses issues #254 and #161.
-
Kernel Reconnection: Added the ability to reconnect to an existing kernel and display a widget by its ID. This facilitates utilities like ipypopout to open a new browser window and display a widget that's operational in the main window.
- This feature is limited to the same browser for security reasons, as the session_id must match.
-
Kernel ID Usage: The software has transitioned from using the jupyter
session_idtokernel_idfor identifying "AppContexts". The newly defined "AppContext" is now named "VirtualKernelContext".
-
Loader Display: Resolved an issue where the loader was placed inside a max-width container, causing it to not be centered.
-
Test Fixture: Addressed a problem in the
solara_testfixture. If one test failed, it would cause all following tests to fail due to improper cleanup. -
Other Minor Fixes:
- Adjusted the centering method of the spinner for a better appearance with
ipypopout. - Solara's documentation includes a new example demonstrating
use_router. - Ploomber Cloud has been added to the documentation as a hosted option.
- Improvements to test robustness and stability.
- Adjusted the centering method of the spinner for a better appearance with
- Spinner Display: The spinner display method was revamped for better compatibility with
ipypopout.
Several documentation updates have been made, particularly around how to integrate Solara in different contexts and scenarios.
Overall, this version emphasizes better connection stability, especially for WebSockets and kernels. The improvements aim for a more seamless user experience and enhanced test robustness.
- docs: Added an example demonstrating menu, context menu, and dialog. (Commit: b617d4c)
- docs: Added a live update example which demonstrates pushing data from the python/server side. (#229)
- feat: Added a warning to the user when modules can potentially be loaded twice. This can lead to behaviors like reactive variables existing twice. (#284)
- feat: Implemented event support in
component_vuefor calling Python callbacks. Now, arguments like 'event_foo' will be available as the function foo in the Vue template. (#312) - feat: Introduced new components
Menu,ClickMenu, andContextMenuforsolara.labwhich facilitate popup menus for buttons and context menus. (#295) - feat: Support added for
on_relayoutin plotly, enabling image annotation. This update also brings an example demonstrating this feature. (#285)
- refactor: Optimized the
ipywidgets_runnerfixture to avoid running all runners every time it's invoked. This is aimed to improve the performance of the tests and possibly reduce their flakiness. (#310)
- docs: Added a how-to guide for debuggers. (#184)
- docs: Provided clarity on integrating
solarainto existing web frameworks. (Commit: 14fd00f)
- fix: The
baseUrlis no longer suffixed with/jupyter. This was discovered to be unnecessary and a potential bug when working withipypopout. (#318) - fix: The search query is now passed directly to solara, preventing a UI flicker previously caused by updating the search query post initialization. (#320)
- fix: Resolved an issue with
starlette websocketwhere the close function was calling itself recursively. It now correctly calls close on the websocket implementation. (#317) - fix: Removed unnecessary special support for
pyodide. (Commit: 4191fd0)
- lab: Added new component
ConfirmationDialog. Commonly used to confirm actions such as deleting rows/objects from databases etc. (#286)
- tests: Resolved issues with tests in Jupyter notebook being very flaky. (#309)
- websocket: Fixed corrupted websocket messages using Flask. The underlying library
wsprotowas identified as not thread safe. A mutex has been used to protect websocket calls. (#308) - theme: The theme variant can now be set using environment variables. (#304)
- jinja: Settings are now passed correctly to the jinja template. Previously, command line arguments were not passed due to missing setter implementation. (#303)
- subpackage: All modules in the package now reload correctly when run as a subpackage. (#293)
- ipyleaflet_advanced: Fixed the web example for ipyleaflet_advanced. URL building issue for certain basemap variants was rectified. (#269)
- memoize: Fixed the
use_threadon memoize which returned None after hit. (#265) - flask: Converted flask websocket disconnect to a proper exception. (Commit ID: d287073)
- reactive variables: Moved
toestandfromsolara.labtosolaraas reactive variables are no longer experimental. (#307)
- dependencies: Older versions of
traitletsandmatplotlibare now used to avoid type check failures. (#305) - anyio: Fixed support for
anyio 4typing. Adjusted for deprecated and renamed functions. (#266)
- links: Updated Vuetify links to v2 as Vuetify 3 is released. (#236)