Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3289 commits
Select commit Hold shift + click to select a range
d729f90
temporal: allow STDS object construction without initialized database…
Jul 13, 2026
2e02066
r.reclass.area: add upper and lower option and rewrite with Tools API…
Jul 13, 2026
32785cd
CQ: Fix CodeQL issues "Incorrect return-value check for a 'scanf'-lik…
Jul 13, 2026
29bf67c
CI: Set OMP_NUM_THREADS=1 for tests run in parallel (#7680)
Jul 13, 2026
842a5d7
r3.out.vtk: Fix typo in translated string (#7685)
Jul 13, 2026
46db581
grass.temporal: Fix swapped rows and cols in map metadata (#7681)
Jul 13, 2026
425d460
packaging: Update min Python version to 3.11 (#7684)
Jul 13, 2026
01ac43d
CMake: Build man pages from markdown (#7674)
Jul 14, 2026
e0672ab
grass.pygrass: Add the psycopg2 hint as an exception note (#7690)
Jul 14, 2026
be451c4
grass.gunittest: Add the module name as an exception note (#7689)
Jul 14, 2026
d4b639d
v.class: Fix out-of-bounds read when no records are selected (#7692)
Jul 14, 2026
3e84f7c
v.geometry: new tool (v.to.db wrapper) for more obvious access to vec…
Jul 14, 2026
f5cd4fa
wxGUI: Add the matplotlib hint as an exception note (#7688)
Jul 14, 2026
5deb0f6
docs: howto_release.md: update OSGeo server names (#7711)
Jul 14, 2026
7a67a80
packaging: Remove locale fallbacks for Python older than 3.11 (#7697)
Jul 14, 2026
223c373
wxGUI: Support for Jupyter-based workflows (#5901)
Jul 14, 2026
795f878
lib/psdriver: Print double coordinates with %f, not %d (#7700)
Jul 14, 2026
7d24287
lib/ogsf, lib/nviz: Fix multiplications converted to a larger type (#…
Jul 14, 2026
ec57867
r.unpack, v.unpack: Refuse to extract archives without a tarfile filt…
Jul 14, 2026
6ccda37
libraries: Fix multiplications converted to a larger type (#7705)
Jul 14, 2026
7a696db
r.sunmask, d.linegraph: Compute trig products in double (#7712)
Jul 14, 2026
f85545a
checks: Exclude vendored code from bandit scanning (#7699)
Jul 15, 2026
4c45878
doc: How to release: follow up typos (#7718)
Jul 15, 2026
e193ca7
grass.temporal: Fix end time parsing when registering relative-time m…
Jul 15, 2026
4683662
d.linegraph: Follow-up fixes for typos, dereference pointers, and for…
Jul 15, 2026
8031e36
t.info: Add tests (#7682)
Jul 15, 2026
f131b6c
grass.utils: Fix the download error message and limit the URL schemes…
Jul 15, 2026
f0970ee
grass.script: add create_mapset function (#7298)
Jul 15, 2026
9893d68
temporal: handle TGIS DB connections for half initialized mapsets (#7…
Jul 15, 2026
e50e16c
raster: Fix three single-alert CodeQL findings (#7702)
Jul 15, 2026
57968d6
t.rast.list: allow method gran with where option (#7678)
Jul 15, 2026
22df76e
python: Use argument lists instead of shell=True for subprocess (#7703)
Jul 15, 2026
c6459dc
doc: use absolute links in style guide, add link to cookiecutter (#5656)
Jul 15, 2026
f634639
db.univar: fix Python error when input table not existing (#7726)
Jul 15, 2026
7aec9f2
g.extension: Install markdown documentation for addons (#7676)
Jul 15, 2026
f037662
CMake: Fix stale staging of headers, modules list, and temporal SQL i…
Jul 15, 2026
c7fc4ea
grass.temporal: Add registered_maps_grouped() and honor dbif mapsets …
Jul 15, 2026
0aaa18e
style: fix ruff rules RUF019 and PTH104 (#7693)
Jul 16, 2026
6dc1110
grass.temporal: Use an explicit env in the gui_support test session (…
Jul 16, 2026
afa4221
tests: Add pytest coverage for the temporal framework and R-tree bind…
Jul 16, 2026
36f3025
CMake: Build the MkDocs documentation site (#7719)
Jul 16, 2026
9e9262b
MSVC: Improve MSVC support (part 3) (#5514)
Jul 17, 2026
d141869
CI: Change codecov test result upload action on macOS & Windows (#7683)
Jul 17, 2026
c80cbf1
r.param.scale: parallelize with OpenMP (#7440)
Jul 17, 2026
d6c75ad
Checks: Add Gersemi to format cmake files in pre-commit (#7696)
Jul 17, 2026
c77cf20
v.proj: Seed region from default window to ignore region override (#7…
Jul 17, 2026
cb04122
r.cross: migrate tests from gunittest to pytest (#7635)
Jul 17, 2026
f778540
wxGUI: fix orphaned drag image windows when dragging layers in layer …
Jul 17, 2026
7b77106
docs: Fix reStructuredText markup in Python docstrings (#7741)
Jul 17, 2026
b6b18bd
v.proj: fix reprojection with smax=0 from latlon (#7730)
Jul 17, 2026
0b25cf0
docs: Generate libpython API docs only under the grass namespace (#7740)
Jul 17, 2026
bcca890
style: Fix raise-without-from-inside-except (B904) (#4032)
Jul 17, 2026
740266b
g.extension: Skip official repo query when installing from other sour…
Jul 17, 2026
4c0c6b7
CI: Replace softprops/action-gh-release with `gh release create` (#7745)
Jul 17, 2026
f53f2b4
CI(deps): Update pre-commit hook zizmorcore/zizmor-pre-commit to v1.2…
Jul 17, 2026
b1701e5
t.rast.import: use platform-indendent tempdir default (#7742)
Jul 17, 2026
c4d0dfd
grass.script: RegionManager/RegionManagerEnv: Add support for storing…
Jul 17, 2026
e37a2aa
wxGUI: Share watchdog Observer to fix FSEvents RuntimeError (#7677)
Jul 18, 2026
9912224
gui: Remove shadowing of `type()` and typo in class attribute (#7753)
Jul 18, 2026
8d7d331
i.spectral: fix text output to write band values (#7488)
Jul 18, 2026
5394d8e
CI: Fix inverted condition disabling ccache and mold in doc builds (#…
Jul 18, 2026
4f5ca7b
gui: fix exception in gconsole.py (#6903)
Jul 18, 2026
f4e55d1
Translations update from OSGeo Weblate (#7758)
Jul 18, 2026
0e625c9
grass.gunittest: Fix html reporter output (#7754)
Jul 18, 2026
608efca
locale: Update translation files (114) (#7761)
Jul 19, 2026
a12020a
CI: Increase documentation workflow artifact to from 3 to 15 days (#7…
Jul 23, 2026
0c9de21
docker: update grass-session test to use tools (#7768)
Jul 24, 2026
651992d
Translations update from OSGeo Weblate (#7770)
Jul 24, 2026
67a183c
docs: Fix libpython Sphinx canonical and sitemap version (#5935) (#7760)
Jul 24, 2026
0163d24
docs: noindex development manuals so they defer to grass-stable (#7772)
Jul 25, 2026
61a01ad
CI(deps): Update dependency pymdown-extensions to v11 [SECURITY] (mai…
Jul 25, 2026
7050369
lib/proj: fix data race on METERS_in/METERS_out in coordinate transfo…
Jul 25, 2026
f040304
locale: Update translation files (116) (#7779)
Jul 25, 2026
8ff9ef6
CI: drop redundant libpython sitemap after the manuals merge (#7781)
Jul 26, 2026
94f43ae
docs: fix logic for applying noindex to manuals (#7782)
Jul 27, 2026
acb695e
r.geomorphon: check region rows against search radius before reading …
Jul 29, 2026
a3f62a3
docs: add lastmod to libpython sitemap entries (#7786)
Jul 29, 2026
f92ca42
CI(deps): Update actions/checkout action to v7.0.1 (main) (#7794)
Aug 1, 2026
25eb6cf
CI(deps): Update ubuntu:24.04 Docker digest to 4fbb8e6 (main) (#7793)
Aug 1, 2026
4a165a5
CI(deps): Update dependency OSGeo/gdal to v3.13.2 (main) (#7796)
Aug 1, 2026
365d9ac
CI(deps): Update dependency mkdocs-material to v9.7.7 (main) (#7795)
Aug 1, 2026
b152bfd
locale: Update translation files (117) (#7797)
Aug 1, 2026
90b1efa
CI(deps): Update debian Docker tag to v13.6 (main) (#7800)
Aug 1, 2026
45e081e
CI(deps): Update actions/setup-python action to v7 (main) (#7801)
Aug 1, 2026
28e3842
r.resamp.stats: Fix quantile option being truncated to an integer (#7…
Aug 3, 2026
9354472
r.resamp.stats: OpenMP parallelization with memory chunking (#7044)
Aug 4, 2026
4229ab8
doc: cmake compilation guide (#7744)
Aug 6, 2026
d1f10ce
r.timestamp: Add pytest test suite (#7802)
Aug 6, 2026
0850a40
r.reclass.area: preserve backwards compatibility (#7806)
Aug 7, 2026
ba1d7b7
g.gisenv: Add pytest test suite (#7803)
Aug 8, 2026
89b771c
locale: Update translation files (119) (#7813)
Aug 8, 2026
ff8f81f
r.geomorphon: replace testsuite with pytest reference (#7785)
Aug 9, 2026
00f13d7
CI(deps): Update dependency pymdown-extensions to v11.0.1 [SECURITY] …
Aug 9, 2026
79d56d9
Translations update from OSGeo Weblate (#7818)
Aug 15, 2026
3ebde05
temporal: Remove SQLite < 3.33 workaround (#7825)
Aug 16, 2026
251d7f0
r.geomorphon: parallelize with OpenMP using memory-bounded banding (#…
Aug 18, 2026
8f156a1
wxGUI/tplot: Make the window resizable and add padding for nicer look…
Aug 18, 2026
4677089
doc: building_with_cmake.md was not built (#7829)
Aug 19, 2026
0eed105
CMake: Rebuild g.gui.* modules when their sources change (#7830)
Aug 19, 2026
74eb64c
wxGUI/datacatalog : Add STDS in datacatalog (#7608)
Aug 19, 2026
236b827
wxGUI/jupyter_notebook: fix copying missing template notebook files (…
Aug 20, 2026
058b1a2
wxGUI/datacatalog: Add db path tooltip to nodes (#7824)
Aug 20, 2026
681365c
wxGUI/animation: Fix freeze and descriptor exhaustion on large datase…
Aug 20, 2026
28bf457
CMake: Copy proj tables to build output tree (#7831)
Aug 20, 2026
2446d88
wxGUI/animation: Integrate `g.gui.animation` into the GUI as a tab (#…
Aug 21, 2026
63e582d
r.proj: replace gunittest testsuite with pytest method reference test…
Aug 21, 2026
8f39c47
grass.pygrass: Fix resource_tracker semaphore warning at exit (#7833)
Aug 21, 2026
f87bf84
locale: Update translation files (122) (#7838)
Aug 22, 2026
fc2cd0a
r.coin: Fail when r.stats returns no data (#7841)
Aug 23, 2026
adc7220
r.sim: fix infiltration implementation (#5623)
Aug 24, 2026
1c68432
r.in.pdal: fix reported data extent when CRS doesn't match (#6465)
Aug 24, 2026
18f5980
docs: Add name to GRASS citation list (#7845)
Aug 24, 2026
8ecfa87
r.stats: bump up counts storage to unsigned long long (#7790)
Aug 24, 2026
8d92e45
doc: remove stale fields in CITATION.cff (#7846)
Aug 25, 2026
f5ebd74
v.ppa: Point Pattern Analysis (#3826)
Aug 25, 2026
9612019
tools: Fix multiplications converted to a larger type (#7708)
Aug 25, 2026
67e876e
wxGUI/datacatalog: Add Display animation option for space time datase…
Aug 25, 2026
c76c23b
man: Use build_manpages.py for the man page sweep in both builds (#7748)
Aug 26, 2026
a6ea876
docker: Update GDAL to 3.13.3 because of performance regression on Li…
Aug 26, 2026
69185b1
doc: Update OpenSSF Scorecard badge URLs in README (#7857)
Aug 27, 2026
6693c66
doc: Replace the broken Weblate badge in README (#7859)
Aug 27, 2026
fd71b02
contributing: Add a testing guide (#7851)
Aug 28, 2026
bde472e
r.support: migrate tests from gunittest to pytest (#7821)
Aug 28, 2026
3ed23b4
doc: Add fair-software.eu badge to README (#7856)
Aug 28, 2026
cf16f86
Translations update from OSGeo Weblate (#7867)
Aug 29, 2026
6874d10
locale: Update translation files (124) (#7870)
Aug 29, 2026
6b1ebbe
r.out.gdal: increase limit for the number of overviews (#7865)
Aug 29, 2026
1191c27
gui: add new datasets (Raleigh, NC and Flagstaff, AZ) for download (#…
Aug 31, 2026
646bcad
CI(deps): Update rui314/setup-mold digest to 7e4f20a (main) (#7873)
Sep 1, 2026
def0177
CI(deps): Update debian:13.6-slim Docker digest to d7e1218 (main) (#7…
Sep 1, 2026
a8b8670
r.lake: Only set seed point when coordinates are given (#7874)
Sep 1, 2026
6990dad
Python: Replace eval with safer alternatives (#7709)
Sep 2, 2026
c0f7eab
lib/datetime: Add pytest unit tests for datetime_scan and datetime_fo…
Sep 2, 2026
ba172cd
contributing: Use SPDX copyright tags in file headers (#7743)
Sep 3, 2026
c1d2645
contributing: Use SPDX copyright tags in individually resolved file h…
Sep 3, 2026
5734e23
r.mfilter: Avoid reopening NamedTemporaryFile on Windows in testsuite…
Sep 3, 2026
f80363f
contributing: Use SPDX copyright tags in complicated file headers (#7…
Sep 4, 2026
985dd24
contributing: Use SPDX copyright tags in unlabeled file headers (#7756)
Sep 4, 2026
a768b68
r.in.pdal: fix new Coverity Scan issues (#7883)
Sep 4, 2026
6911193
Translations update from OSGeo Weblate (#7890)
Sep 5, 2026
2713aa7
doc: Fix typos and wording across several tools (Jun-Jul 2026) (#7885)
Sep 5, 2026
53ea19e
CI(deps): Update super-linter/super-linter action to v8.7.0 (main) (#…
Sep 5, 2026
64b9720
r.sim.water: in manual page link r.manning addon instead of table (#7…
Sep 5, 2026
617ff65
CI(deps): Update pre-commit hook editorconfig-checker/editorconfig-ch…
Sep 5, 2026
14e4e27
style: Strip stray control characters instead of excluding files (#7891)
Sep 5, 2026
2a158b1
locale: Update translation files (125) (#7892)
Sep 5, 2026
5e2fdbc
r.lake: Reject seed coordinates on the region edge (#7877)
Sep 5, 2026
28b927c
chore: Ignore common AI agent worktree directories (#7886)
Sep 5, 2026
a36e184
checks: Mark justified partial-path subprocess calls as nosec B607 (#…
Sep 6, 2026
7c29b9c
CI: Enable XML in codespell and fix typos- #685 (#7900)
Sep 6, 2026
ed8cfd4
windows: Fix two Windows-only gunittest failures (#7895)
Sep 6, 2026
9c62793
grass.pygrass: Close RasterRow via context manager in region tests (#…
Sep 6, 2026
aa1c015
lib/raster3d/tilewrite: Use `>=` for tile index bounds check (#7723)
Sep 6, 2026
6131e37
r.in.pdal: fix uncaught exception (#7887)
Sep 6, 2026
8125c6f
cmake: fix configuration output (#7875)
Sep 6, 2026
b43c9b8
r.kappa: Avoid reopening NamedTemporaryFile on Windows in testsuite (…
Sep 6, 2026
252bcdf
CI: Run Windows pytest suite with xdist and randomized order (#7906)
Sep 8, 2026
b585c80
grass.pygrass: Mark test_raster_region resampling tests xfail on Wind…
Sep 8, 2026
1878fdf
temporal: Avoid PLY debug-mode overhead in raster algebra gunittest (…
Sep 8, 2026
aafd8a3
r.in.pdal: Add COPC support (#7213)
Sep 9, 2026
55de52a
tests: Add ctypes coverage for lib/arraystats and lib/rowio (#7879)
Sep 10, 2026
c83afef
lib: Make random number generation thread safe (#6480)
Sep 10, 2026
0f6a734
temporal: create limited connection to TGIS DB in current mapset for …
Sep 11, 2026
0b4a960
temporal: deliberately set nprocs for functions that use OpenMP-paral…
Sep 12, 2026
a61ec86
r.lake: Reject seed coordinates north or west of the region (#7899)
Sep 12, 2026
a239fd8
raster: Restrict GDAL-linked raster reads to the needed column range …
Sep 12, 2026
2a0b857
locale: Update translation files (127) (#7917)
Sep 12, 2026
4bb960b
lib/gis: add documentation for G_wait() (#7912)
Sep 12, 2026
b9443d8
grass.temporal: support fully qualified names on read (#7670)
Sep 15, 2026
8843f13
v.random: migrate tests from gunittest to pytest (#7822)
Sep 15, 2026
745b61f
g.remove: migrate tests from gunittest to pytest (#7896)
Sep 15, 2026
e8fd76f
contributing: Use SPDX copyright tags in more complicated file header…
Sep 17, 2026
3d8c29b
lib/gis: Return the child exit status from G_popen_close (#7847)
Sep 17, 2026
d2adb3a
v.what.strds: migrate tests from gunittest to pytest (#7898)
Sep 17, 2026
40fee68
docker: Update to Ubuntu 26.04 and related dependencies (#7921)
Sep 18, 2026
cef20c1
CI(deps): Lock file maintenance (main) (#7926)
Sep 18, 2026
6f4a0a5
CI(deps): Update ubuntu:26.04 Docker digest to 61ebaa5 (main) (#7925)
Sep 18, 2026
d2b1643
lib/cluster: Add pytest ctypes test suite (#7919)
Sep 18, 2026
08f30e8
tests: Un-shadow duplicated test method names in r.random and t.rast.…
Sep 18, 2026
b0a6d77
locale: Update translation files (128) (#7929)
Sep 19, 2026
a3f2e91
t.list: Add support for listing multiple dataset types (#7731)
Sep 23, 2026
cc18e7f
r.support: add coverage for metadata, history and null-file flags (#7…
Sep 23, 2026
2d31720
r.in.ascii: migrate tests from gunittest to pytest (#7780)
Sep 23, 2026
ef4b87c
contributing: Define the SPDX copyright header convention (#7749)
Sep 23, 2026
3ca4643
i.albedo: add Sentinel-2 broadband albedo support (#7935)
Sep 23, 2026
527588b
wxGUI: Skip size event in MapPanelBase.OnSize to let AUI lay out pane…
Sep 23, 2026
243ec75
configure: make sure to use C++17 standard (#7934)
Sep 23, 2026
b1c85ae
lib/vector: Reject out of range categories when reading ASCII (#7844)
Sep 23, 2026
8229439
r.clump: Fail with the clump limit instead of overflowing the index (…
Sep 23, 2026
31d4638
d.frame: Format fatal error messages with str.format (#7939)
Sep 23, 2026
e39fb8c
grass.pygrass: Pin fork start method for RPC servers on Python 3.14 (…
Sep 24, 2026
4912787
wxGUI/psmap: Remove dangling del busy in Preview() (#7946)
Sep 24, 2026
d24a5e0
r.in.gdal: Compare only the horizontal CRS with the project (#7936)
Sep 24, 2026
4921fe4
cmake: set BUILD_ARCH to resemble Autotool’s equivalent (#7369)
Sep 25, 2026
a8142dc
Translations update from OSGeo Weblate (#7955)
Sep 26, 2026
18d31b9
locale: Update translation files (129) (#7958)
Sep 26, 2026
d6d2eb2
CI: Workaround OSGeo4W OpenSSL DLL conflict by forcing one (#7959)
Sep 27, 2026
b587a90
Revert "CI: Workaround OSGeo4W OpenSSL DLL conflict by forcing one" (…
Sep 27, 2026
2d45381
CI(deps): Update dependency OSGeo/PROJ to v9.9.0 (main) (#7957)
Sep 27, 2026
475f8ee
v.in.pdal: deprecate -w flag (#7855)
Sep 29, 2026
2162f86
grass.script: Fix sign and hemisphere handling in float_or_dms (#7932)
Sep 29, 2026
5c89798
grass.temporal: Fix error messages when removing map timestamps (#7954)
Sep 29, 2026
d1bb794
grass.pygrass: Fix double lock release when stopping RPC servers (#7969)
Sep 29, 2026
9843891
r.sim: Simulate all walkers when running in parallel (#7964)
Sep 29, 2026
c69a52a
r.sim: Keep the diffusion coefficient in a walker-local variable (#7965)
Sep 29, 2026
6902ccf
r.sim.water: Add pytest tests with synthetic data (#7968)
Sep 29, 2026
2c573d9
r.sim.water: Document flow_control as trapping probability (#7971)
Sep 29, 2026
373ece5
lib/gis: set buffer to G_format_[northing|easting|resolution] to >=32…
Sep 29, 2026
4047b0f
lib/raster3d: fix int overflow in Rast3d_copy_values byte offset (#7970)
Sep 29, 2026
0d3ba70
lib/raster3d: allocate no-cache block tile in the map's internal type…
Sep 30, 2026
ddf66e9
r.sim: Add -p flag with format=json run summary and normalize history…
Sep 30, 2026
678916f
doc: Retire references to the fatra and skagit servers (#7963)
Sep 30, 2026
1f83c2d
r.sim: Add walker weights to the water depth atomically (#7974)
Sep 30, 2026
793b214
r.sim.water: updated example with mannings (#7975)
Sep 30, 2026
c630865
r.sim: Refuse to run in latitude-longitude projects (#7978)
Sep 30, 2026
ec90b1c
r.sim: Fix null Manning's n and infiltration handling (#7981)
Oct 1, 2026
07f3cc6
CI(deps): Update cachix/cachix-action digest to 38b0826 (main) (#7985)
Oct 1, 2026
53ff366
CI(deps): Update alpine:3.24 Docker digest to 294b683 (main) (#7984)
Oct 1, 2026
4f7f590
CI(deps): Update msys2/setup-msys2 action to v2.33.0 (main) (#7987)
Oct 1, 2026
3bbb87b
CI(deps): Update actions/labeler action to v7 (main) (#7991)
Oct 2, 2026
e2e2364
CI(deps): Update astral-sh/setup-uv action to v10 (main) (#7992)
Oct 2, 2026
4e0a6aa
wxGUI/nviz: fix 'window must be shown' error message during docking u…
Oct 2, 2026
2e636fb
r.sim: Replace custom chunk computation with OpenMP for loop (#7995)
Oct 2, 2026
33d985d
grass.temporal: Raise ValueError on invalid spatial relation (#7949)
Oct 2, 2026
4eef277
CI(deps): Update super-linter/super-linter action to v9 (main) (#7998)
Oct 2, 2026
39f5201
CI(deps): Update pre-commit hook BlankSpruce/gersemi-pre-commit to v0…
Oct 2, 2026
4d1b2d5
CI(deps): Update pre-commit hook editorconfig-checker/editorconfig-ch…
Oct 2, 2026
6a479c7
CI(deps): Update debian Docker tag to v13.7 (main) (#8000)
Oct 2, 2026
4d2da1c
r.sim: Lock the infiltration capacity of a cell (#8001)
Oct 2, 2026
8b60e9f
r.sim: Write time series maps at their output step times (#8003)
Oct 3, 2026
4d8e578
wxGUI: Store history region in g.region JSON format (#7973)
Oct 3, 2026
034a7a0
CI(deps): Update ubuntu:26.04 Docker digest to 88a381d (main) (#7999)
Oct 3, 2026
0083972
CI(deps): Update dependency pylint to v4.1.2 (main) (#7996)
Oct 3, 2026
ff84d21
locale: Update translation files (130) (#8006)
Oct 3, 2026
e7f07a3
build: Create output directory before generating resource_paths.py (#…
Oct 3, 2026
6e39994
lib/gis: Fix "implicit conversion loses integer precision" warnings (…
Oct 3, 2026
2b70a99
lib/raster: Fix "Implicit conversion loses integer precision" warning…
Oct 3, 2026
bb6a75c
libgis: Add reproducible random numbers for parallel tools (#7979)
Oct 4, 2026
000a00f
Translations update from OSGeo Weblate (#8018)
Oct 4, 2026
a5a14ae
locale: Make pot file generation stable (#8010)
Oct 5, 2026
4221905
lib/display: Fix "Implicit conversion loses integer precision" warnin…
Oct 6, 2026
f8ed8f1
lib/htmldriver: Fix "Implicit conversion loses integer precision" war…
Oct 6, 2026
88cd10e
CI: Enable editorconfig-checker --fix (#8028)
Oct 6, 2026
ad9ce6b
r.sim: Give each walker random numbers of its own (#7980)
Oct 7, 2026
ff08652
libgis: Document reproducible random numbers for parallel tools (#8004)
Oct 7, 2026
6a6c6ac
CI: Reject hidden Unicode characters and remove soft hyphens (#8030)
Oct 7, 2026
41dcc97
cmake: add missing $<CONFIG> to PATH for multi-config generators (#8026)
Oct 7, 2026
bf7d8b6
r.mapcalc: Fix modulo by zero hang and speed up threads (#8031)
Oct 7, 2026
c910e50
lib/gis: clarify intentional overflow in 48-bit LCG arithmetic (#8013)
Oct 7, 2026
d58e02b
grass.pygrass: Fix Ilist.extend and Ilist.remove accessing non-existe…
Oct 7, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
21 changes: 20 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,25 @@
BasedOnStyle: LLVM
IndentWidth: 4
---
Language: C
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: true
AcrossComments: true
PadOperators: true
AlignEscapedNewlines: Left
AllowShortFunctionsOnASingleLine: InlineOnly
BreakBeforeBraces: Stroustrup
ForEachMacros:
- DGL_FOREACH_NODE
- DGL_FOREACH_EDGE
- BOOST_FOREACH
IfMacros:
- SORT_DEBUG
MacroBlockBegin: GNO_BEGIN
MacroBlockEnd: GNO_END
SortIncludes: Never
---
Language: Cpp
AccessModifierOffset: -4
AlignConsecutiveMacros:
Expand All @@ -11,8 +30,8 @@ AlignConsecutiveMacros:
PadOperators: true
AlignEscapedNewlines: Left
AllowShortFunctionsOnASingleLine: InlineOnly
AlwaysBreakTemplateDeclarations: Yes
BreakBeforeBraces: Stroustrup
BreakTemplateDeclarations: Yes
ForEachMacros:
- DGL_FOREACH_NODE
- DGL_FOREACH_EDGE
Expand Down
3 changes: 3 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# CLAUDE.md

@../AGENTS.md
65 changes: 65 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[run]
; branch = True
; dynamic_context = test_function
concurrency = multiprocessing,thread
parallel = True
data_file = ${INITIAL_PWD-.}/.coverage
omit =
${INITIAL_PWD-.}/testreport
${INITIAL_PWD-.}/.github/*
${INITIAL_PWD-.}/bin.*/*
${INITIAL_PWD-.}/dist.*/*
**/gui/wxpython/*/**
**/OBJ.*/*
source =
.
${INITIAL_PWD-.}/
${INITIAL_GISBASE-/usr/local/grass??}/

[paths]
root =
./
${INITIAL_GISBASE-/usr/local/grass??}/
/home/*/install/grass??/
python =
./python/
${INITIAL_GISBASE-/usr/local/grass??}/etc/python/
/home/*/install/grass??/etc/python/
special_d_mon =
./display/d.mon/
${INITIAL_GISBASE-/usr/local/grass??}/etc/d.mon/
/home/*/install/grass??/etc/d.mon/
special_r_in_wms =
./scripts/r.in.wms/
${INITIAL_GISBASE-/usr/local/grass??}/etc/r.in.wms/
/home/*/install/grass??/etc/r.in.wms/


[report]
; Since our file structure isn't an importable package, not all files are found
; This allows to find python files even if there is missing __init__.py files, but is slow
include_namespace_packages = True
skip_covered = False
; Regexes for lines to exclude from consideration
exclude_also =
; Don't complain about missing debug-only code:
def __repr__
if self\.debug

; Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError

; Don't complain if non-runnable code isn't run:
; if 0:
; if __name__ == .__main__.:

; Don't complain about abstract methods, they aren't run:
@(abc\.)?abstractmethod

ignore_errors = True
precision = 2

[html]
directory = coverage_html_report
show_contexts = true
173 changes: 173 additions & 0 deletions .cppcheck-suppressions
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# True positives
# imagery
invalidFunctionArg:imagery/i.gensigset/subcluster.c:369
invalidFunctionArg:imagery/i.smap/model.c:158

# lib
memleakOnRealloc:lib/external/shapelib/dbfopen.c:448
va_end_missing:lib/gis/debug.c:82
nullPointer:lib/vector/Vlib/cats.c:513
nullPointer:lib/vector/Vlib/cats.c:517

# False positives
# binder
syntaxError:binder/postBuild:7

# config.guess, config.log, config.status, config.sub, configure, configure.ac
syntaxError:config*

# db
syntaxError:db/databaseintro.html

# demolocation
syntaxError:demolocation/Makefile
syntaxError:demolocation/grassrc.tmpl

# display
syntaxError:display/displaydrivers.html

# dist.x86_64-pc-linux-gnu
syntaxError:dist.x86_64-pc-linux-gnu/*

# doc
syntaxError:doc/*

# docker
syntaxError:docker/README.md

# general/g.version
internalAstError:general/g.version/main.c:49
syntaxError:general/g.version/Makefile:8
syntaxError:general/g.version/g.version.html:72

# imagery/
syntaxError:imagery/imageryintro.html
## We are erroring out early if index is negative, so we won't be hitting this case!
negativeIndex:imagery/i.atcorr/computations.cpp:459
negativeIndex:imagery/i.atcorr/computations.cpp:1025


# include/
syntaxError:include/Makefile
syntaxError:include/VERSION:1

# text files
syntaxError:INSTALL.md
syntaxError:install-sh
syntaxError:GPL.TXT
syntaxError:aclocal.m4
syntaxError:AUTHORS
syntaxError:CITATION.cff
syntaxError:CITING
syntaxError:codecov.yaml
syntaxError:CODE_OF_CONDUCT.md
syntaxError:config.log
syntaxError:configure.ac
syntaxError:CONTRIBUTING.md
syntaxError:contributors.csv
syntaxError:contributors_extra.csv
syntaxError:COPYING
syntaxError:Dockerfile
syntaxError:error.log
syntaxError:flake.lock
syntaxError:flake.nix
syntaxError:grasslib.dox
syntaxError:grass.pc*
syntaxError:Makefile
syntaxError:package.nix
syntaxError:pyproject.toml
syntaxError:README.md
syntaxError:renovate.json5
syntaxError:REQUIREMENTS.md
syntaxError:SECURITY.md
syntaxError:test_keyvalue_result.txt
syntaxError:TODO
syntaxError:translators.csv
syntaxError:Vagrantfile
syntaxError:binaryInstall.src
syntaxError:codecov.yml:19

# lib/
syntaxError:lib/README:3
# Internally generated file while compiling
nullPointer:lib/db/sqlp/sqlp.yy.c
nullPointer:<stdout>
syntaxError:lib/db/sqlp/README
syntaxError:lib/db/sqlp/sql*
## va_copy() was used and it doesn't require va_start.
va_list_usedBeforeStarted:lib/gis/aprintf.c:293
va_list_usedBeforeStarted:lib/gis/aprintf.c:301
va_list_usedBeforeStarted:lib/gis/aprintf.c:348
## Though it's not explicity initialized, the loop next will initialize it. So, it's alright to ignore this.
uninitvar:lib/vector/dglib/tavl.c:380
missingReturn:lib/vector/dglib/nodemgmt-template.c:437
## Though it's not explicity initialized, the loop next will initialize it. So, it's alright to ignore this.
uninitvar:lib/vector/dglib/avl.c:291
unknownMacro:lib/bitmap/Makefile:13
## I feel we can just avoid syntaxError issues, as code can't be compiled unless it's syntax is correct!
## And these usually have a tendency to pop up in the non-C or non-C++ programs!!
syntaxError:lib/*
unknownMacro:lib/gmath/Makefile
unknownMacro:lib/lidar/Makefile


# locale
syntaxError:locale/README.md
syntaxError:locale/Makefile
syntaxError:locale/grass_po_stats.py
unknownMacro:locale/*

# macosx
syntaxError:macosx/*

# man
syntaxError:man/*

# mswindows
syntaxError:mswindows/*

# raster
## FP error, as while loop before ensures that log argument is never equal to 1.
invalidFunctionArg:raster/r.sim/simlib/random.c:36
invalidFunctionArg:raster/r.sim/simlib/random.c:57

## Different rules under different ifdef.
ctuOneDefinitionRuleViolation:raster/r.in.pdal/grassrasterwriter.h:39
syntaxError:raster/rasterintro.html
syntaxError:raster/Makefile:155

# raster3d

## 'missingReturn` error is mostly from blocks for local computations
missingReturn:raster3d/r3.showdspf/draw_cap_ogl.c:68
missingReturn:raster3d/r3.showdspf/make_header.c:32

syntaxError:raster3d/raster3dintro.html:194

# rpm
syntaxError:rpm/grass.spec:244
syntaxError:rpm/grass-pkgconfig.patch:9

# scripts
syntaxError:scripts/windows_sh_launch.bat:11
syntaxError:scripts/windows_launch.bat:1

# temporal
syntaxError:temporal/benchmark.sh:19
syntaxError:temporal/run_all_tests.sh
syntaxError:temporal/temporalintro.html

# testsuite
syntaxError:testsuite/raster_md5test.sh:11
syntaxError:testsuite/README.md:38

# utils
syntaxError:utils/*
unknownMacro:utils/coverage_mapper.py:13
unknownMacro:utils/Makefile:8

# vector

## We are expected to use the memory allocated some other place, so it's FP.
memleak:vector/v.lidar.growing/ConvexHull.c:246
syntaxError:vector/vectorintro.html:11
5 changes: 2 additions & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@ docker
!docker/alpine/grass_tests.sh
.gitignore
.github
.travis
.travis.yml
# Do not copy files from previous compilations
dist.*

# The following git files are needed by GRASS GIS to extract the revision
# The following git files are needed by GRASS to extract the revision
# during compilation. If you are not using one of the Dockerimages from this
# repository, delete the .git folder in your Dockerfile after compilation.
.git
!.git/HEAD
!.git/refs/heads
!.git/objects
.git/objects/*
!.git/objects/pack
Loading