|
| 1 | +# Version 0.2 # |
| 2 | + |
| 3 | +## DataLab-Kernel Version 0.2.10 (not released yet) ## |
| 4 | + |
| 5 | +### ✨ New features since version 0.2.9 ### |
| 6 | + |
| 7 | +* **Multi-object plotting**: `plotter.plot()` now accepts lists of signals or images, |
| 8 | + enabling side-by-side visualization of multiple objects in a single call |
| 9 | + |
| 10 | +* **Analysis result display**: Geometry and table results now display as separate |
| 11 | + HTML tables below the plot instead of cluttering the figure with on-plot text |
| 12 | + annotations — especially important when working with multiple ROIs |
| 13 | + |
| 14 | +* **Consistent figure sizing**: Introduced `DEFAULT_PLOT_WIDTH` constant for |
| 15 | + uniform figure dimensions across Plotly and Matplotlib backends |
| 16 | + |
| 17 | +* **User-defined figure dimensions**: Plotly plots now accept custom `width` and |
| 18 | + `height` keyword arguments for fine-grained control over figure sizing |
| 19 | + |
| 20 | +* **Advanced plotting showcase notebook**: Added a comprehensive notebook |
| 21 | + demonstrating advanced features: multiple curve styles, colormaps, ROI-based |
| 22 | + analysis, geometry/table results, and interactive Plotly visualization |
| 23 | + |
| 24 | +### 🛠️ Bug Fixes since version 0.2.9 ### |
| 25 | + |
| 26 | +* Fixed legend display in Plotly plots — legends are now hidden by default for |
| 27 | + cleaner visualization |
| 28 | + |
| 29 | +* Fixed default Plotly signal figure dimensions to match Matplotlib's aspect ratio |
| 30 | + |
| 31 | +* Fixed figure serialization performance in Plotly backend |
| 32 | + |
| 33 | +* Fixed image rendering edge cases in Matplotlib backend |
| 34 | + |
| 35 | +### 🔧 Other changes since version 0.2.9 ### |
| 36 | + |
| 37 | +* Updated documentation with structured "Try it Online" section linking to both |
| 38 | + Quick Start and Advanced Showcase notebooks |
| 39 | + |
| 40 | +* Improved portability of development scripts by using relative paths |
| 41 | + |
| 42 | +## DataLab-Kernel Version 0.2.9 (2026-02-08) ## |
| 43 | + |
| 44 | +### ✨ New features ### |
| 45 | + |
| 46 | +#### Plotly visualization backend #### |
| 47 | + |
| 48 | +* Added a new **Plotly** interactive visualization backend as an alternative to |
| 49 | + the existing Matplotlib static backend. Plotly figures provide rich |
| 50 | + interactivity (zoom, pan, hover tooltips) directly in Jupyter notebooks. |
| 51 | +* Install with `pip install datalab-kernel[plotly]`. |
| 52 | + |
| 53 | +#### Smart backend selection #### |
| 54 | + |
| 55 | +* When both Plotly and Matplotlib are available, **Plotly is automatically |
| 56 | + preferred** for its richer interactive experience. |
| 57 | +* Switch backends at runtime with `plotter.set_backend("matplotlib")` or |
| 58 | + `plotter.set_backend("plotly")`. |
| 59 | +* Override the default backend via the `DATALAB_PLOTTER_BACKEND` environment |
| 60 | + variable. |
| 61 | + |
| 62 | +#### Enhanced Matplotlib backend #### |
| 63 | + |
| 64 | +* Extracted the Matplotlib rendering logic into a dedicated `matplotlib_backend` |
| 65 | + module with improved support for: |
| 66 | + * Error bars |
| 67 | + * Curve styles (Sticks, Steps) |
| 68 | + * Per-object line styling from metadata |
| 69 | + * Log scale and axis bounds |
| 70 | + * Non-uniform image coordinates (`pcolormesh`) |
| 71 | + * Per-object colormaps |
| 72 | + |
| 73 | +#### Figure height customization #### |
| 74 | + |
| 75 | +* Enhanced figure height customization for both backends, with updated |
| 76 | + documentation. |
| 77 | + |
| 78 | +#### MIME bundle support for Plotly #### |
| 79 | + |
| 80 | +* Plotly figures now produce proper MIME bundles for native Jupyter display |
| 81 | + integration. |
| 82 | + |
| 83 | +### 🔧 Improvements ### |
| 84 | + |
| 85 | +#### Documentation #### |
| 86 | + |
| 87 | +* Removed references to the legacy XML-RPC connection method; documentation now |
| 88 | + emphasizes the **Web API** as the primary (and recommended) connection method. |
| 89 | +* Updated README with visualization backend documentation, usage examples, and |
| 90 | + runtime switching instructions. |
| 91 | +* Updated online demo badge link. |
| 92 | + |
| 93 | +#### Python version support #### |
| 94 | + |
| 95 | +* Added Python **3.13** and **3.14** to the supported version classifiers. |
| 96 | + |
| 97 | +#### Optional dependency #### |
| 98 | + |
| 99 | +* Added `plotly` optional dependency group in `pyproject.toml` |
| 100 | + (`pip install datalab-kernel[plotly]`). |
| 101 | + |
| 102 | +#### Dev tooling #### |
| 103 | + |
| 104 | +* Enhanced wheel building script (`serve_dev_wheels.py`) to support package |
| 105 | + selection via `--packages` argument. |
| 106 | +* New VS Code tasks for interactive plot tests, dev wheel serving, and |
| 107 | + backend-specific testing. |
| 108 | + |
| 109 | +### 🛠️ Bug Fixes ### |
| 110 | + |
| 111 | +* Fixed test compatibility with **Python 3.9** by using `ExitStack` instead of |
| 112 | + multiple `mock.patch` context managers. |
| 113 | +* Fixed test module shadowing issue by using `mock.patch.object` instead of |
| 114 | + `mock.patch` with string targets. |
| 115 | +* Fixed various Ruff and Pylint warnings across the codebase. |
| 116 | +* Fixed test workflow branch references for DataLab installation. |
| 117 | + |
| 118 | +### 🧪 Test Suite ### |
| 119 | + |
| 120 | +* Added **65 tests** for the Matplotlib backend covering all rendering features, |
| 121 | + backward-compatibility aliases, and edge cases. |
| 122 | +* Added **40 tests** for the Plotly backend covering all rendering features and |
| 123 | + edge cases. |
| 124 | +* Added backend selection and resolution logic tests. |
| 125 | +* Added `--gui` interactive gallery viewers for visual test validation (tkinter |
| 126 | + for Matplotlib, tabbed HTML for Plotly). |
| 127 | + |
| 128 | +## DataLab-Kernel Versions 0.2.0–0.2.8 ## |
| 129 | + |
| 130 | +These early development releases established the core architecture of |
| 131 | +DataLab-Kernel, including: |
| 132 | + |
| 133 | +* Workspace API (`add`, `get`, `remove`, `list`, `save`, `load`) |
| 134 | +* Standalone and Live operating modes with auto-discovery |
| 135 | +* Matplotlib-based plotting (`Plotter` class) |
| 136 | +* Geometry and table result display |
| 137 | +* HDF5 persistence for reproducible analysis |
| 138 | +* `%load_ext datalab_kernel` extension for JupyterLite compatibility |
| 139 | +* Web API-based connection to DataLab (replacing legacy XML-RPC) |
| 140 | +* Comprehensive test suite foundation |
0 commit comments