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.qgsplus 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 viarfp_form_create(). Returns a manifest tibble with content-deterministicsha256_contentfor the daily-cron skip-push contract;dry_run = TRUEreturns the manifest without writing (#45).
rfp 0.1.7 (2026-05-08)
-
rfp_qgs_theme_export()andrfp_qgs_theme_apply()— xml2-based theme transfer between.qgsfiles. 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.bakby 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 theCreated 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:keep→theme_keep,map_theme→theme_initial,title→project_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()gainsbbox_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) andtheme_locked(single theme name to lock as active visibility preset on VM-side deploy; no.qgsmutation) (#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 viafrom/to. Takes an optionalkeyarg to match rows on a stable business key instead of sqlite’s volatilefid(#55).
rfp 0.1.2 (2026-04-13)
-
rfp_mergin_history()— tibble of version log (version, created, author, change counts), optionally date-filtered (#53). -
rfp_mergin_changeset()— tibble of per-file added/removed/updated at a given version (#53).
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 newlayersparameter for registry-driven layer selection (#20) -
rfp_check_deps()— verify external CLI tools and Docker are available (#19)
Project assembly
-
rfp_project_create()— assemble a field-ready QGIS project with background layers, forms, methods, and templates. Now uses gq registry for layer selection (#22, #42) -
rfp_project_templates()— list available QGIS project templates -
rfp_project_layers()— list layers for a template from gq registry, with .txt fallback (#42) -
rfp_source_test()— test each layer download individually, reports pass/fail per layer (#47)
Form lifecycle
-
rfp_form_types()— CSV-driven registry of available form types (#28) -
rfp_form_create()— create an empty field form GPKG for a given type (#29)
Mergin Maps integration
-
rfp_mergin_create()— push local project to Mergin Maps server -
rfp_mergin_share()— grant collaborator access -
rfp_mergin_remove()— delete project (requiresconfirm = TRUE) -
rfp_mergin_status()— show pending changes -
rfp_mergin_pull()— fetch server changes -
rfp_mergin_push()— upload local changes, return parsed version -
rfp_mergin_sync()— convenience pull + push (#22)
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)
Previous development changes
- Add
rfp_gpkg_to_geojson() - Add
rfp_bcd_get_data()with flexible input casing - Add
rfp_gpx_import() - Add
rfp_source_csv() - Add
rfp_u_rm_gpkg_layers() - Add
rfp_meta_bcd_xref()andrfp_meta_bcd_xref_pkg_schtab()
