Repository navigation
Help test RustGIS v0.4.0: new features and existing workflows #748
Description
RustGIS v0.4.0 is out! We'd like your help checking the new features—and making sure existing workflows still work reliably with real projects and data.
Start with your normal workflow. Open a project, add data, style or edit it, run an analysis, and export the result. You don't need to work through every area below. Projects created in v0.3.0 are especially useful for checking compatibility and regressions.
The important workflows introduced in v0.3.0 remain part of this testing effort: open-data discovery, cloud-native files read by address, live PostGIS layers, GPU rendering, Python/Jupyter, process plugins and ChatGPT sign-in. v0.4.0 builds on those with more data sources, tilted and terrain views, deeper cartography, editing and analysis, time-dependent data, publication layouts and agent integrations.
Use v0.4.0 as the release baseline. If you test a newer development build, include its version or commit so results can be distinguished.
This is a list of major testing areas, not an exhaustive changelog or a list of known bugs. The release notes contain the full change list.
Areas where testing is especially useful
| Area | What to try | Related PRs (examples) |
|---|---|---|
| UI and platform integration | Use panes and dialogs, edit text, navigate with the keyboard, and copy/paste text, layers and map content. Check focus, accessibility and translated interfaces on your OS or browser. | #781, #806, #815 |
| Open data and discovery | Revisit STAC, Overture, OpenStreetMap, open-data portals and S3 workflows. Try the expanded Web Data catalog, including public imagery and scientific datasets; check discovery, loading and useful error messages. | #532, #534, #538 |
| Connections and credentials | Save connections, browse datasets and reconnect after restarting. Try opt-in remembered database passwords, S3 keys and Assistant API keys, including replacing and forgetting them. Use test credentials; never include secrets in reports. | #701, #777, #794, #795 |
| Vector sources and large datasets | Open FileGDB, PostGIS, MySQL/MariaDB and SQL Server/Azure SQL layers, large files and remote services. Pan between areas and inspect attributes. Check that full-data operations include the expected features—not only the visible area or first service page. | #616, #697, #823 |
| Coordinate systems and source projection | Compare alignment with trusted reference data, including WKT/ESRI definitions and Shapefiles with missing or incorrect projection information. Try Define Projection, undo it, and save/reopen. Check exported coordinates and datum warnings. | #494, #778, #850 |
| Rasters, georeferencing and export | Open TIFF/COG imagery and unreferenced scans, adjust RGB/stretch settings, and georeference with control points. Check no-data/transparency, spatial alignment and cloud-optimised GeoTIFF exports—not only the preview. | #624, #629, #669 |
| GPU rendering and tile layers | Use raster/vector tiles, blended basemaps and dense layers. Pan and zoom repeatedly; look for missing features, stale tiles or labels, and compare rendering modes where available. | #570, #645, #695 |
| Tilted, terrain and globe views | Rotate and tilt maps, use terrain draping or extrusions, and navigate the globe. Switch between 2D and tilted views, and try the Moon or Mars. Check placement, navigation and exported views. | #492, #502, #505 |
| Symbology, labels and filters | Try geometric interval, standard deviation and manual breaks; stacked/dashed strokes; reference scale; and label classes with curved placement and installed fonts. Check different scales, exports and SQL filters, including null values. | #802, #805, #822, #824 |
| Editing, saved projects and QGIS import | Edit vertices with snapping, group/reorder layers and copy layers between maps. Exercise undo/redo, then save/reopen older projects. Import supported QGIS projects/styles and compare appearance, labels, filters and import notes with QGIS. | #428, #728, #825 |
| Selection, analysis and measurement | Check map selections and run Spatial Join, Zonal Statistics, IDW/kriging, geodesic buffers or A5 grids against results you can verify. Inspect geometry, attributes, distances, areas and metric/imperial units. | #657, #660, #718, #719 |
| Time-dependent data and cube analysis | Navigate dated imagery and point time-series charts. Run trends and numeric/categorical summaries over supported cubes. Check dates, missing values, annual/month-of-year groups, class frequencies, changes and longest runs. Try larger jobs through rustgis-cli run. |
#774, #798, #792 |
| Layouts and publication output | Build page-sized sheets or figures with styles, locators/insets, extent indicators, legends and raster colour bars. Edit elements, use guides/snapping/locking, and compare PDF, PNG and SVG exports. Save/reopen and check placement and typography. | #698, #742, #839 |
| Python, scripts and repeatable workflows | Run multi-step workflows through Python/Jupyter, the Script pane, the rebuilt ModelBuilder node canvas or recorded tasks. Try copied geoprocessing code, parameter/value suggestions, quoted text and named outputs. Compare results with the equivalent manual workflow. | #493, #545, #574, #827 |
| Assistant, agent integrations and plugins | Try Assistant workflows, ChatGPT sign-in, skills/subagents, ACP, MCP or the file bridge, and plugin panels/tools. Check approvals, denied permissions, audit history, undo and session state—not only whether commands run. | #363, #449, #496, #506 |
Availability and limits
- Desktop and browser capabilities differ. Native database/FileGDB access and OS keychain storage are desktop-specific. Some formats require optional GDAL or DuckDB installations. Service loading still depends on server capabilities and limits.
- GPU rendering remains beta. Tilted/terrain views and extrusions are not a general-purpose 3D scene with full Z-coordinate support.
- QGIS import is partial compatibility, not a complete project migration. Review import notes for approximated or skipped content; QGIS print layouts are not imported.
- SVG export is not an all-vector map export. Text and basic shapes remain editable vectors; map frames and other surrounds are embedded images. Viewer font substitution can change text appearance.
- Temporal analysis supports layer stacks, dated raster bands, Zarr variables and STAC collections. The Zarr time slider and Zarr point time-series chart are desktop-only. Cube summaries (
cube.reduce) are command-driven, not a new parameter dialog. “By month” means month of the year across years. Higher long-run limits apply specifically torustgis-cli run, including STAC searches of up to 10,000 items; the app, Python,askandmcpkeep lower limits of 2,000 items.
Share your results
Found a problem? Please open a bug report rather than burying the reproduction in this thread. Include:
- RustGIS version or commit, operating system, and browser if applicable;
- workflow and steps to reproduce;
- expected versus actual results, including whether it worked in v0.3.0;
- a small shareable dataset or public data/service URL where possible;
- relevant errors, logs or screenshots, with passwords, tokens and other sensitive information removed.
Link the report here so others can find it.
Successful tests are useful too. Comment with the build, platform, dataset format/approximate size, workflow you tried and how you checked the result. Real-world data, large datasets, unusual coordinate systems and comparisons with trusted results are especially valuable.
Thanks for helping test RustGIS.
This is a community testing hub. Keep it focused on major workflows; fold related updates into existing areas instead of adding a row for every feature or fix.
Activity
elpidioassinaturas commentedon Oct 24, 2026
Thanks for putting this together. Some of mine merged after it was written (23 October), and a couple of rows could name what they cover. Suggested updates:
Time-dependent data & analysis
cube.reducetakes layers, a raster's bands, a Zarr variable or a STAC collection.rustgis-cli run, with progress for trends and summaries (#579) #792 (a trend over a whole state in onerustgis-cli runcall, with progress for trends and summaries).Layouts & publishing
Smaller user-facing fixes, if you want them listed
The rest of mine are listed and described correctly: #359, #386, #443, #482, #511, #518, #523, #573, #575, #590, #594, #601–#605, #675, #678, #696, #698, #706, #709.
deniial00 commentedon Oct 24, 2026
Thanks @elpidioassinaturas for checking the list and providing these references—especially the clarification about #507.
I've condensed the issue into a shorter set of broad testing areas rather than an expanding feature changelog. The aim is to highlight changes that affect shared behavior or substantial workflows.
For your suggestions:
rustgis-cli run, with progress for trends and summaries (#579) #792 is included alongside them, with the larger-run limits identified specifically asrustgis-cli runimprovements.I haven't given #751 or #477 separate entries under that narrower scope, but they're useful cases for remote-file loading and coordinate-system testing. #477 is linked in the coordinate-systems area; its handling of explicit datum shifts is relevant beyond the SIRGAS naming improvement.
The shorter list doesn't reference every related PR, but keeps the broader workflows covered without adding a row for each feature or fix.
[-]Help test RustGIS: major features since v0.3.0[/-][+]Help test RustGIS v0.4.0: new features and existing workflows[/+]pskeffington commentedon Oct 25, 2026
Completed a reproducible, synthetic-only RustGIS CLI validation contribution for issue #748 and would welcome maintainer review of the optional test pack.
Executed results
f3aaf35de7db4f1c394c7b69e314b0322fe6b3ec(Ubuntu 24.04, Rust 1.95): 16/16 synthetic cases PASS, plus 8/8 separate public McDowell GeoJSON/GeoPackage interoperability checks, with no observed semantic drift versus v0.4.0.c7bf8e1f9ebe82d25ee56f76a1aa6c43b4cd98ec, 13/13 source-file hashes, 37/37 Python tests, independent reference/plan checks and the actual 16-case v0.4.0 CLI execution. The public run includes an aggregate evidence artifact. The executable at c7bf8e1 has not been tested; that revision was used only for patch applicability.Public, immediately reviewable contribution
tests/field_validation/suite and reproduction instructionsgit applypatch (SHA-256316f55c2247037334bb4510ceaed5a099da6bf4b4157d4acddd1291eef84e710)The generated fixtures cover projected CRS/CSV XY import, polygon boundary and spatial-join behavior, null/missing geometry, geodesic lengths, multipart/interior-ring fidelity, GeoJSON/GeoPackage round trips and PNG export. There are no actual household, utility or county geometries in this patch. It introduces no Rust crate or Cargo dependency and uses only four optional Python reference libraries.
This is not a full validation of GUI editing, saved-project migration, GPU/raster workflows, databases or cloud integrations. The one known invalid source served-area polygon in the separate real-data test is a source-quality warning, not an established RustGIS defect.
Would the maintainers prefer this as an additive optional regression-test PR, or as issue-linked test coverage? The patch is public for review; I have not modified RustGIS branches or opened an upstream PR.
deniial00 commentedon Oct 25, 2026
@pskeffington Thanks for testing v0.4.0 and sharing the results, especially the comparisons with other GIS libraries and the clear coverage limits.
For now, let’s keep this as issue-linked test coverage rather than bring the full validation pack into RustGIS. A separate Python testing framework and its dependencies would add more maintenance than we want to take on here.
There’s no need to open a PR for the full pack. If you find a RustGIS failure or discrepancy, please open a focused bug report with a minimal synthetic dataset, the command you ran, and expected versus actual results. We can then add a targeted regression test within the existing test suite.
The linked results are useful as a contribution to this testing effort—thanks again.