[general]
name=KrigMultiProfile
qgisMinimumVersion=3.40
qgisMaximumVersion=4.99
description=Batch ordinary kriging of geochemical elements with automatic BG/TH statistics and lithogeochemical map+profile generation.
about=KrigMultiProfile takes a geochemical point layer and, in one Processing algorithm, computes BG/TH statistics (log10, Tukey and log-gap outlier detection), runs ordinary kriging per element, and generates map+profile PNG sheets combined with a lithology layer along user-defined profile lines. Designed for exploration geochemistry with small sample sets. Each step (statistics, kriging, map+profile) is also available as its own algorithm for finer control.
version=1.0.2
author=RSRC
email=rolly.romero.c@uni.pe
tracker=https://github.com/rollyromeroc-cloud/krig-multi-profile/issues
repository=https://github.com/rollyromeroc-cloud/krig-multi-profile
homepage=https://github.com/rollyromeroc-cloud/krig-multi-profile
category=Analysis
icon=resources/icons/plugin_icon.svg
tags=kriging,geochemistry,geochemical,litogeochemical,exploration,interpolation,variogram,anomaly,BG,TH
experimental=True
deprecated=False
server=False
hasProcessingProvider=yes
changelog=1.0.2 (2026-08-07):
    - Fixed metadata.txt itself: a blank line inside the multi-line changelog value, followed
      by an unindented line, broke QGIS's own INI parser. Verified with configparser that this
      file now parses cleanly, including inside the shipped ZIP.
    - Marked all 80 pytest assert statements in tests/ with inline nosec B101 comments. The
      previous pyproject.toml exclude_dirs fix only works when Bandit is invoked with an
      explicit -c pointing at that file; a bare bandit -r . (no config) does not auto-discover
      any project config and still flagged them. Inline nosec is read from the source line
      itself regardless of how the scanner is invoked. Verified with bandit -r . (no flags):
      0 issues.
    1.0.1 (2026-08-07):
    - Static-analysis cleanup (Bandit): narrowed 5 broad except-Exception pass/continue
      handlers to the specific exceptions each call site can actually raise, and restructured
      require_projected_crs/sample_raster_value to drop nested try blocks entirely. Bandit now
      reports 0 issues on the plugin source.
    - Added tool.bandit exclude_dirs = tests to pyproject.toml so pytest's own assert idiom in
      tests/ isn't flagged as a false positive.
    1.0.0 (2026-08-05):
    - First installable-plugin release. Previously distributed as 8 loose Processing scripts
      requiring manual copy + Refresh Scripts; now a real plugin with metadata.txt and one-click
      install.
    - Fixed a duplicate algorithm ID: two scripts both registered kmp_full_workflow, which one
      loaded was undefined. Only one implementation remains.
    - Retired 3 superseded single-element scripts (ordinary kriging, map+profile, profile-from-
      rasters) whose functionality is fully covered by the batch versions kept here.
    - Rebuilt on a layered architecture (core/analysis/dataio/plotting/qgis_bridge/services/
      processing_provider): BG/TH statistics, kriging math and grid sizing are pure Python,
      covered by 50 unit tests that run without QGIS installed.
    - All 4 algorithm IDs and parameter names kept identical to the previous scripts, so existing
      saved models/Processing history keep working.
    - Added a toolbar/menu entry point (one click opens the full-workflow dialog) and a matching
      icon set for the plugin and its 4 algorithms.
