Context
QGIS is valuable as a professional desktop inspection and editing surface for Open-GIS projects, but its runtime, packaging, datasource, styling, and edit round-trip requirements are substantial enough to evolve independently from the core reproducible-project contract in #4.
This future epic owns QGIS support. QGIS work must not block completion of the core open-gis-project/v1 manifest, pipeline, validation CLI, or standardized web/report views.
Goal
Provide an optional, production-quality QGIS companion generated from the same canonical project artifacts and derived datasets as every other view, without creating hidden analytical state or mutating immutable sources.
Scope
Project generation
- Generate
project.qgz from project.yaml, presentation semantics, derived datasets, and override layers.
- Use portable project-relative datasource paths.
- Generate valid GeoPackage datasource strings with explicit
layername= parameters.
- Include appropriate regional tiled basemaps with attribution.
- Preserve layer grouping, ordering, visibility, labels, legends, and semantic styling.
Web/QGIS parity
- Define deterministic mappings from semantic presentation roles to QGIS styles.
- Keep layer-tree groups and categorized styles aligned with the standardized web view.
- Add parity checks for source layers, derived layers, override layers, categories, colors, and visibility defaults.
Runtime validation
- Pin and document a supported QGIS/PyQGIS runtime.
- Validate that the project loads and that every required layer returns
isValid().
- Distinguish
failed, warning, and not_testable; never infer success from archive generation or process exit code alone.
- Add deterministic fixture and CI coverage for static validation, plus an appropriate PyQGIS-enabled integration job.
Editable override round-trip
- Make designated override/scenario layers editable without exposing immutable source layers for mutation.
- Export deliberate QGIS edits into canonical project overrides or
open-gis-override-bundle/v1.
- Preserve feature identity, asserted prior values, author, timestamps, rationale, evidence, geometry origin, and base-run/source preconditions.
- Support canonical importer validation and pipeline reruns after edits.
- Detect conflicts when the source version or base run has changed.
Documentation and examples
- Document supported QGIS versions, installation, generation, validation, editing, and troubleshooting.
- Provide a worked example demonstrating generation, inspection, an editable override, export, canonical application, and rerun.
Acceptance criteria
Non-goals
Relationship to existing work
Context
QGIS is valuable as a professional desktop inspection and editing surface for Open-GIS projects, but its runtime, packaging, datasource, styling, and edit round-trip requirements are substantial enough to evolve independently from the core reproducible-project contract in #4.
This future epic owns QGIS support. QGIS work must not block completion of the core
open-gis-project/v1manifest, pipeline, validation CLI, or standardized web/report views.Goal
Provide an optional, production-quality QGIS companion generated from the same canonical project artifacts and derived datasets as every other view, without creating hidden analytical state or mutating immutable sources.
Scope
Project generation
project.qgzfromproject.yaml, presentation semantics, derived datasets, and override layers.layername=parameters.Web/QGIS parity
Runtime validation
isValid().failed,warning, andnot_testable; never infer success from archive generation or process exit code alone.Editable override round-trip
open-gis-override-bundle/v1.Documentation and examples
Acceptance criteria
project.qgzfrom canonical artifacts with no independent analytical state.Non-goals
open-gis-project/v1manifest and reproducibility contract; that remains in Reproducible GIS Projects, Not One-Off Answers #4.Relationship to existing work