Releases: marimo-team/marimo
0.10.7
What's Changed
Highlights ⭐
-
🧪 Test notebooks with pytest!. It's now possible to test notebooks using
pytest
! Runningpytest test_notebook.py
will run and test all cells whose name starts withtest_*
. This is only possible because marimo notebooks are stored as code (Python, not JSON!). Learn more at our docs. Shoutout to @dmadisetti for contributing this feature! -
🔬Experimental tracing panel. This release includes an exciting new experimental tracing panel, giving you insight into which cells run, when, and for how long. Shoutout to @Light2Dark for contributing this feature! Enable it through the user settings (⚙ icon at the top right of your notebook).
-
🖱 Usability improvements. This release includes a number of usability improvements, including helpful prompts when you accidentally try using IPython magics, the ability to copy/paste the contents of a notebook file directly into the notebook (pasting creates cells!), the ability to use sandboxed notebooks with HTML export (thanks @metaboulie for contributing this!) and a few bug fixes.
All changes
- docs: show import marimo as mo at notebook top by @akshayka in #3243
- docs: fix marimo-embed of ui.dataframe by @akshayka in #3245
- tidy: Tweaks to enable pytest on marimo nbs by @dmadisetti in #3238
- fix: arrow key navigation taking precedence in inputs by @akshayka in #3244
- improve: parse google-style attributes in docstrings by @akshayka in #3247
- improvement: allow non-index.html files and add docs for wasm export by @mscolnick in #3248
- fix quotes in save.py:persistent_cache docstring by @gabrielgrant in #3255
- examples: ui element usage examples by @akshayka in #3254
- Add mapping for quaternion -> numpy-quaternion by @moble in #3253
- chore: make RPCs private methods by @akshayka in #3252
- fix: read sandbox dependencies when opening remote files by @akshayka in #3250
- Fix: ui.datetime() rendering with empty initial value by @devin-ai-integration in #3249
- feat(cli): add --sandbox flag to
marimo export html
command by @metaboulie in #3236 - docs: add marimo-embed-inline by @mscolnick in #3261
- docs: cleanup motherduck docs by @mscolnick in #3260
- improvement: help spread the love of marimo by @mscolnick in #3263
- improvement: map jupyter magic to helpful descriptions by @mscolnick in #3262
- improve: example installation instructions by @akshayka in #3265
- Update CONTRIBUTING.md by @singlebeam in #3268
- add trailing slash for /index.html redirects by @Light2Dark in #3269
- feat: make cells runnable with full arguments by @dmadisetti in #3251
- Update installation.md by @singlebeam in #3272
- docs: warn users more strongly against using mo.state() and on_change handlers. by @akshayka in #3266
- improvement: allow pasting full marimo applications in a cell by @mscolnick in #3273
- experimental: tracing panel by @Light2Dark in #3168
- improvement: handle pl.Duration by @mscolnick in #3274
- fix: number input reset by @devin-ai-integration in #3276
- test: Add unit tests for codemirror modules by @devin-ai-integration in #3275
- Integrate Biome with VCS to simplify ignore patterns by @manzt in #3283
- docs: pytest in marimo by @dmadisetti in #3281
- improvement: tracing perf, hide charts and skip markdown by @mscolnick in #3282
New Contributors
- @gabrielgrant made their first contribution in #3255
- @moble made their first contribution in #3253
- @singlebeam made their first contribution in #3268
Full Changelog: 0.10.6...0.10.7
0.10.6
⭐ Highlights
- 📝 Updated documentation - our documentation has been migrated to
mkdocs
. This aims to improve the navigation and layout of the API docs. This also has improved the hover tooltip and live docs inside marimo's editor. - 📊 Table improvements - Added stats/chart-only modes for column summaries in tables; format
pandas
andpolars
Series using our fancy data-frame viewer with (sorting, filtering, paginating); improvedformat_mapping
forNone
values (h/t @metaboulie!). - 🖥️ Shell completions - run
marimo shell-completion
for instructions how to install our CLI completions. - 🐛 Bug fixes - Bug fixes in HTML export.
What's Changed
- fix: apply format_mapping to None values in table formatting by @metaboulie in #3207
- improvement: support google style docs in our completion by @mscolnick in #3211
- docs: update UI plugin docstrings to Google Style format by @devin-ai-integration in #3206
- docs: v2 by @mscolnick in #3205
- fix: fallback to normal matplotlib when interactive is not supported by @mscolnick in #3212
- Nitpick: prefer --directory flag over cd by @koaning in #3215
- fix: formatting for proxied url by @dmadisetti in #3214
- docs fixes by @akshayka in #3213
- docs: add redirects by @mscolnick in #3216
- docs: google style docs by @mscolnick in #3217
- docs: update docstrings to Google Style format by @devin-ai-integration in #3218
- docs: update docstrings to Google Style format by @devin-ai-integration in #3219
- docs: small fixes by @akshayka in #3222
- docs: fix wasm embeds by @akshayka in #3224
- fix: Vim keybindings taking precedence over text area keybindings by @mscolnick in #3220
- docs: update docstrings to Google Style format by @devin-ai-integration in #3221
- move faq by @akshayka in #3225
- docs: final google docs, add lint rules by @mscolnick in #3226
- docs: more styling and admonitions by @mscolnick in #3227
- docs: remove old files by @mscolnick in #3228
- docs: add CLI to the docs, reformat CLI so renders propperly by @mscolnick in #3229
- docs: commands in nav by @akshayka in #3231
- feat(table): add stats/chart-only modes for column summaries by @metaboulie in #3234
- feat(formatters): Add consistent Series formatting for pandas and polars by @metaboulie in #3232
- fix: mo.ui.table does not render in HTML export on Windows Chrome/Edge by @mscolnick in #3240
- cli: better support for bash completion by @mscolnick in #3230
- fix: skip gracefully when virtual file is not found by @mscolnick in #3241
Full Changelog: 0.10.5...0.10.6
0.10.5
0.10.4
0.10.3
This release includes an important bugix for opening marimo on older browsers.
What's Changed
- docs: feedback link by @akshayka in #3172
- feat: add active connection enpdoint by @mscolnick in #3170
- feat: add null filtering to series operations by @devin-ai-integration in #3188
- fix: nested ModuleNotFound by @mscolnick in #3186
- fix: resolve relative URL for old browsers by @mscolnick in #3183
- fix: marimo edit --sandbox no longer creates new files by @mscolnick in #3181
- improvement: add --no-show-code to marimo export wasm by @mscolnick in #3184
Full Changelog: 0.10.2...0.10.3
0.10.2
What's Changed
This release includes improvements to marimo's capability to export notebooks as interactive HTML files. Learn more about this new feature at our docs: https://docs.marimo.io/guides/exporting.html#export-to-wasm-powered-html
- chore: add gh pages example by @mscolnick in #3157
- fix: various wasm fixes for those who self-host by @mscolnick in #3160
- gh pages example: run by @akshayka in #3161
- fix docs heading by @akshayka in #3163
- fix: turn autosave off on wasm export by @mscolnick in #3162
- improve: marimo export html-wasm CLI message by @akshayka in #3166
Full Changelog: 0.10.1...0.10.2
0.10.1
What's Changed
- fix: higher-order components should call
on_update_completion()
by @akshayka in #3154 - fix: dependency issues on pymdown-extensions by @mscolnick in #3156
Full Changelog: 0.10.0...0.10.1
0.10.0
⭐ Highlights
🚀 Major Features
- This release includes a new command,
marimo export html-wasm
, to export your notebook as a WebAssembly-powered HTML file. This lets you publish your marimo notebooks on GitHub Pages, without paying for any servers — the web browser executes your Python code instead! Learn more at our docs. WebAssembly notebooks do have some limitations on the packages that can be used - It is now possible to automatically snapshot your notebook to
.ipynb
files while editing; this lets you save a snapshot of your notebook outputs that you can view on GitHub. Enable this feature through the notebook settings menu (top right, ⚙️ icon). - Added support for Azure OpenAI with AI Assistant
🎨 UI/UX Improvements
- Enhanced markdown support with task lists, tabs, critic markup, emoji, and magic links
- Network URL now shown when running with
host=0.0.0.0
⚡ Bug Fixes
- Fixed case sensitivity issues dataframe searches
- Fixed datetime in Altair charts
- Respect Python version from inline-scripts (PEP 723) when running with
--sandbox
🛑 Breaking change: Nameless cells in the marimo Python file are now generated as _
(instead of __
) to fix mypy and pyright lint errors
What's Changed
- perf: check if package has been imported instead of installed by @mscolnick in #3109
- Update feedback dialog by @akshayka in #3118
- docs: add missing period in README dataframes section by @devin-ai-integration in #3121
- fix: use --marimo-monospace-font for terminal font configuration by @devin-ai-integration in #3123
- feat: respect Python version from inline-scripts (PEP 723) when running with --sandbox by @devin-ai-integration in #3122
- Add validation for file type extensions in mo.ui.file by @devin-ai-integration in #3124
- feat: show network url when running host=0.0.0.0 by @mscolnick in #3128
- fix: case sensitivity of uppercase searches by @mscolnick in #3131
- docs: add docs for exporting to PDF, slides, or rst by @mscolnick in #3133
- improvement: allow running any cell when auto-run-on-startup is off by @mscolnick in #3119
- test: add tests for encapsulated React hooks by @devin-ai-integration in #3137
- feat:
marimo export html-wasm
with included assets by @mscolnick in #3134 - fix: altair chart for datetimes with no timezone expected by @mscolnick in #3135
- fix: altair chart dark mode toggle by @mscolnick in #3136
- feat: support for Azure OpenAI with AI Assistant by @matulef in #3120
- improvement: single '_' function names to work with linting by @mscolnick in #3143
- feat: add auto-export as ipynb feature by @devin-ai-integration in #3138
- fix: make name change backwards compat in the ui by @mscolnick in #3147
- test: maybe fix windows cli tests by @mscolnick in #3146
- fix: preserve table selection on accordion toggle by @devin-ai-integration in #3148
- feat: add task list support to markdown by @mscolnick in #3151
- tests: revert cli debug by @mscolnick in #3153
- feat: markdown caption support, tabs, critic, emoji, magic links by @mscolnick in #3152
- improvement: errors should stay internal in marimo run and logged to console by @mscolnick in #3150
New Contributors
- @devin-ai-integration made their first contribution in #3121
- @matulef made their first contribution in #3120
Full Changelog: 0.9.34...0.10.0
0.9.34
What's Changed
- fix: ignore mo.stop() 'errors' in marimo export by @mscolnick in #3099
- docs: update getting started by @akshayka in #3101
- fix: .schema perf improvements by @mscolnick in #3108
- fix: altair datetime selection filtering by @mscolnick in #3102
Full Changelog: 0.9.33...0.9.34
0.9.33
⭐ Highlights
- Configuration can now be overridden using
pyproject.toml
, providing more flexibility in managing notebook settings. This goes under the[tool.marimo]
settings. To learn more about the configuration exposed, runmarimo config describe
- Frontend performance improvements to prevent unnecessary re-rendering
marimo.create_asgi_app
supports ASGI middleware (e.g. for authentication/authorization)- Export to
.ipynb
improvements/interoperability. For example:marimo export ipynb nb.py -o snapshot.ipynb --include-outputs --sort=top-down
. You can use this to view the outputs in GitHub or pipe the results in your other tools.
What's Changed
- improvement: refactors for perf by @mscolnick in #3079
- feat: override configuration with pyproject.toml by @mscolnick in #3071
- improvement: don't send variables if they dont change by @mscolnick in #3080
- improvement: add validate callback to asgi with_dynamic_directory by @mscolnick in #3081
- example: deploy editable notebooks in Modal by @ashah03 in #3087
- fix: allow grid controls to be edited by @Light2Dark in #3092
- fix: marimo export returns propper error code by @mscolnick in #3091
- improvement: include cell config and name in ipynb metadata by @mscolnick in #3093
- development: add command to print all routes by @mscolnick in #3094
- improvement: add asgi middleware to create_asgi_app by @mscolnick in #3095
- improvement: allow python files with just deps or no cells by @mscolnick in #3096
- example: explore embeddings by @mscolnick in #3097
New Contributors
Full Changelog: 0.9.32...0.9.33