@@ -7,6 +7,65 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## [ 0.1.0a2] - 2026-05-13
11+
12+ Second alpha. Adds the official ** Deltares Python stack** integration
13+ (` hydrolib-core ` , ` dfm-tools ` , ` meshkernel ` / ` xugrid ` ) and three new
14+ visible features in the Map tab built on top of those libraries.
15+
16+ ### Added
17+
18+ - ** hydrolib-core integration (` core/hydrolib_adapter.py ` )**
19+ - ` safe_load_fmmodel() ` returns a ` HydrolibLoadResult ` that exposes
20+ either a typed ` FMModel ` (when hydrolib-core is installed) or a
21+ structured error, never raises through the GUI.
22+ - ` fmmodel_section_summary() ` / ` fmmodel_set_values() ` so the Setup
23+ tab can use the canonical schema without depending on the import
24+ happening at GUI startup.
25+ - Cached availability and version probes
26+ (` is_hydrolib_available ` , ` hydrolib_version ` ).
27+ - ** dfm-tools integration (` core/dfm_tools_adapter.py ` ) + U/V vector
28+ overlay**
29+ - ` open_partitioned_smart() ` / ` open_curvilinear_smart() ` wrap
30+ ` dfmt.open_partitioned_dataset ` / ` dfmt.open_dataset_curvilinear `
31+ with graceful fallbacks to plain xarray when dfm-tools is not
32+ installed.
33+ - ` find_uv_variables() ` and ` extract_uv_field() ` produce a
34+ library-agnostic ` UVField ` (x, y, u, v, magnitude, optional time).
35+ - ` MapViewerWidget.set_vector_overlay() ` draws the ` quiver ` on top
36+ of the colour mesh with configurable colour, scale and stride.
37+ - ` ResultControls ` exposes a * Show U/V vectors* row with a stride
38+ spin box that auto-disables when the dataset has no recognised
39+ velocity pair.
40+ - ** MeshKernel / xugrid integration (` core/mesh_adapter.py ` )**
41+ - Library-agnostic ` MeshGeometry ` dataclass (nodes, edges, optional
42+ face-node connectivity) and ` MeshLoadResult ` wrapper.
43+ - ` load_mesh_from_dataset() ` and ` load_mesh_from_path() ` with two
44+ backends: ` xugrid ` when installed (canonical UGRID parser), and a
45+ pure-numpy heuristic fallback that recognises the standard
46+ ` mesh2d_* ` variable names (with automatic 1-based → 0-based
47+ normalisation for both edge and face connectivity, preserving the
48+ ` -1 ` sentinel for ragged faces).
49+ - Cached availability and version probes
50+ (` is_xugrid_available ` , ` xugrid_version ` ,
51+ ` is_meshkernel_available ` , ` meshkernel_version ` ) so the GUI can
52+ enable / disable the wireframe row without paying the cost of
53+ importing the C++ extension.
54+ - All eight new symbols re-exported from ` deltasuite.core ` .
55+ - ** Mesh wireframe overlay in the Map tab**
56+ - ` MapViewerWidget.set_mesh_overlay() ` adds a thin grey
57+ ` LineCollection ` of mesh edges below the U/V quiver (so arrows
58+ stay readable). Sentinel-padded edges (` -1 ` UGRID convention) are
59+ filtered out.
60+ - ` ResultControls ` exposes a * Show mesh wireframe* checkbox that
61+ auto-disables when the open dataset has no detectable UGRID mesh.
62+ - ` ResultPanel ` caches the parsed mesh per file so toggling the
63+ overlay does not re-open the dataset.
64+ - ** 9 new tests** (` test_mesh_adapter.py ` ) covering availability /
65+ version probes, missing-file handling, the xugrid path, the
66+ heuristic fallback, the ` MeshGeometry ` count properties and a
67+ full NetCDF round-trip on disk. Total: ** 129 tests** passing.
68+
1069## [ 0.1.0a1] - 2026-05-11
1170
1271First public alpha release. Ships everything needed to open, edit, run
@@ -231,5 +290,6 @@ they affect anyone reusing this build pipeline:
231290 - Sphinx documentation skeleton with auto-generated API reference
232291 - GPL-3.0 license, CONTRIBUTING and CODE_OF_CONDUCT
233292
234- [ Unreleased ] : https://github.com/ghvmof/deltasuite/compare/v0.1.0a1...HEAD
293+ [ Unreleased ] : https://github.com/ghvmof/deltasuite/compare/v0.1.0a2...HEAD
294+ [ 0.1.0a2 ] : https://github.com/ghvmof/deltasuite/compare/v0.1.0a1...v0.1.0a2
235295[ 0.1.0a1 ] : https://github.com/ghvmof/deltasuite/releases/tag/v0.1.0a1
0 commit comments