Skip to content

Releases: rpintassilgo/co2gis-qgis-plugin

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 00:21
e46b29e

What's Changed

  • feat(networks): scaffold core package (data model + solver seam) by @rpintassilgo in #63
  • feat(networks): star routing (r.cost/r.drain per source→sink) by @rpintassilgo in #64
  • feat(settings): add experimental Network-mode toggle by @rpintassilgo in #65
  • feat(networks): Single/Network mode on the LCP tab (experimental) by @rpintassilgo in #66
  • refactor(core+ui): group cost-factor modules and tabs into subpackages by @rpintassilgo in #68
  • feat(networks): Level 2a — shared trunks as a graph (per-segment flow) by @rpintassilgo in #70
  • feat(networks): Level 2b — network Price Estimation (per-segment diameter + junction boosters) by @rpintassilgo in #72
  • fix(ui): light-mode legibility + tab layout polish by @rpintassilgo in #77
  • chore(release): 0.4.0 by @rpintassilgo in #78

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 23:31
2e84faa

What's Changed

  • ci: GitHub-release-only pipeline; harden plugin_upload.py by @rpintassilgo in #27
  • docs(metadata): set plugin homepage and use plain "CO2" by @rpintassilgo in #28
  • docs(readme): add Support section for commercial inquiries by @rpintassilgo in #29
  • docs(readme): fix QGIS min version, parametrize CAPEX, link docs site by @rpintassilgo in #31
  • test: add unit suite + CI, fix Makefile (phase 1 of #10) by @rpintassilgo in #33
  • docs: reflect QGIS 4 support and the qgis.PyQt Qt binding by @rpintassilgo in #34
  • docs(contributing): add coding standards and issue-label taxonomy by @rpintassilgo in #35
  • docs(contributing): drop the LLM co-author trailer note by @rpintassilgo in #36
  • docs(claude): sync CLAUDE.md with post-refactor tree by @rpintassilgo in #49
  • feat(lcp): configurable GRASS r.cost RAM via a Settings dialog by @rpintassilgo in #51
  • feat(lcp): optionally save r.cost/r.drain diagnostic rasters by @rpintassilgo in #53
  • chore: delete dead Plugin Builder / Sphinx scaffolding by @rpintassilgo in #54
  • fix(task-manager): guard task callbacks against destroyed dialog on unload by @rpintassilgo in #55
  • fix(crossings): wire Crossings signals once, not twice by @rpintassilgo in #56
  • perf(capex): throttle precise-mode logging + make fast-mode logging consistent by @rpintassilgo in #57
  • chore(release): 0.3.0 by @rpintassilgo in #58

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 27 Jun 01:51
f6098e6

What's Changed

  • chore(release): 0.2.1 — exclude dev config from plugin ZIP by @rpintassilgo in #26

Full Changelog: 0.2.0...v0.2.1

0.2.0

Choose a tag to compare

@rpintassilgo rpintassilgo released this 27 Jun 00:50
215ea5d

Added

  • QGIS 4 / Qt6 support. The plugin now loads and runs on QGIS 4 (it previously failed under Qt6). Qt imports go through qgis.PyQt, enums use the PyQt6-scoped form, exec_()exec(), GRASS algorithm IDs are resolved across provider versions (grass: / grass7:), and the metadata declares qgisMinimumVersion=3.16 / qgisMaximumVersion=4.99. (#9)

Fixed

  • Price estimation returned 0 € for pipelines shorter than one booster segment on QGIS 4 / Python 3.12. Python 3.12's compensated sum() broke the final-segment float comparison; the final segment is now detected by index. (#15)
  • Random crashes (SIGSEGV). Background tasks were writing to QgsProject and touching the UI from a worker thread. Tasks now follow a three-phase prepare / work / publish contract: input is read on the main thread, heavy computation runs in the background, and layers are added to the project on the main thread. (#2)
  • False success on failures. Background operations no longer report "completed successfully" when they actually failed — errors now surface via the log and an error dialog. (#7)
  • Plugin lifecycle / ghost UI. Reloading or disabling the plugin no longer leaves a stale toolbar/menu entry or a dangling layersAdded connection. The dialog is now parented to the main window and the toolbar action has a stable object name. (#3)

Changed

  • Centralized the COMET cost model — the formula and its constants now live in a single source of truth, so the routing surface and the CAPEX estimate cannot drift apart. (#4)
  • Reduced duplication (DRY) — shared helpers for raster resampling, layer access, dropdown population, and UI scaffolding. (#5)
  • Separated UI from domain logic — all processing moved into a dialog-free, unit-testable core/ package; the source is reorganized into core / constants / ui / widgets / utils. (#6)
  • Tooling — added Ruff + pre-commit and formatted the codebase (resolved ~499 long-line / E501 issues; line length 120).
  • Internationalization — decided to ship English-only for now; the Qt tr() + .ts path is documented for future translation. (#8)

Compatibility

  • Requires QGIS 3.16+ (works on QGIS 3.16–3.34 and QGIS 4.x).
  • Requires the GRASS provider with a GRASS installation available to QGIS (used by the LCP routing).

0.1.0

Choose a tag to compare

@rpintassilgo rpintassilgo released this 26 Jun 19:00
  • COMET multi-criteria cost surface;
  • GRASS-based LCP routing;
  • CAPEX estimation with precise and fast modes.