Skip to contents

rfp 0.1.8 (2026-05-11)

  • rfp_project_subset() — derive a focused child project directory from a heavy parent by one of three mutually-exclusive selectors (themes, groups, layers). Emits a trimmed .qgs plus table-trimmed copies of each referenced .gpkg (rtree + metadata cleanup, VACUUM), copies in-tree raster sidecars verbatim, and warns on externally-rooted (..-rooted or absolute) datasource refs. Optionally seeds new form GPKGs via rfp_form_create(). Returns a manifest tibble with content-deterministic sha256_content for the daily-cron skip-push contract; dry_run = TRUE returns the manifest without writing (#45).

rfp 0.1.7 (2026-05-08)

  • rfp_qgs_theme_export() and rfp_qgs_theme_apply() — xml2-based theme transfer between .qgs files. Export emits a portable <rfp-themes> document with layer ids rewritten to layer names; apply resolves names back to the destination’s ids. Group nodes pass through unchanged. Format-aware — handles pre-3.32 <visibility-presets> and 3.32+ <map-themes> schemas, renaming child elements as needed on cross-format transfer. Backup .qgs.bak by default; on_missing_layer = c("warn","error","skip") dispatch. End-to-end round-trip live-tested against a real restoration project (#43).

rfp 0.1.6 (2026-05-07)

  • rfp_mergin_create() no longer claims success when the underlying mergin CLI silently fails. Pre-flight refuses if the path already has a .mergin/ scaffold; post-create requires both the Created project <name> line in CLI output and the .mergin/ directory to exist locally. Either failure raises with the captured CLI output for diagnosis (#60).

rfp 0.1.5 (2026-04-14)

Breaking changes

  • rfp_qgs_themes_config() param rename into families: keeptheme_keep, map_themetheme_initial, titleproject_title. CSV field names follow the new R arg names (rtj consumers must update, see NewGraphEnvironment/rtj#61). No deprecation shim — call sites must be updated (#58).

New features

  • rfp_qgs_themes_config() gains bbox_override (explicit "xmin,ymin,xmax,ymax,EPSG:code" string; always emitted as a CSV row with empty value when unset so the schema is stable) and theme_locked (single theme name to lock as active visibility preset on VM-side deploy; no .qgs mutation) (#58, #44).

rfp 0.1.4 (2026-04-14)

  • rfp_mergin_healthcheck() — one call pre-flight check on venv, mergin-client, pygeodiff, auth env vars, and server reachability. CLAUDE.md note on the mergin subsystem boundary (#57).

rfp 0.1.3 (2026-04-14)

  • rfp_mergin_diff() — row-level diff of a GPKG layer between two project versions, date-addressable via from/to. Takes an optional key arg to match rows on a stable business key instead of sqlite’s volatile fid (#55).

rfp 0.1.2 (2026-04-13)

rfp 0.1.1 (2026-04-13)

  • rfp_mergin_collaborators() — build a tibble of (project, user, permissions) for one project, a vector of projects, or every project in a namespace (#11).

rfp 0.1.0 (2026-04-12)

Major expansion: rfp is now the single package for the full field project lifecycle in BC — from data sourcing through QGIS project assembly, Mergin Maps deployment, layer styling, and project maintenance.

New functions

Data sourcing

  • rfp_source() — unified download entry point for BC spatial data (bcdata, fwa, aws) with new layers parameter for registry-driven layer selection (#20)
  • rfp_check_deps() — verify external CLI tools and Docker are available (#19)

Project assembly

Form lifecycle

Mergin Maps integration

Layer styling (Docker-based)

  • rfp_styles_apply() — apply gq registry styles to spatial data via headless PyQGIS in Docker. Format-agnostic (GPKG, GeoJSON, Shapefile) (#23)
  • rfp_map_render() — render styled layers to PNG for vignettes, testing, and previews (#23)

QGIS project maintenance

  • rfp_qgs_rename() — fix duplicate and invalid layer/group names in .qgs files for QWC2 compatibility. Global namespace dedup, comma removal, three-location sync (#39)
  • rfp_qgs_themes() — list map themes in a .qgs project with layer/group counts (#44)
  • rfp_qgs_themes_config() — generate QWC2-compatible config CSV for web viewer deployment (#44)

Infrastructure

  • Migrated Python dependency management from conda to uv (inst/python/pyproject.toml) (#19)
  • Ship QGIS project templates, methods PDFs, provincial form templates, and pre-built form GPKGs (#22)
  • 5 vignettes + pkgdown site (#25)
  • 80 unit tests