Version: [5616] niva 0.43.1 Experimental

0.43.1 — Changed: `show` now reports a feature count for vectors and
cell dimensions for
rasters (empty/oversized datasets obvious at a glance); the plugin's
starter text opens with
runnable orientation commands (info / show / describe) for new users.
0.43.0 — Added: `niva pdal [check|test|setup]` sets up & tests the
point-cloud (PDAL)
backend (finds pdal_wrench, OS-tailored fixes); a cross-platform
install self-test
(platform_selftest) + pdal-setup guide. Fixed: `run` no longer
glob-expands compact formula
values; pdalcli:/saga: no longer crash on a missing NIVA_TMPDIR. CI
now enforces ruff + the
plugin-store security scan (bandit/detect-secrets) so every release
stays scan-clean.
0.42.5 — Security: cleared all 5 blocking findings from the QGIS
plugin security scan
(Bandit) — usedforsecurity=False on a dedup hash, parameterized
SpatiaLite lineage writes, an
http(s)-only scheme allowlist + file/ftp-free openers for network
fetches, and a DOCTYPE-refusing
XML parser. Real hardening, not just suppressions. Added a
security-scanning playbook to the docs.
0.42.4 — Changed: removed the deprecated `supportsQt6` flag (removed
from QGIS core, no
longer recognised); QGIS 4 readiness is set by qgisMaximumVersion=4.99
alone. Plugin already uses
the qgis.PyQt compat layer, so no code change. Added a reusable
QGIS-plugin-publishing playbook.
0.42.3 — Fixed: `niva validate`/`--dry-run` are now side-effect-free —
the dry-run no
longer writes report/catalog files, deletes files (`remove`), or sends
`notify`/`email`. New
engine `inert` mode suppresses outward actions while still validating
each stage.
0.42.2 — Packaging: the plugin zip now bundles the GPL-3.0-or-later
LICENSE and ships a
PNG icon (icon.png) for the QGIS Plugin Repository listing. Fixed an
example that didn't parse
(multi-line SQL string — niva's grammar is line-based). No functional
change to niva itself.
0.42.1 — Changed: license text corrected to GPL-3.0-or-later (matches
the project's
stated GPLv3 license); added plugin `tags` for discoverability. No
functional change from 0.42.0.
0.42.0 — Added: `niva validate <file.niva>` — an OFFLINE linter (no
QGIS). Grammar +
closed-set verb check (did-you-mean) + alias arg/option/enum binding +
`run <id>` params, then a
MockBackend dry-run so a clean pass means the flow actually runs.
Errors + style warnings with
line numbers; exit 0 clean / 1 on error. `--explain` now rejects an
invented built-in verb too.
0.41.0 — Added: OFFLINE algorithm catalog (packaged algorithms.json,
878 algos w/ every
parameter default + enum) → `describe <id>` and `run <id>` parameter
validation now work with NO
QGIS. Provenance now records the niva version (pins the exact
defaults). SpatiaLite saves record
lineage in an aspatial `niva_lineage` table (PostGIS unchanged;
best-effort, hidden from `show`).
0.40.1 — Fixed: provenance/lineage metadata now covers RASTER and
POINT-CLOUD outputs
(was vector-only). Rasters and .las/.laz/.copc.laz get a .qmd sidecar
carrying the niva lineage
when the format can't embed it (gpkg/PostGIS embed;
shp/geojson/tif/asc/laz → .qmd sidecar).
0.40.0 — Added: `map` verb — a composed cartographic layout
(PDF/PNG/SVG) with legend,
scale bar, north arrow ON by default; a bare `map out.pdf` yields a
complete map, no template
needed. Overlays, basemap, labels, page/orientation/dpi; or
`from=project.qgz` to export an
existing QGIS layout/atlas. figure/map now stream render progress.
Long-run resilience test suite.
0.39.0 — Added: `figure` verb — render a quick map image (PNG/JPG) of
the current
layer, vector OR raster, with labels and sensible defaults (`load x |
figure out.png` just works).
Options: size, dpi, extent, layers (overlays), basemap=osm, bg,
labels. Pass-through.
0.38.0 — Added: native-CLI harness — `run pdalcli:<cmd>` drives PDAL
(pdal_wrench) on
raw LAS/LAZ/COPC (DTM/DSM/CHM, class filtering, merge/clip/classify —
no COPC step), and
`run saga:<lib>:<tool>` drives saga_cmd. Delegates all other ids to
QGIS unchanged; graceful
degradation when a tool is missing or the SAGA version differs.
Example: lidar_pdal_grass.niva.
0.37.0 — Added: `search <keyword>` (fuzzy-find verbs + the live QGIS
algorithm catalog)
and `docs <keyword>` (full describe of every match → your own
mini-guide). `describe` now ends
with a runnable example (curated or synthesised) and covers built-in
verbs too.
0.36.0 — Added: `describe` now runs as a flow verb (works in the dock
and mid-script),
and any report can be captured with `to=<file>`. Changed:
show/info/describe emit text the
same way (file / dock / stdout); assess/style/metadata now confirm
their action.
0.35.1 — Fixed: `show` no longer lists SpatiaLite's internal tables
(KNN/KNN2,
data_licenses, *_geometry_columns registries) as loadable layers —
QGIS 3.44 exposed some that
QGIS 4 hid. Testing: full suite now passes on Windows 11 (QGIS 4.0.3
and 3.44 LTR).
0.35.0 — Added: native CSV lon/lat point loading (load points.csv
builds points when it
has longitude/latitude columns; no .vrt needed). New format-matrix
test suite + FileGDB/KML/
CSV/JP2 fixtures + a wget data fetcher. Fixed (macOS): all QGIS
providers now load headless.
0.34.1 — Fixed: reproject/warp now FAIL CLOSED on an unknown CRS (e.g.
EPSG:99999),
which used to silently produce a layer with an invalid/empty CRS.
Added four property-based
test suites (error-path/fail-closed, numerical correctness, round-trip
fidelity, security).
0.34.0 — Added: `remove` — delete a file output and its sidecar family
(shapefile
parts, gpkg -wal/-shm, project attachments), behind a strict safety
gate: refuses @conn refs,
globs, directories and non-geodata types (force to override); -dryrun
previews. Batch with
`each "<glob>" | remove`. Generated validation scripts are now fully
self-cleaning.
0.33.0 — Added: a @conn.table can now be a SECONDARY layer in an
overlay/join
(clip @conn.table, spatialjoin [email protected], ...). Fixed: sql
results keep their
geometry, now including COMPUTED geometry (ST_Centroid/ST_Buffer) on
SpatiaLite. Two new
40-pipeline validation suites (simple→complex, and "different & more
complex").
0.32.1 — Fixed: a PostGIS table whose tableUri omits the geometry
column now loads
WITH its geometry (was an empty aspatial layer that broke
reproject/buffer/centroid); the
geometry column is found by type, any name. The honest geometry error
now fires mid-pipe too.
0.32.0 — Renamed the `fix` verb to `fixgeom` (breaking) — it now says
what it does
(repair geometry). Clearer error when centroid/pointonsurface hit
invalid/empty geometry.
0.31.6 — Fixed: no more benign GDAL "gpkg_metadata ... unable to open
database
file" error printed on a successful save when a flow reads from and
writes to the same
GeoPackage (standalone niva now filters just that message).
0.31.5 — Clearer save error: mode= (create/replace/append) is
database-only;
on a file use `save <file> as <layer>` to add/append a GeoPackage
layer.
0.31.4 — show now also prints write-into-existing examples (add a
layer to a
GeoPackage; append to a DB table mode=append); its second vector
example is now `fix`
(centroid crashed on mixed/GeometryCollection geometry).
0.31.3 — show's vector example reprojects before buffering (buffer
100m used to error on a
geographic layer); show quotes a Source containing #, a space, or |.

yes

waterlover

2026-07-06T12:08:05.483573+00:00

3.22.0

4.99.0

yes

Version management

Plugin details