Releases: rpintassilgo/co2gis-qgis-plugin
Releases · rpintassilgo/co2gis-qgis-plugin
Release list
v0.4.0
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
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
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
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 declaresqgisMinimumVersion=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
QgsProjectand touching the UI from a worker thread. Tasks now follow a three-phaseprepare/work/publishcontract: 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
layersAddedconnection. 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 intocore/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()+.tspath 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
- COMET multi-criteria cost surface;
- GRASS-based LCP routing;
- CAPEX estimation with precise and fast modes.