Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
c8be2f0
feat(ui): Home › Add Data › Connections… and New Connection menu (#69…
deniial00 Oct 23, 2026
7e32baa
Add imperial unit support across analysis, editing and measurement (#…
Mavrick-F Oct 23, 2026
60a1127
feat(connections): reopen database layers on connection login and kee…
deniial00 Oct 23, 2026
74229fe
feat(linux): draw an Adwaita title bar on Wayland (#725)
pick2510 Oct 23, 2026
6607215
perf(render): reuse path storage for stacked line strokes (#727)
yongyin-leon Oct 23, 2026
0fc00c9
feat(ui): name tree-added datasets in Recent after their connection (…
deniial00 Oct 23, 2026
a7ed094
fix(tests-gpu): run mapgpu GPU tests one at a time (#735)
brownag Oct 23, 2026
dca115f
feat(ui): pick several layers in the Layers pane (#728)
ninhhaidang Oct 23, 2026
eb81b6d
feat(map): stacked line strokes per class (#729)
pick2510 Oct 23, 2026
3a51ce3
feat(ui): pair quotes in the Script pane as braces and brackets (#731)
jgregoriorincon Oct 23, 2026
0154fa2
fix(engine): end a parameter string at its first unescaped quote (#736)
jgregoriorincon Oct 23, 2026
b261c76
fix(labels): let each label class label every feature it matches (#737)
jgregoriorincon Oct 23, 2026
575b21f
Layouts: a publication layout's locator, a globe or an inset with the…
elpidioassinaturas Oct 23, 2026
534b182
fix(connections): drop stale listings in the add dialogs (#715)
deniial00 Oct 23, 2026
3ec3d9c
Layouts: a publication layout's surrounds keep off the data; a decima…
elpidioassinaturas Oct 23, 2026
2502d90
feat(map): draw stacked strokes in levels (#734)
pick2510 Oct 23, 2026
af5b37b
fix(ui): stop a tiled map redrawing for good while a frame is drawn (…
pick2510 Oct 23, 2026
6fd7d89
Layouts: a publication sheet's style, accent and orientation; graticu…
elpidioassinaturas Oct 23, 2026
ec2b4da
refactor(engine,ui): read quoted text by one rule (#743)
jgregoriorincon Oct 23, 2026
251ec89
feat(symbology): add No Fill for polygon layers (#745)
choupeanut Oct 23, 2026
694e6f8
fix(data): preserve UTF-8 field content (#746)
Mavrick-F Oct 23, 2026
b108dfd
fix(layout): a publication legend that fits exactly isn't said to ove…
giswqs Oct 23, 2026
e050924
docs: rework the roadmap; GeoLibre parity and CONTRIBUTING.md in the …
deniial00 Oct 23, 2026
cc9fc81
i18n: translate the 306 new interface strings in every language (#753)
giswqs Oct 23, 2026
d9b2de0
Layouts: an accent must be opaque; a column always holds the legend (…
elpidioassinaturas Oct 23, 2026
8e9267d
feat(map): a layer's reference scale (#763)
pick2510 Oct 23, 2026
593cf0b
Analysis: a STAC trend's keys read from cube.trend's description, so …
elpidioassinaturas Oct 23, 2026
23eb906
docs: bring every page up to date with the code (#752)
deniial00 Oct 23, 2026
4e46ced
feat(secrets): an OS keychain secret store behind Services::secrets (…
deniial00 Oct 23, 2026
a53ccc1
fix(symbology): choose compatible fields when switching renderers (#772)
deniial00 Oct 23, 2026
87bb73c
test(gpu): a settled planet frame without its tile yet hides the over…
giswqs Oct 23, 2026
e5f8555
Analysis: summarise any data cube over time, by year or month of the …
elpidioassinaturas Oct 24, 2026
e5265d1
feat(data): define source projection for Shapefile layers (#778)
Mavrick-F Oct 24, 2026
ca0e79c
Web reads: a file's last bytes from a store that answers a suffix ran…
elpidioassinaturas Oct 24, 2026
0ecc086
feat(ui): offer layers and fields as values in the Script pane (#771)
jgregoriorincon Oct 24, 2026
978f047
feat(plugins): raise the manifest command limit to 256 (#780)
choupeanut Oct 24, 2026
3085e57
build(deps): bump anthropics/claude-code-action (#782)
dependabot[bot] Oct 24, 2026
74c4ef5
build(deps): bump the cargo-minor-patch group with 4 updates (#784)
dependabot[bot] Oct 24, 2026
09e5dac
build(deps): bump pyo3-build-config from 0.29.3 to 0.30.1 (#787)
dependabot[bot] Oct 24, 2026
ed232f7
test(ui): stop calling half-painted GPU frames settled (#791)
Mavrick-F Oct 24, 2026
b2152f4
feat(ui): run the Script pane with Ctrl+Enter (⌘+Enter on macOS) (#783)
jgregoriorincon Oct 24, 2026
5925147
test(gpu): paint until tile uploads finish in the GPU waiter (#793)
giswqs Oct 24, 2026
e006e8d
build(deps): bump eframe from 0.36.2 to 0.37.0 in the egui group (#781)
dependabot[bot] Oct 24, 2026
015a046
fix(ui): fall back to an installed symbol face for marks like ✓ (#796)
giswqs Oct 24, 2026
42859ba
feat(connections): remember database passwords in the OS secret store…
deniial00 Oct 24, 2026
bb961a9
fix(map): Load All Features waits for a web source still opening (#775)
pick2510 Oct 24, 2026
5b89287
Analysis: a trend over a state in one call from `rustgis-cli run`, wi…
elpidioassinaturas Oct 24, 2026
24eba9b
feat(assistant): remember API keys in the system keychain (#795)
choupeanut Oct 24, 2026
9bebf19
fix(ui): name shortcuts by the OS egui reads, a Mac browser's too (#801)
jgregoriorincon Oct 24, 2026
f903d0e
feat(map): dashed line strokes (#765)
pick2510 Oct 24, 2026
fa96baa
Analysis: summarise a stack of categorical rasters over time: mode, f…
elpidioassinaturas Oct 24, 2026
1cc0402
UI: name input widgets and restore accessibility checks (#806)
giswqs Oct 24, 2026
e7dad1e
Add Bengali localization (#803)
SophisticatedStupid Oct 24, 2026
8538be2
feat(labels): label lines along them, straight or curved, and italic …
pick2510 Oct 24, 2026
9df790c
perf(render): cache repeated text width measurements (#804)
yongyin-leon Oct 24, 2026
881db84
fix(app): copy and paste through the system clipboard again on egui 0…
jgregoriorincon Oct 24, 2026
45b28ec
feat(symbology): geometric interval and standard deviation classes (#…
alteralto Oct 24, 2026
81a8368
feat(data): read ArcGIS layers past their record limit, in the app an…
Mavrick-F Oct 24, 2026
d908c53
fix(geom): ring area across the antimeridian (#811)
subarna-kandel Oct 24, 2026
08eff63
fix(data): NOT over a null is unknown in where clauses (#814)
subarna-kandel Oct 24, 2026
3429749
fix(tiles): read a large GeoTIFF tile index in place, doubling the he…
elpidioassinaturas Oct 24, 2026
bb244b8
test: fix main CI on macOS and Windows (thin-font halo test, sign-in …
giswqs Oct 24, 2026
bc5218c
test(ui): give the connection-chooser smoke test its own database (#833)
giswqs Oct 24, 2026
9e54cd1
test(ui): scroll the Script results under the run's line (#832)
jgregoriorincon Oct 24, 2026
0411ce6
feat(ui): offer a gp.run tool's parameter values by kind in the Scrip…
jgregoriorincon Oct 24, 2026
e1e70a9
feat(analysis,engine): add zonal statistics geoprocessing tool (gp.zo…
quanguet0409 Oct 24, 2026
7ad5091
fix(data): recognize GDA2020 as WGS 84-like, fixing #730 (#837)
ninhhaidang Oct 24, 2026
7db5130
feat(ui): add reusable ribbon split button (#835)
deniial00 Oct 24, 2026
91c3b0a
feat(symbology): manual class breaks (#822)
alteralto Oct 24, 2026
8c718b0
fix(ui): allow selecting a field before applying unique symbology (#738)
devjuhans Oct 24, 2026
8e101b2
feat(labels): draw labels in an installed font family, by name (#824)
pick2510 Oct 24, 2026
f5215c2
feat(map): open QGIS projects as maps and apply QGIS layer styles (#825)
pick2510 Oct 24, 2026
9f30da4
feat(s3): remember saved connection keys (#794)
deniial00 Oct 24, 2026
7853f13
fix: restore main builds after QGIS and connection merges (#840)
giswqs Oct 24, 2026
a277810
feat(ui): complete project names in the Script pane (#817)
choupeanut Oct 24, 2026
42e8909
fix: address zonal statistics review feedback (#838)
giswqs Oct 24, 2026
302288d
fix: include web tile layers in map search (#834)
deniial00 Oct 24, 2026
0caaae7
i18n: translate 162 new interface strings in every language (#843)
giswqs Oct 24, 2026
601a003
perf(data): hold paged service features as their JSON text (#841)
Mavrick-F Oct 24, 2026
ebbe8a5
feat(layout): export a layout to SVG (#839)
alteralto Oct 24, 2026
0ef9f3e
feat(labels): choose, add, rename, remove and order label classes in …
jgregoriorincon Oct 24, 2026
7448b13
fix(ui): name label class controls for accessibility (#849)
giswqs Oct 24, 2026
74c4fa7
fix(map): QGIS import follow-ups: TRUE/FALSE and exponents in filters…
pick2510 Oct 24, 2026
d76e1fc
fix(ui): run the SQL pane's query once per Ctrl+Enter, not for each k…
jgregoriorincon Oct 24, 2026
59cafd0
Data: preserve national datum shifts in ESRI WKT (#850)
giswqs Oct 24, 2026
f3f306b
Release v0.4.0: version, roadmap and highlights (#847)
giswqs Oct 24, 2026
c281e2a
fix(analysis): join layers with different source CRSs (#854)
Mavrick-F Oct 24, 2026
3db98db
Add polygon, lasso, and radius map selection (#855)
deniial00 Oct 25, 2026
305784f
feat(ui): offer field names in arrays and in keys that take a field i…
jgregoriorincon Oct 25, 2026
708cc07
Data: refuse destructive GeoPackage overwrites (#857)
giswqs Oct 25, 2026
c9efee9
fix(edit): preserve same-feature targets when snapping vertices (#818)
yongyin-leon Oct 25, 2026
4e9e12c
chore(i18n): translate selection and label class strings (#860)
giswqs Oct 25, 2026
25bf787
fix(edit): honor vertex snapping for Point and MultiPoint targets (#859)
yongyin-leon Oct 25, 2026
9a88d22
docs(roadmap): fill in the everyday workflow's missing steps (#861)
Mavrick-F Oct 25, 2026
c627efe
feat(labels): the ribbon's label groups edit and choose the Labeling …
jgregoriorincon Oct 25, 2026
1890b5a
CI: keep skipped runs from cancelling the downloads mirror sync (#866)
giswqs Oct 25, 2026
314fdb7
fix(edit): discard stale vertex drag gestures (#867)
yongyin-leon Oct 25, 2026
9003276
docs: archive RustGIS on Zenodo and add citation (#869)
giswqs Oct 25, 2026
2aaa0f0
feat(python): add PMTiles archive helper (#870)
choupeanut Oct 25, 2026
8bb3ba4
Layouts: pick a publication sheet's style from the New Layout menu (#…
elpidioassinaturas Oct 25, 2026
e24fbe9
feat(map): QGIS import reads merged categories, dashes and QGIS 1/2 n…
pick2510 Oct 25, 2026
84a1f2f
fix(ui): keep checkbox menus open while editing options (#878)
deniial00 Oct 25, 2026
f961a5a
feat(map): QGIS import colours rasters as QGIS does, and QGIS raster …
pick2510 Oct 25, 2026
8b7bf36
feat(analysis): Spatial Join by centre, largest overlap, closest and …
Mavrick-F Oct 25, 2026
e926fdf
fix(ui): correct layer drop placement and list endpoints (#875)
choupeanut Oct 25, 2026
2ddf68c
fix(data): say when a zip entry is encrypted or ZIP64, and allow 65,5…
subarna-kandel Oct 25, 2026
c0f3aee
test(map): a corpus of QGIS projects and styles the importer reads (#…
pick2510 Oct 25, 2026
fe76ca5
feat(labels): a class header in the Labeling pane, with Remove set ap…
jgregoriorincon Oct 25, 2026
c882073
fix(ui): restore whole-block layer drop halves (#893)
deniial00 Oct 25, 2026
57ab7bd
Assistant: keep the ChatGPT sign-in's tokens in the OS keychain (#884)
deniial00 Oct 25, 2026
4a33d80
Web data: a catalog of data cubes, opened in one step (#683, part 1) …
elpidioassinaturas Oct 25, 2026
4a8d598
feat(map): QGIS projects in degrees open in Equirectangular, as QGIS …
pick2510 Oct 25, 2026
87699f1
fix(analysis): use normalized polygon coordinates for zonal statistic…
choupeanut Oct 25, 2026
6ef386d
Analysis: trends and summaries over raster stacks on mixed grids and …
elpidioassinaturas Oct 25, 2026
f3aaf35
feat(project): portable data paths and Repair Data Source (#886)
deniial00 Oct 25, 2026
e6a8204
feat(map): markers and hash marks along lines, as QGIS's marker and h…
pick2510 Oct 25, 2026
797ccab
i18n: add Polish (pl) interface language (#901)
Wolren Oct 25, 2026
894f8b3
fix(render): marks along a line on the globe follow it up to the hori…
pick2510 Oct 25, 2026
ab2e96c
test(ui): the blocked-stdin Stop test waits for the agent's stop job …
pick2510 Oct 25, 2026
8a45fce
Analysis: buffers, Tissot's circles and Spatial Join distances on the…
elpidioassinaturas Oct 25, 2026
c7bf8e1
docs: define ribbon design and contribution guidelines (#903)
deniial00 Oct 25, 2026
624c5e7
Plugins: document the native Rust process template (#910)
giswqs Oct 25, 2026
39065f7
fix(render): bound the pixels an SVG layout export embeds (#912)
alteralto Oct 26, 2026
99a7661
feat(labels): the Labeling pane in a tab per topic, the map's setting…
jgregoriorincon Oct 26, 2026
497ee1a
ArcGIS: sign in to ArcGIS Online and Enterprise portals with OAuth (#…
giswqs Oct 26, 2026
bc664ff
Symbology: the full matplotlib colour map library, as GeoLibre lists …
giswqs Oct 26, 2026
ce68096
fix(analysis): keep polygon simplification monotonic at large toleran…
choupeanut Oct 26, 2026
81997d2
Raster: new single-band rasters drawn with gray, Invert off (#920)
giswqs Oct 26, 2026
bce9695
refactor(labels): the label field as a searchable box, as the font is…
jgregoriorincon Oct 26, 2026
f50e7a0
fix(render): slanted label letters are solid, without stripes (#927)
pick2510 Oct 26, 2026
096e60e
feat(map): a character of a font as a marker, as QGIS's font markers …
pick2510 Oct 26, 2026
e1432b9
feat(ui): autosave unsaved work and offer it back after a crash (#896)
Mavrick-F Oct 26, 2026
c0826b1
test(analysis): check overlay, selection and join tools against GEOS …
Mavrick-F Oct 26, 2026
adef76c
Python: rustgis.qt.MapWidget, the app in a Qt application (#922)
giswqs Oct 26, 2026
147dbef
fix(map): zoom in to site plans and finds drawings, past 1:1 (#923)
Mavrick-F Oct 26, 2026
2dc918b
Services: ask a WFS, OGC API or ArcGIS feature layer for an area only…
elpidioassinaturas Oct 26, 2026
259287c
fix(analysis): calculate geometry attributes on the WGS 84 ellipsoid …
choupeanut Oct 26, 2026
342b2b2
feat(map): a point's marks stacked, shifted and turned, and markers t…
pick2510 Oct 26, 2026
2f08089
fix(engine): reject indirect task re-entry (#941)
yongyin-leon Oct 26, 2026
d87fed6
feat(edit): move coincident polygon vertices together (#929)
yongyin-leon Oct 26, 2026
55eb88b
Data: read Monte Mario (Rome) from .prj and WKT2, and add Italian CRS…
GISspecialistAlejandraDuque Oct 26, 2026
cee4fd9
Reorganize Home ribbon with Locate dropdown and direct data access (#…
deniial00 Oct 26, 2026
01c85f5
Honour the legacy GeoJSON crs member on import (#936)
deniial00 Oct 26, 2026
f0edee9
feat(layout): bring a layout element to the front or send it to the b…
huzaifffa Oct 26, 2026
4be56a9
chore(ci): use Haiku 5.5 for Claude reviews (#950)
giswqs Oct 26, 2026
020d4b2
fix(geom): preserve invalid haversine distances (#937) (#946)
choupeanut Oct 26, 2026
a5f50ce
Services: follow-ups to #924 (a plainer note, /items in any case, the…
elpidioassinaturas Oct 26, 2026
b5ead75
feat(ui): a fixed Labeling tab for every label control on the ribbon …
jgregoriorincon Oct 26, 2026
d779339
fix(geom): show nonfinite measurements as unavailable (#938) (#960)
choupeanut Oct 26, 2026
bf9b2c1
feat(ui): choose which layers to add from a file holding several (#93…
pick2510 Oct 26, 2026
9826ef2
fix(ui): reserve popup header space for controls (#955)
deniial00 Oct 26, 2026
29d9b3e
Layouts: any installed font family for a text element, with sans or s…
elpidioassinaturas Oct 26, 2026
e3b3047
Analysis: project a raster onto a chosen grid (raster.project, #821 p…
elpidioassinaturas Oct 26, 2026
9285e05
feat(services): identify WMS layers with GetFeatureInfo (#943)
pick2510 Oct 26, 2026
7916c0c
fix(data): reject impossible FlatGeobuf index sizes (#965)
choupeanut Oct 26, 2026
0844c6e
docs(comparison): present RustGIS and GeoLibre as complements (#951) …
Mavrick-F Oct 26, 2026
a5aea60
feat(map): Arithmetic Progression and Head/Tail Breaks class methods,…
gsueur Oct 26, 2026
889da8a
fix(services): ask a WMS layer again in the next answer format after …
pick2510 Oct 26, 2026
a302b93
Perf: read WKB coordinate runs in bulk, write WKT into one buffer (#968)
Wolren Oct 26, 2026
6f4533e
feat(raster): label legend classes with the category names of the .au…
GISspecialistAlejandraDuque Oct 26, 2026
9edfc91
refactor(labels): one note under the label class SQL, the first thing…
jgregoriorincon Oct 26, 2026
aeaebc2
feat(ui): ask to save unsaved changes before quitting or replacing th…
Mavrick-F Oct 26, 2026
67b2fe3
feat(web): a Dockerfile to self-host the web app (#974)
flight1973 Oct 26, 2026
fef9fee
feat(labels): a halo's own colour and width, and letter spacing, as Q…
pick2510 Oct 26, 2026
e40d9d2
feat(labels): a halo's own colour and width, and letter spacing, as Q…
pick2510 Oct 26, 2026
1ef4ac8
chore(deps): bump anthropics/claude-code-action (#977)
dependabot[bot] Oct 26, 2026
4dbe109
chore(deps): bump ureq (#978)
dependabot[bot] Oct 26, 2026
08d3f80
chore(deps): bump pollster from 0.4.0 to 1.0.1 (#983)
dependabot[bot] Oct 26, 2026
3472ac4
chore(deps): bump miniz_oxide from 0.8.9 to 0.9.1 (#979)
dependabot[bot] Oct 26, 2026
8c88d83
chore(deps): bump weezl from 0.1.12 to 0.2.1 (#981)
dependabot[bot] Oct 26, 2026
46c5475
chore(deps): bump calamine from 0.36.1 to 0.37.0 (#985)
dependabot[bot] Oct 26, 2026
1751941
ci(docker): publish the web app and command line images to ghcr.io (#…
giswqs Oct 26, 2026
4fb510c
ci(docker): publish only from main and releases; latest follows main …
giswqs Oct 27, 2026
49fb0e4
chore(deps): bump epaint_default_fonts from 0.36.2 to 0.37.0 (#992)
dependabot[bot] Oct 27, 2026
249c61a
fix(data): preserve ASCII grid pixel dimensions (#987) (#989)
choupeanut Oct 27, 2026
9323f42
chore(deps): bump zip from 2.4.2 to 9.0.5 (#990)
dependabot[bot] Oct 27, 2026
3d2e650
chore(deps): bump pyo3 from 0.29.3 to 0.30.1 (#991)
dependabot[bot] Oct 27, 2026
55a75b2
fix(labels): the class rule note only with more than one visible clas…
jgregoriorincon Oct 27, 2026
eea2bc0
Tweak/add from service dialog QoL (#975)
mgaux-dev Oct 27, 2026
b07f232
feat(analysis): add an Intersect overlay tool (#980)
Mavrick-F Oct 27, 2026
659873b
ci: add a claude-autofix label workflow (#996)
giswqs Oct 27, 2026
6abc4b9
fix(ci): resolve autofix threads with the maintainer token (#997)
giswqs Oct 27, 2026
6a5ea1a
fix(ci): resolve threads autofix finds already addressed (#999)
giswqs Oct 27, 2026
db02a22
fix(analysis): break mode ties as GDAL does in Project Raster (#972)
GISspecialistAlejandraDuque Oct 27, 2026
e6c26ff
fix(ci): harden the claude-autofix workflow (#1002)
giswqs Oct 27, 2026
7436515
feat(labels): a label's offset and background, as QGIS's offset from …
pick2510 Oct 27, 2026
8c6adc8
feat(services): WMS and WMTS legends in the Layers pane, as ArcGIS Pr…
pick2510 Oct 27, 2026
0a59cb5
fix(ui): a tile legend's screen-reader label is translatable as one m…
pick2510 Oct 27, 2026
9ad05db
feat(layouts): measured grids, eastings and northings in a projected …
pick2510 Oct 27, 2026
4e5ea10
feat(analysis): add Identity and Union overlay tools (#982)
Mavrick-F Oct 27, 2026
af5f5db
fix(ci): unbreak the autofix thread staging script (#1015)
giswqs Oct 27, 2026
c0488c5
test(render): accept a blended text edge in the turned label backgrou…
giswqs Oct 27, 2026
40638b1
fix(ci): stop autofix's git add failing on the ignored .autofix (#1018)
giswqs Oct 27, 2026
20eb7e9
fix(ci): unstage .autofix with git reset, not git rm --cached (#1020)
giswqs Oct 27, 2026
4f4e00d
feat(labels): wrapping and repeat along lines, as QGIS's wrap and rep…
pick2510 Oct 27, 2026
21c5fd7
docs(citation): add Dominik Strebel's ORCID (#1024)
pick2510 Oct 27, 2026
f019dea
feat(ui): a right-click menu on every text field: undo, cut, copy, pa…
pick2510 Oct 27, 2026
413cc92
docs(citation): Dominik Strebel in the citations (#1026)
pick2510 Oct 27, 2026
9dcc214
docs: encourage screenshot evidence for visible UI changes (#1028)
deniial00 Oct 27, 2026
3a2d52d
feat(web): Paste in a text field's right-click menu reads the clipboa…
pick2510 Oct 27, 2026
5445d00
feat(postgis): a PostGIS tab to connect, edit and save tables, refusi…
andriyanto Oct 27, 2026
9cf3790
feat(layers): new layers go on top, web tile layers take a place amon…
pick2510 Oct 27, 2026
5302ee3
fix(web): filter QGIS project picker for qgs and qgz (#1030)
deniial00 Oct 27, 2026
69e9688
fix(plugins): show one full-description tooltip in Browse (#1035)
deniial00 Oct 27, 2026
a0bbe33
fix(macos): keep the bundle's icon in the Dock (#1036)
janroller96 Oct 27, 2026
58e0d34
feat(symbology): stacked polygon fills — hatch lines and markers, fro…
pick2510 Oct 27, 2026
5a65770
fix(layers): tile layers stay over a layer or group that a move leave…
pick2510 Oct 27, 2026
01daeee
feat(analysis): add a Near tool (#984)
Mavrick-F Oct 27, 2026
e281afb
feat(tiles): export vector layers to PMTiles (#1006)
deniial00 Oct 27, 2026
3246a71
fix(project): a saved selection holds each row once, in order (#1032)
flight1973 Oct 27, 2026
2601809
feat(identify): tile layers can be selected in Layers and identified …
pick2510 Oct 27, 2026
f200e88
feat(assistant): read standalone tables with read_features (#1038)
Mavrick-F Oct 27, 2026
e043d0f
docs(analysis): drop the built-in tool count (#1044)
flight1973 Oct 27, 2026
aea3ddc
feat(analysis): Feature Vertices To Points, a point at each vertex (#…
flight1973 Oct 27, 2026
8c80c5b
feat(project): import GeoLibre projects as maps (#1005)
Mavrick-F Oct 28, 2026
171b944
Data: open Shapefiles too large to load whole in place (#1058)
giswqs Oct 28, 2026
b5435c7
fix(map): keep the frame while a layer over tiles is restyled (#1059)
giswqs Oct 28, 2026
35e149c
fix(models): a model from a file has each step checked with its tool …
pick2510 Oct 28, 2026
faba969
feat(data): read GeoTIFFs made on request in place from addresses wit…
siiinc Oct 28, 2026
c961d6e
Open the STAC dialog on sentinel-2-c1-l2a (#1069)
elpidioassinaturas Oct 28, 2026
b01ee26
fix(macos): keep the bundle's icon in the Dock, not egui's (#1074)
pick2510 Oct 28, 2026
f800cd4
fix(data): keep every database schema and table reachable (#1073)
deniial00 Oct 28, 2026
f926b95
perf(render): mitre the outlines of small filled polygons (#1064) (#1…
pick2510 Oct 28, 2026
0b7b10a
Web data: a Data Cubes pane, and the catalog of data cubes kept up to…
elpidioassinaturas Oct 28, 2026
32c7a6f
Add keyboard shortcut customization (#1004)
choupeanut Oct 28, 2026
128a5e3
feat(analysis): several statistics and case fields in Summary Statist…
Mavrick-F Oct 28, 2026
487caea
fix(data): read the .dbf language drivers dbase doesn't know (#1079) …
pick2510 Oct 28, 2026
d248019
chore: late review fixes for small-polygon outlines and .dbf language…
pick2510 Oct 28, 2026
351c190
feat(data): save GeoPackage edits back to their source table (#1045)
deniial00 Oct 28, 2026
7d0b289
Use saved secrets from the CLI and Python (#1037)
deniial00 Oct 28, 2026
d01ea4e
feat(analysis): add a Pivot Table tool (#1084)
Mavrick-F Oct 28, 2026
7345c6e
UI: open the Notebook beside the map on half the window (#1089)
giswqs Oct 28, 2026
8dafff4
Docs: say the Notebook pane opens at least 320 points wide (#1090)
giswqs Oct 28, 2026
9994d5f
fix(ui): a WMS layer's answer takes its place in the pop-up by drawin…
pick2510 Oct 28, 2026
ab5a6cb
fix(data): write a .prj for Swiss, Krovak and named-meridian systems …
pick2510 Oct 28, 2026
39e7a66
fix(ui): the identify pop-up waits for the WMS answers to show all it…
pick2510 Oct 28, 2026
d58cb8a
feat(analysis): add native Merge tool for vector layers (#1076)
choupeanut Oct 28, 2026
5943682
feat: WMS layers with a time dimension, and WMS and WMTS time layers …
pick2510 Oct 28, 2026
72ac236
test(data): cover documented DBF language-driver markers (#1091)
choupeanut Oct 28, 2026
def2b47
feat(tiles): source layers of a vector archive in the Layers pane, ea…
deniial00 Oct 28, 2026
2ba357c
feat(layers): nested layer groups and outline commands to indent and …
deniial00 Oct 28, 2026
119552a
feat: layers with a time dimension follow the time slider by default …
pick2510 Oct 28, 2026
04c8348
docs: a period longer than the time slider's steps is stepped every s…
pick2510 Oct 28, 2026
6a73226
feat(symbology): gradient and shapeburst polygon fills, from QGIS fil…
pick2510 Oct 28, 2026
13aee13
fix(render): a thin shapeburst's tiles stop at the frame's budget (#1…
pick2510 Oct 28, 2026
58a4bbb
fix(data): refuse a source over the read limit instead of reading a s…
deniial00 Oct 29, 2026
8e0de46
fix(engine): inspect format before parsing to handle newer versions (…
sutharprin098 Oct 29, 2026
986aab7
fix(ui): live tiles move with a GPU scene shown as a picture (#1124)
pick2510 Oct 29, 2026
b1e4e79
Merge opengeos/RustGIS main into the fork (keeps the SWAT+ crates)
claude Oct 29, 2026
cef8c68
Cargo.lock: the SWAT+ crates at the workspace's version 0.4.0
claude Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Kept out of the Dockerfile's build context: build output, local state and secrets. The Dockerfile
# itself is read separately, so leaving it out means editing it doesn't rebuild the app.
/target
/dist
/site
/plan
/private
# Every dot-file and dot-folder at the root (.git, .github, editors' and tools' local state) but
# .cargo, which holds the `cargo xtask` alias the build uses; and .env files at any depth.
/.*
!/.cargo
**/.env
**/.env.*
**/__pycache__
**/.DS_Store
Dockerfile
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,22 @@ updates:
- minor
- patch

# The base images of the Docker images (the web app's Dockerfile at the root, the command line's
# in packaging/docker), pinned by tag and digest.
- package-ecosystem: docker
directories:
- "/"
- "/packaging/docker"
schedule:
interval: weekly
open-pull-requests-limit: 2
groups:
docker-minor-patch:
applies-to: version-updates
update-types:
- minor
- patch

# GitHub Actions used by the workflows in .github/workflows/.
- package-ecosystem: github-actions
directory: "/"
Expand Down
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@

<!-- How did you verify it? e.g. `cargo xtask ci`, new tests, a `ui_shot` screenshot, manual steps. -->

## UI evidence

<!-- For substantial visible UI changes, include screenshots (before/after where useful).
Omit this section if there is no visible UI change. -->

## Related issue

<!-- e.g. Closes #123, or Part of #456. -->
30 changes: 30 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,36 @@ jobs:
- name: Build for the browser
run: cargo build --locked --target wasm32-unknown-unknown -p rustgis-web

# Every dependency's licence must be one the project accepts (deny.toml). The third-party
# notices the packages ship (`cargo xtask notices`) only warn here when out of date, since
# Dependabot can't regenerate them; the release build requires them current.
licenses:
name: Licences
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
# Only main saves the cache (see test-rust.yml).
save-if: ${{ github.ref == 'refs/heads/main' }}
- uses: taiki-e/install-action@v2
with:
tool: cargo-deny,cargo-about@0.9.2
- name: Dependency licences
run: cargo deny --locked check licenses
- name: Third-party notices
# Exit code 2 is stale notices (a warning); anything else (cargo-about failing, a licence
# it can't work out) fails the job.
run: |
status=0
cargo xtask notices --check || status=$?
if [ "$status" -eq 2 ]; then
echo "::warning::THIRD-PARTY-LICENSES.txt is out of date: run cargo xtask notices and commit it before the next release."
elif [ "$status" -ne 0 ]; then
exit "$status"
fi

plan:
name: Platforms
runs-on: ubuntu-latest
Expand Down
812 changes: 812 additions & 0 deletions .github/workflows/claude-autofix.yml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ jobs:
# does not strand us on an old version. When it bumps, re-read the
# action's release notes for changes to the scrub, MCP wiring, or the
# `execution_file` contract that the summary step below parses.
uses: anthropics/claude-code-action@a26b07d8c778b0c43f64618e5fd29fd0f8af72e8 # v1 (Claude Code 2.1.220)
uses: anthropics/claude-code-action@16f9f71ab9c490faf367f94dd294897edc25be33 # v1 (Claude Code 2.1.220)
with:
# Use the workflow's GITHUB_TOKEN for GitHub API calls instead of the
# default OIDC -> Claude GitHub App token exchange. That exchange
Expand Down Expand Up @@ -417,6 +417,7 @@ jobs:
# comes from the checkout plus `pr-context/`; output goes through the
# inline-comment MCP server and the final message. See the header.
claude_args: |
--model claude-haiku-5-5
--allowedTools "Read,Grep,Glob,mcp__github_inline_comment__create_inline_comment"
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options
Expand Down
Loading
Loading