Skip to content

FiberQ v1.3.0

Latest

Choose a tag to compare

@vukovicvl vukovicvl released this 15 Jul 21:02
5d01efb

Project schema versioning, safe automatic migrations, and a stable per-feature identity (fiberq_uuid).

New

  • Schema version marker — every project records its data schema version (currently 1.0), saved into the QGIS project and mirrored into the GeoPackage, so future releases can recognise and upgrade older projects.
  • Automatic on-load migration — opening a project from an earlier FiberQ version upgrades it in place (e.g. schema 0 → 1.0), losslessly and idempotently, with a summary in the QGIS log. Blank / non-FiberQ projects are left untouched; a project stamped newer than your plugin is never downgraded; the marker is only written when the upgrade actually persists.
  • fiberq_uuid identity invariant — every FiberQ feature gets a stable, globally-unique ID that survives edits, exports, and round-trips. New features get one on creation across every tool; older projects are backfilled on load. Splitting a feature (Cut infrastructure) gives each half a fresh UUID.

Fixes

  • Cable "Number of fibers" no longer freezes at an intermediate value while typing.
  • Objects draw tools (3-point / N-point / ortho / digitize) no longer raise ImportError.
  • "Cut infrastructure" no longer fails to save on a duplicate primary key; the halves get fresh feature ids and fresh UUIDs.
  • Optical Schematic View now draws pipes in the legend orange for English-named layers (previously grey).
  • Renamed the mislabeled "FiberQ web browser" action to "Preview Map".

Compatibility & hardening

  • Qt6 / QGIS 4: scoped all 251 QGIS enum accesses (e.g. QgsWkbTypes.PointGeometryQgsWkbTypes.GeometryType.PointGeometry, plus render-unit, writer, marker, placement, WKB-type, feature-request and provider-capability enums). Required for PyQt6; behaviour unchanged on QGIS 3 / Qt5.
  • Security scan: previously-silent exception handlers now log at debug level instead of swallowing errors, and the local lint gate runs Bandit at all severities to match the plugins.qgis.org Security & Quality scanner.

Quality

  • The maintainer manually reviewed the entire plugin source — every Python module — ahead of this release.
  • Clean scan: flake8 + Bandit (all severities) → 0; Qt6 Check → 0.
  • Test suite green on QGIS 3 / Qt5 and QGIS 4 / Qt6.
  • Docs: docs/project-versioning-guide.md (user guide) and docs/schema.md (schema reference).

Targets QGIS 3.22 LTR → QGIS 4 / Qt6.

Developed with support from the NLnet NGI0 Commons Fund.