diff --git a/CHANGELOG.md b/CHANGELOG.md index 01d04db..674762b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -## [Unreleased] +## [0.5.0] - 2026-10-16 - Hygiene sweep: 51 P2 + 29 P3 findings from the 2026-10-09 audit (issue #84), areas a1–a8. Most items are behaviour-preserving (full suite green, `bench/check_anchors.py` byte-identical); the intended behaviour changes below are pinned in `tests/test_audit_84.py`. - CLI (a1): unknown `--compress` codecs are a usage error, exit 2 (GDAL would silently write uncompressed; verified set: NONE/ZSTD/LZW/DEFLATE/PACKBITS/LERC/LZMA, case-insensitive), and the written compress tag is read back as a stack-variance guard. Empty `--out` (== CWD) is exit 2. Malformed `--calibration` files are a named exit 2. Non-numeric value/lng/lat columns name the column in the error. `--plan` text: header line + `workers` / `max-band-parallel` split (the turbo thread count is labelled `n_threads`). `ppgrid -m` (idwgrid shim) guarded; `--max-band-parallel` row + expanded `--compress` row in the README table. `run_summary.json` `volumetrics.raw_bytes` / `compression_ratio` are now sized from the final output-CRS raster, not the work grid (the rescale was previously conflated into the ratio; note the plan's `disk_bytes` keeps the work-grid convention). - Ingest (a2): corrupt/short parquet is a named exit 1 (was a mid-run arrow traceback); duplicate role columns (a column named as both value and lng, etc.) are exit 2; a lng/lat column-mapping failure is a named RuntimeError; a CSV row-count mismatch between the newline scan and the parse warns (was silent); all-missing-columns reports every missing column in one pass; `Pipeline(...)` rejects `res` / `scale` / `saturation` / `workers` / `calib_max_points` as unexpected keywords (they are named parameters, and now raise instead of being silently ignored). diff --git a/pyproject.toml b/pyproject.toml index 1488783..181b2f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ppgrid" -version = "0.4.2" +version = "0.5.0" description = "Fast continent-scale raster interpolation for scattered point data using pull-push mipmap algorithms. Turns millions of geolocated points into gapless GeoTIFF in minutes. No GPU required." readme = "README.md" license = "MIT" diff --git a/uv.lock b/uv.lock index 7fb4f62..b126c3f 100644 --- a/uv.lock +++ b/uv.lock @@ -373,7 +373,7 @@ wheels = [ [[package]] name = "ppgrid" -version = "0.4.2" +version = "0.5.0" source = { editable = "." } dependencies = [ { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },