[GRASS-git] [OSGeo/grass] 1efff4: v.external: delete duplicated layer requirement de...

Martin Landa noreply at github.com
Sun Aug 4 10:48:40 PDT 2024


  Branch: refs/heads/renovate/python-3.x
  Home:   https://github.com/OSGeo/grass
  Commit: 1efff48a456acbb068cb5e31ea0e0f93cf0d03ac
      https://github.com/OSGeo/grass/commit/1efff48a456acbb068cb5e31ea0e0f93cf0d03ac
  Author: Ondrej Pesek <pesej.ondrek at gmail.com>
  Date:   2024-06-22 (Sat, 22 Jun 2024)

  Changed paths:
    M vector/v.external/args.c

  Log Message:
  -----------
  v.external: delete duplicated layer requirement definition (#3902)


  Commit: acee505efeb8a8b1ba7923bfbb754da6320ce712
      https://github.com/OSGeo/grass/commit/acee505efeb8a8b1ba7923bfbb754da6320ce712
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-22 (Sat, 22 Jun 2024)

  Changed paths:
    M .github/workflows/clang-format-check.yml
    M .github/workflows/create_release_draft.yml
    M .github/workflows/label.yml
    M .github/workflows/titles.yml

  Log Message:
  -----------
  CI: Cancel in progress jobs for other workflows (#3904)


  Commit: af6e7da9da7ce81fe2cc16c36b97bf37c977bb7a
      https://github.com/OSGeo/grass/commit/af6e7da9da7ce81fe2cc16c36b97bf37c977bb7a
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-06-22 (Sat, 22 Jun 2024)

  Changed paths:
    M lib/vector/neta/articulation_point.c
    M lib/vector/neta/timetables.c
    M lib/vector/neta/utils.c

  Log Message:
  -----------
  libvector/neta: fix memory leaks (#3618)


  Commit: a24714ec1fcca3699d1b1d810c48ed5dac9f0bee
      https://github.com/OSGeo/grass/commit/a24714ec1fcca3699d1b1d810c48ed5dac9f0bee
  Author: Chung-Yuan Liang <77927944+cyliang368 at users.noreply.github.com>
  Date:   2024-06-22 (Sat, 22 Jun 2024)

  Changed paths:
    M raster/r.texture/Makefile
    A raster/r.texture/benchmark/benchmark_rtexture.py
    A raster/r.texture/benchmark/benchmark_rtexture_window.py
    M raster/r.texture/execute.c
    M raster/r.texture/execute.h
    M raster/r.texture/main.c
    M raster/r.texture/r.texture.html
    A raster/r.texture/r_texture_mapsize_efficiency.png
    A raster/r.texture/r_texture_mapsize_time.png
    A raster/r.texture/r_texture_window_efficiency.png
    A raster/r.texture/r_texture_window_time.png
    A raster/r.texture/testsuite/test_rtexture.py
    A raster/r.texture/testsuite/test_rtexture_parallel.py
    R raster/r.texture/testsuite/test_texture.py

  Log Message:
  -----------
  r.texture: support parallel computing by OpenMP (#3857)

* refactor to use local vars instead of global vars

* refactor to seperate execute part for parallelization

* remove unused variable

* divide h_mearsure.h into paired header files

* refactor parameters and flags in main.c

* remove unused variable 'threads' in main.c

* add execute_parallel.c

* parallelize execute, add tests and benchmarks

* rename test and benchmark files, integrate parallel part in execute.c

* Run benchmark on all methods

* get thread id only if OpenMP is defined

* replace omp firstprivate with omp private

* remove tid, and only use trow to aviod no OpenMP support situation

* add keyword "parallel" in main.c

* replace the list of functions with the -a flag in benchmark

* add benchmark for window sizes, plot speedup and efficiency

* remove basename list in benchmark, add benchmark results to html

* replace 'x' with '&#215' for window sizes in html

* breakdown long lines in html

* remove known issue in r.texture.html

* modify the formats and paths of figures


  Commit: 3f30f1bb59f79d18074a3527d9101200c0975214
      https://github.com/OSGeo/grass/commit/3f30f1bb59f79d18074a3527d9101200c0975214
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2024-06-23 (Sun, 23 Jun 2024)

  Changed paths:
    M lib/init/grass.py
    M mswindows/env.bat
    M python/grass/app/Makefile
    A python/grass/app/runtime.py
    M python/grass/script/setup.py

  Log Message:
  -----------
  grass.app: Refactor PATH setup in grass init script and grass.script.setup (#3694)


  Commit: 3f124c5c789681a9f7996ebbea4d7c43b9478415
      https://github.com/OSGeo/grass/commit/3f124c5c789681a9f7996ebbea4d7c43b9478415
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-06-23 (Sun, 23 Jun 2024)

  Changed paths:
    M display/d.linegraph/main.c

  Log Message:
  -----------
  d.linegraph: Fix null pointer issue in qsort call (#3878)

* Fix null pointer issue in qsort call in d.linegraph

* Fix formatting issue in d.linegraph

* Fixing formatting issue in d.linegraph

---------

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-48.vcl.ncsu.edu>


  Commit: f825a223c28f7cd5ab6d075bd02b8f5e73956c4a
      https://github.com/OSGeo/grass/commit/f825a223c28f7cd5ab6d075bd02b8f5e73956c4a
  Author: Chung-Yuan Liang <77927944+cyliang368 at users.noreply.github.com>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M lib/rst/interp_float/interpf.h
    M lib/rst/interp_float/point2d.c
    A lib/rst/interp_float/point2d_parallel.c
    M lib/rst/interp_float/ressegm2d.c
    M lib/rst/interp_float/segmen2d.c
    M lib/rst/interp_float/segmen2d_parallel.c
    A vector/v.surf.rst/benchmark/benchmark_v_surf_rst.py
    A vector/v.surf.rst/benchmark/benchmark_v_surf_rst_cv.py
    M vector/v.surf.rst/main.c
    M vector/v.surf.rst/testsuite/test_vsurfrst.py
    M vector/v.surf.rst/v.surf.rst.html
    A vector/v.surf.rst/vsurfrst_benchmark.png
    A vector/v.surf.rst/vsurfrst_cv_benchmark.png

  Log Message:
  -----------
  v.surf.rst: Cross-validation OpenMP support (#3590)

* v.surf.rst: cv openmp support

* Update main.c

Use /* ... */ instead of // for consistency and compatibility with pre-99 C standard (https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Comments.html)

* Update main.c

Fix a string in `#if 0`

* Update vector/v.surf.rst/main.c

clang-format

* v.surf.rst: devi openmp support

* Update profile.sh

remove nproc argument

* Apply suggestions from code review

* v.surf.rst: parallelize point2d.c

* v.surf.rst: add tests for multithread cv & dev

* v.surf.rst: point2d_parallel.c, function, test updates

* clean formats

* update document and remove unused lines

* replace replicate part in point2d.c by write_point_2d

* add benchmark for parallelization

* remove unused variables in point2d.c

* remove c-flag from vsurfrst.py benchmark

Co-authored-by: Anna Petrasova <kratochanna at gmail.com>

* correct the number in the label in benchmark_v_surf_rst_cv.py

* include benmarks into the document page

* remove unnecessary changes in the html file

* remove syntax error in v.surf.rst.html

* revise performance and author sections in the html file

* remove invalid syntax in the html file

* revise the description of performance in the html file

Co-authored-by: Anna Petrasova <kratochanna at gmail.com>

* breakdown long lines in v.surf.rst.html

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Huidae Cho <grass4u at gmail.com>
Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>
Co-authored-by: Anna Petrasova <kratochanna at gmail.com>


  Commit: f49bdf48bdcbe9e64c87c573066139f8348c1e35
      https://github.com/OSGeo/grass/commit/f49bdf48bdcbe9e64c87c573066139f8348c1e35
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M display/d.legend.vect/draw.c

  Log Message:
  -----------
  d.legend.vect: Fix dead store warnings in draw.c (#3922)


  Commit: 5d25c53517ab6eb339ad07177cfc8ec9d79f0df8
      https://github.com/OSGeo/grass/commit/5d25c53517ab6eb339ad07177cfc8ec9d79f0df8
  Author: Markus Neteler <neteler at osgeo.org>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M gui/wxpython/Makefile
    R gui/wxpython/README
    A gui/wxpython/README.md

  Log Message:
  -----------
  wxGUI: update menu creation explanations (#3920)


  Commit: 3ef6e61d997a016a1a138ef6e9c727a7774db9b5
      https://github.com/OSGeo/grass/commit/3ef6e61d997a016a1a138ef6e9c727a7774db9b5
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M .github/workflows/pytest.yml
    M .github/workflows/super-linter.yml
    M .travis.yml

  Log Message:
  -----------
  CI(super-linter): Specify linter rules path to pick up configuration files (#3915)


  Commit: 541276ac7e4a568d92692951a5c3076475f22f2a
      https://github.com/OSGeo/grass/commit/541276ac7e4a568d92692951a5c3076475f22f2a
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M display/d.linegraph/main.c

  Log Message:
  -----------
  d.linegraph: Fix dead store warning in main.c (#3918)

Fix dead store warning in d.linegraph module

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-48.vcl.ncsu.edu>


  Commit: df371ecc93efb0d342d54e013b68a19bd9e2692e
      https://github.com/OSGeo/grass/commit/df371ecc93efb0d342d54e013b68a19bd9e2692e
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M utils/release.yml

  Log Message:
  -----------
  CI: add nix to the list of allowed commit prefixes (#3925)


  Commit: 9599acab14702d2b7907e229f20610d9e9f9a0dd
      https://github.com/OSGeo/grass/commit/9599acab14702d2b7907e229f20610d9e9f9a0dd
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M flake.nix

  Log Message:
  -----------
  packaging: improve nix development environment (#3924)

nix: improve nix development environment

* inherit build dependencies from grass package
* add `dev-help` function


  Commit: 4b5b6cf9a7fa77da6e1de5e3e99a1eddf19acde0
      https://github.com/OSGeo/grass/commit/4b5b6cf9a7fa77da6e1de5e3e99a1eddf19acde0
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M .markdownlint.yml
    M .pre-commit-config.yaml
    M vector/v.surf.rst/v.surf.rst.html

  Log Message:
  -----------
  CI(pre-commit): Enable markdownlint fixes (#3916)

* CI(pre-commit): Enable markdownlint fixes

* CI: Add fix: true in .markdownlint.yml for tools using that config key

* Update .markdownlint.yml

* Update v.surf.rst.html to remove trailing whitespaces


  Commit: 4a35e80a1856cfc3b185c0c333a4508adaf34437
      https://github.com/OSGeo/grass/commit/4a35e80a1856cfc3b185c0c333a4508adaf34437
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-06-25 (Tue, 25 Jun 2024)

  Changed paths:
    M .github/workflows/clang-format-check.yml
    M .pre-commit-config.yaml
    M general/g.region/printwindow.c
    M imagery/i.eb.netrad/r_net.c
    M imagery/i.fft/main.c
    M imagery/i.ifft/main.c
    M imagery/i.maxlik/invert.c
    M imagery/i.segment/flag.h
    M include/grass/gprojects.h
    M lib/bitmap/bitmap.c
    M lib/bitmap/sparse.c
    M lib/external/parson/parson.c
    M lib/gis/lrand48.c
    M lib/gis/lz4.c
    M lib/gis/pi.h
    M lib/gis/sleep.c
    M lib/gmath/solvers_direct.c
    M lib/gpde/test/test_arrays.c
    M lib/ogsf/gs2.c
    M lib/ogsf/gsget.h
    M lib/ogsf/rgbpack.h
    M lib/ogsf/rowcol.h
    M lib/raster/get_row.c
    M lib/rst/interp_float/segmen2d_parallel.c
    M lib/vector/Vlib/intersect2.c
    M lib/vector/dglib/graph_v1.h
    M lib/vector/diglib/prune.c
    M misc/m.cogo/main.c
    M raster/r.buffer/distance.h
    M raster/r.cost/flag.h
    M raster/r.cost/heap.c
    M raster/r.mfilter/execute.c
    M raster/r.proj/main.c
    M raster/r.random.cells/flag.h
    M raster/r.random.cells/ransurf.h
    M raster/r.random.surface/ransurf.h
    M raster/r.ros/main.c
    M raster/r.ros/spot_dist.c
    M raster/r.sim/simlib/hydro.c
    M raster/r.slope.aspect/main.c
    M raster/r.spread/collect_ori.c
    M raster/r.spread/main.c
    M raster/r.spread/ram2out.c
    M raster/r.spread/select_linksB.c
    M raster/r.spread/spot.c
    M raster/r.spread/spread.c
    M raster/r.stream.extract/local_proto.h
    M raster/r.sun/main.c
    M raster/r.surf.contour/flag.h
    M raster/r.surf.idw/pi.h
    M raster/r.to.vect/areas.c
    M raster/r.transect/parse_line.c
    M raster/r.walk/flag.h
    M raster/r.walk/heap.c
    M raster/r.water.outlet/ramseg.h
    M raster/r.watershed/ram/do_astar.h
    M raster/r.watershed/ram/flag.h
    M raster/r.watershed/ram/ramseg.h
    M vector/v.cluster/main.c
    M vector/v.label.sa/labels.c

  Log Message:
  -----------
  CI(deps): Update clang-format to v17 (#3860)


  Commit: 093895168e8e67595eceb00a747d837157b0085a
      https://github.com/OSGeo/grass/commit/093895168e8e67595eceb00a747d837157b0085a
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-06-26 (Wed, 26 Jun 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/build-push-action action to v6.2.0 (#3931)


  Commit: 3986103fdf2c94fd1a6a1b34c06f24b2fb059abf
      https://github.com/OSGeo/grass/commit/3986103fdf2c94fd1a6a1b34c06f24b2fb059abf
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-06-27 (Thu, 27 Jun 2024)

  Changed paths:
    A .github/workflows/test-nix.yml
    M flake.nix
    M package.nix

  Log Message:
  -----------
  CI: add nix package build test (#3906)

* CI: add nix package and dev environment test

* nix: exclude more files from package source

---------

Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>


  Commit: ab79e435cc6b1348d1d8a48d0eb12b5dc3e0ece1
      https://github.com/OSGeo/grass/commit/ab79e435cc6b1348d1d8a48d0eb12b5dc3e0ece1
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-06-27 (Thu, 27 Jun 2024)

  Changed paths:
    M .github/workflows/test-nix.yml

  Log Message:
  -----------
  CI(deps): Pin dependencies (#3932)


  Commit: 6748067af1479c914a512084e6f5f412fe4fde3c
      https://github.com/OSGeo/grass/commit/6748067af1479c914a512084e6f5f412fe4fde3c
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-27 (Thu, 27 Jun 2024)

  Changed paths:
    M .github/workflows/pytest.yml
    M .gitignore
    M Makefile
    A codecov.yml

  Log Message:
  -----------
  CI: Initial code coverage configuration with Codecov (#3905)


  Commit: cb0e431f06ed982adb75d0408eec9c5e03b3330c
      https://github.com/OSGeo/grass/commit/cb0e431f06ed982adb75d0408eec9c5e03b3330c
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2024-06-28 (Fri, 28 Jun 2024)

  Changed paths:
    M raster/r.horizon/main.c
    M raster/r.horizon/testsuite/test_r_horizon.py

  Log Message:
  -----------
  r.horizon: change JSON format (#3888)


  Commit: 695e550164dfe8cd35ee77aa87174bd526a9be0c
      https://github.com/OSGeo/grass/commit/695e550164dfe8cd35ee77aa87174bd526a9be0c
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-06-28 (Fri, 28 Jun 2024)

  Changed paths:
    M display/d.histogram/bar.c

  Log Message:
  -----------
  d.histogram: Initialize range_dmin and range_dmax to fix uninitialize value warnings in bar.c (#3923)

The change satisfies the warning and does not change the behavior. The initial values (garbage or 0) are actually not used. `is_fp` conditions are used to set the values and drive their use (so that the initial values are not used).


  Commit: fb52c5b3924e143e10282ed71eb6cc3508a9e664
      https://github.com/OSGeo/grass/commit/fb52c5b3924e143e10282ed71eb6cc3508a9e664
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-06-28 (Fri, 28 Jun 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.25.11 (#3938)


  Commit: 9e87f51dd7efaae0d4f45ab6238ca7f1ecfe41bf
      https://github.com/OSGeo/grass/commit/9e87f51dd7efaae0d4f45ab6238ca7f1ecfe41bf
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-06-28 (Fri, 28 Jun 2024)

  Changed paths:
    M docker/debian/Dockerfile
    M docker/ubuntu_wxgui/Dockerfile

  Log Message:
  -----------
  CI(deps): Update dependency PDAL/PDAL to v2.7.2 (#3937)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>


  Commit: b5bfcd576541c1b4d43187c4d66ff0024167bab1
      https://github.com/OSGeo/grass/commit/b5bfcd576541c1b4d43187c4d66ff0024167bab1
  Author: Makiko Shukunobe <mshukuno at users.noreply.github.com>
  Date:   2024-06-29 (Sat, 29 Jun 2024)

  Changed paths:
    M .flake8
    M gui/wxpython/iclass/dialogs.py
    M gui/wxpython/iscatt/frame.py
    M gui/wxpython/lmgr/giface.py
    M gui/wxpython/rlisetup/frame.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/web_services/widgets.py

  Log Message:
  -----------
  Checks: fix flake8 E741 in gui/wxpython directory (#3926)

* Rename self.l to self.item_attr when using self.l as an argument to wx.ItemAttr().

* Rename l to layer when using l for loop through layer list.

* Rename l to new_layer_lst when using l as an argument to self._tree.AddLayer().

* Rename l to rli_conf when looping through the configuration files in self.rlipath.

* Rename l to layer when looping through the self.map_.GetListOfLayers().

* Rename l to dataset_info when sorting `allDatasets` with the lambda function.

* Rename l to layer_num when looping through `catsDict.items()`.

* Rename l to layer when retrieving layer information in a function.

* Rename l to curr when looping through the `curr_sel_ls`.

* Remove E741 for files in gui/wxpython directory.


  Commit: 373800152d4f3b70639e2a7b1942f03b06c2c51b
      https://github.com/OSGeo/grass/commit/373800152d4f3b70639e2a7b1942f03b06c2c51b
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M display/d.histogram/bar.c

  Log Message:
  -----------
  d.histogram: Fix dead store warnings in bar.c (#3927)

* d.histogram: Remove unnecessary assignment of draw variable in bar.c


  Commit: 386d47844126ddf1a34b1b4a389d87e471224f5c
      https://github.com/OSGeo/grass/commit/386d47844126ddf1a34b1b4a389d87e471224f5c
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M gui/wxpython/core/menutree.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/lmgr/pyshell.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/modules/mcalc_builder.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tplot/frame.py
    M python/grass/benchmark/results.py
    M python/grass/gunittest/case.py
    M python/grass/gunittest/invoker.py
    M python/grass/script/vector.py
    M python/libgrass_interface_generator/ctypesgen/libraryloader.py
    M scripts/g.manual/g.manual.py
    M scripts/r.import/r.import.py
    M scripts/r.out.xyz/r.out.xyz.py
    M scripts/v.in.e00/v.in.e00.py
    M utils/g.html2man/ggroff.py

  Log Message:
  -----------
  style: Fixes unnecessary-collection-call (C408) for remaining code (#3948)

* style: Fixes unnecessary-collection-call (C408) for remaining code

Only applies fixes to non-empty collections by  `ruff check --select "C408" --unsafe-fixes --output-format=concise --fix` in order to limit the review scope.

* style: Apply black formatting

Separated in another commit for easier review of only the original changes without formatting

* style: Fixes unnecessary-collection-call (C408) for ctypesgen

Only applies fixes to non-empty collections by  `ruff check --select "C408" --unsafe-fixes --output-format=concise --fix` in order to limit the review scope.

* style: Fixes unnecessary-collection-call (C408) for gui/wxpython/psmap/instructions

* style: Adjust comment in gui/wxpython/psmap/instructions

* style: Remove comment in gui/wxpython/psmap/instructions


  Commit: 85b047f439be2b573e96104fb43f3141fa49bd69
      https://github.com/OSGeo/grass/commit/85b047f439be2b573e96104fb43f3141fa49bd69
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/toolbars.py
    M gui/wxpython/iclass/plots.py
    M gui/wxpython/iscatt/frame.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/main_window/notebook.py
    M gui/wxpython/mapwin/analysis.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/wxplot/base.py
    M gui/wxpython/wxplot/histogram.py
    M gui/wxpython/wxplot/profile.py
    M gui/wxpython/wxplot/scatter.py
    M python/grass/experimental/tests/conftest.py
    M python/grass/experimental/tests/grass_script_mapset_session_test.py
    M python/grass/experimental/tests/grass_script_tmp_mapset_session_test.py
    M python/grass/gunittest/reporters.py
    M python/grass/imaging/operations.py
    M python/grass/temporal/datetime_math.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_operator.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M python/grass/temporal/unit_tests.py
    M temporal/t.rast.algebra/t.rast.algebra.py
    M temporal/t.rast3d.algebra/t.rast3d.algebra.py
    M temporal/t.select/t.select.py
    M temporal/t.vect.algebra/t.vect.algebra.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py

  Log Message:
  -----------
  style: Fixes manual-from-import (PLR0402) (#3949)

Concerns Pylint rule "consider-using-from-import / R0402"

Using `ruff check --output-format=concise --select PLR0402 --fix`.


  Commit: 837b7967f5d98d5043b469862b6083620ae04070
      https://github.com/OSGeo/grass/commit/837b7967f5d98d5043b469862b6083620ae04070
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M python/grass/benchmark/testsuite/test_benchmark.py
    M python/grass/gunittest/testsuite/test_assertions.py
    M python/grass/gunittest/testsuite/test_assertions_rast3d.py
    M python/grass/gunittest/testsuite/test_assertions_vect.py
    M python/grass/pygrass/modules/interface/testsuite/test_flag.py
    M python/grass/pygrass/modules/interface/testsuite/test_parameter.py
    M python/grass/script/testsuite/test_utils.py
    M raster/r.mapcalc/testsuite/test_r_mapcalc.py
    M raster/r.mapcalc/testsuite/test_row_above_below_bug.py
    M raster/r.random.cells/testsuite/test_random_cells.py
    M raster/r.random/testsuite/test_r_random.py
    M raster/r.random/testsuite/testrandom.py
    M raster/r.sun/testsuite/test_rsun.py
    M raster/r.surf.gauss/testsuite/test_r_surf_gauss.py
    M raster/r.surf.random/testsuite/test_min_max.py
    M raster/r.to.vect/testsuite/test_r_to_vect.py
    M raster3d/r3.to.rast/testsuite/test_a_b_coeff.py
    M raster3d/r3.to.rast/testsuite/test_integer_rounding.py
    M raster3d/r3.to.rast/testsuite/test_nulls.py
    M raster3d/r3.to.rast/testsuite/test_small_data.py
    M scripts/r.import/testsuite/test_r_import.py
    M scripts/v.clip/testsuite/test_v_clip.py
    M scripts/v.import/testsuite/test_v_import.py
    M vector/v.in.lidar/testsuite/decimation_test.py
    M vector/v.in.lidar/testsuite/mask_test.py
    M vector/v.in.lidar/testsuite/test_v_in_lidar_filter.py
    M vector/v.in.pdal/testsuite/test_v_in_pdal_filter.py
    M vector/v.info/testsuite/test_vinfo.py
    M vector/v.net/testsuite/test_v_net.py
    M vector/v.random/testsuite/test_v_random.py
    M vector/v.select/testsuite/test_v_select.py
    M vector/v.surf.rst/testsuite/test_vsurfrst.py
    M vector/v.to.3d/testsuite/test_vto3d.py

  Log Message:
  -----------
  style: Fixes unnecessary-collection-call (C408) for testsuite (#3947)

* style: Fixes unnecessary-collection-call (C408) for testsuite

Only applies fixes to non-empty collections by  `ruff check --select "C408" --unsafe-fixes --output-format=concise --fix --config 'include = ["*/testsuite/**.py"]'` in order to limit the review scope.

* style: Apply black formatting

Separated in another commit for easier review of only the original changes without formatting


  Commit: ce1a43cb8b45e70f41540887a8a073e32227a517
      https://github.com/OSGeo/grass/commit/ce1a43cb8b45e70f41540887a8a073e32227a517
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/core/gcmd.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gcp/statusbar.py
    M gui/wxpython/gmodeler/canvas.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/image2target/ii2t_statusbar.py
    M gui/wxpython/location_wizard/dialogs.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/photo2image/ip2i_statusbar.py
    M gui/wxpython/vnet/dialogs.py
    M python/grass/benchmark/runners.py
    M python/grass/imaging/images2swf.py
    M python/grass/jupyter/region.py
    M python/grass/temporal/temporal_granularity.py
    M scripts/d.correlate/d.correlate.py
    M scripts/d.rast.edit/d.rast.edit.py
    M scripts/d.rast.leg/d.rast.leg.py
    M scripts/r.tileset/r.tileset.py
    M temporal/t.rast.what/t.rast.what.py

  Log Message:
  -----------
  style: Fixes if-stmt-min-max (PLR1730) (#3950)

Concerns Pylint rules "consider-using-min-builtin / R1730" and "consider-using-max-builtin / R1731"

Using `ruff check --output-format=concise --select PLR1730 --preview --fix`.


  Commit: 2ae07bc17e275949c7963eac3659f883bffb70da
      https://github.com/OSGeo/grass/commit/2ae07bc17e275949c7963eac3659f883bffb70da
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/controller.py
    M gui/wxpython/animation/data.py
    M gui/wxpython/animation/dialogs.py
    M gui/wxpython/core/gcmd.py
    M gui/wxpython/core/gconsole.py
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/core/menutree.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/settings.py
    M gui/wxpython/core/treemodel.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/workspace.py
    M gui/wxpython/core/ws.py
    M gui/wxpython/datacatalog/catalog.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/sqlbuilder.py
    M gui/wxpython/gmodeler/canvas.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/goutput.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/history/browser.py
    M gui/wxpython/iscatt/controllers.py
    M gui/wxpython/iscatt/core_c.py
    M gui/wxpython/iscatt/iscatt_core.py
    M gui/wxpython/iscatt/toolbars.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/lmgr/workspace.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapdisp/statusbar.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/import_export.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/preferences.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/nviz/workspace.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/rlisetup/sampling_frame.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/startup/locdownload.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/vdigit/mapwindow.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/vnet/dialogs.py
    M gui/wxpython/vnet/vnet_core.py
    M gui/wxpython/vnet/vnet_data.py
    M gui/wxpython/web_services/cap_interface.py
    M gui/wxpython/wxgui.py
    M gui/wxpython/wxplot/base.py

  Log Message:
  -----------
  style(gui): Fixes literal-membership (PLR6201) (#3952)

* style(gui/wxpython): Fixes literal-membership (PLR6201)

Concerns Pylint rule "use-set-for-membership / R6201"

Using `ruff check --output-format=concise --select PLR6201 --preview --unsafe-fixes --fix gui/`.

* style: Apply single element in set formatting


  Commit: 614e1e78339adb5bdf3576d36c80623c497340fe
      https://github.com/OSGeo/grass/commit/614e1e78339adb5bdf3576d36c80623c497340fe
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/list_stds.py
    M python/grass/temporal/register.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_granularity.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/univar_statistics.py
    M temporal/t.info/t.info.py
    M temporal/t.rast.export/t.rast.export.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.rast.list/t.rast.list.py

  Log Message:
  -----------
  style(temporal): Fixes literal-membership (PLR6201) (#3953)

Concerns Pylint rule "use-set-for-membership / R6201"

Using `ruff check --output-format=concise --select PLR6201 --preview --unsafe-fixes --fix 'temporal/' 'python/grass/temporal'`.


  Commit: ffa270b5aba362b3d6526b33d10e313863f333ad
      https://github.com/OSGeo/grass/commit/ffa270b5aba362b3d6526b33d10e313863f333ad
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M display/d.mon/render_cmd.py
    M lib/init/grass.py
    M man/build_class_graphical.py
    M man/build_class_rest.py
    M man/build_html.py
    M man/build_rest.py
    M man/parser_standard_options.py
    M python/grass/benchmark/plots.py
    M python/grass/jupyter/map3d.py
    M python/grass/pygrass/modules/grid/grid.py
    M python/grass/pygrass/modules/interface/flag.py
    M python/grass/pygrass/modules/interface/module.py
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/raster/abstract.py
    M python/grass/pygrass/raster/category.py
    M python/grass/pygrass/vector/abstract.py
    M python/grass/script/array.py
    M python/grass/script/core.py
    M python/grass/script/db.py
    M python/grass/script/task.py
    M python/grass/script/testsuite/data/script_using_temporary_region.py
    M python/grass/script/utils.py
    M raster/r.neighbors/testsuite/test_r_neighbors.py
    M scripts/d.polar/d.polar.py
    M scripts/d.rast.edit/d.rast.edit.py
    M scripts/db.univar/db.univar.py
    M scripts/g.extension/g.extension.py
    M scripts/g.manual/g.manual.py
    M scripts/i.image.mosaic/i.image.mosaic.py
    M scripts/i.spectral/i.spectral.py
    M scripts/r.in.aster/r.in.aster.py
    M scripts/r.in.srtm/r.in.srtm.py
    M scripts/r.in.wms/wms_base.py
    M scripts/r.in.wms/wms_drv.py
    M scripts/r.reclass.area/r.reclass.area.py
    M scripts/v.db.renamecolumn/v.db.renamecolumn.py
    M scripts/v.db.update/v.db.update.py
    M scripts/v.dissolve/tests/conftest.py
    M scripts/v.dissolve/v.dissolve.py
    M scripts/v.in.e00/v.in.e00.py
    M scripts/v.report/v.report.py
    M utils/g.html2man/ggroff.py
    M utils/thumbnails.py

  Log Message:
  -----------
  style: Fixes literal-membership (PLR6201) for other code (#3954)

Concerns Pylint rule "use-set-for-membership / R6201"

Using `ruff check --output-format=concise --select PLR6201 --preview --unsafe-fixes --fix`, but reverting some changes where it wasn't clear if it was safe.


  Commit: a9d9dc48965b6715d5650f6c1de851a8d64b2744
      https://github.com/OSGeo/grass/commit/a9d9dc48965b6715d5650f6c1de851a8d64b2744
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M man/build_keywords.py
    M python/grass/temporal/extract.py
    M python/grass/temporal/mapcalc.py
    M raster/r.topidx/arc_to_gridatb.py
    M raster/r.topidx/gridatb_to_arc.py

  Log Message:
  -----------
  style: Fixes sys-exit-alias (PLR1722) (#3951)

Using  `ruff check --select "PLR1722" --unsafe-fixes --output-format=concise --fix`.


  Commit: 7a1c8d97bac286865bbb92fe22a18afd8345667c
      https://github.com/OSGeo/grass/commit/7a1c8d97bac286865bbb92fe22a18afd8345667c
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M docker/ubuntu_wxgui/Dockerfile

  Log Message:
  -----------
  docker: Downgrade PDAL to 2.7.1 in ubuntu_wxgui (#3946)

When building the image, only PROJ 8.2.1 is available, and PDAL 2.7.2 checks for PROJ 9.0+. Reverting until the Dockerfile is modified to include PROJ 9.0+


  Commit: 2a048b256ce0de2b49ec6832187f52f03df136d5
      https://github.com/OSGeo/grass/commit/2a048b256ce0de2b49ec6832187f52f03df136d5
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-06-30 (Sun, 30 Jun 2024)

  Changed paths:
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/main_window/frame.py
    M man/build_keywords.py
    M python/grass/gunittest/reporters.py
    M python/libgrass_interface_generator/ctypesgen/expressions.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_arithmetic.py

  Log Message:
  -----------
  style: Manual fixes for single-line-implicit-string-concatenation violations (ISC001) (#3944)

* style: Manual fixes for single-line-implicit-string-concatenation violations (ISC001)

Applies the remaining fixes that weren't picked up by `ruff check --select "ISC001" --fix` in order to limit the review scope.

* style: Manual fixes for single-line-implicit-string-concatenation violations (ISC001) in ctypesgen code

Applies the remaining fixes that weren't picked up by `ruff check --select "ISC001" --fix` in order to limit the review scope.


  Commit: a9f81f412e41ece8e8f2be51b1842672fade49d1
      https://github.com/OSGeo/grass/commit/a9f81f412e41ece8e8f2be51b1842672fade49d1
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/rlisetup/wizard.py
    M imagery/i.atcorr/create_iwave.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M scripts/g.extension/g.extension.py
    M scripts/r.in.aster/r.in.aster.py

  Log Message:
  -----------
  style: Fixes useless-return (PLR1711) (#3955)

Concerns Pylint rule "useless-return / R1711"

Using `ruff check --output-format=concise --select PLR1711 --fix`.


  Commit: 734c93d0b22c2cdc72e98dffa5fa18ba22492823
      https://github.com/OSGeo/grass/commit/734c93d0b22c2cdc72e98dffa5fa18ba22492823
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M python/grass/grassdb/manage.py
    M scripts/g.extension/testsuite/test_addons_download.py
    M scripts/g.extension/testsuite/test_addons_modules.py

  Log Message:
  -----------
  style: Fixes useless-exception-statement (PLW0133) (#3957)

Concerns Pylint rule "pointless-exception-statement / W0133"

Using `ruff check --output-format=concise --select PLW0133 --unsafe-fixes --fix`.


  Commit: 4f1b89778884a93b160d89019a5993cee94033a8
      https://github.com/OSGeo/grass/commit/4f1b89778884a93b160d89019a5993cee94033a8
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M python/grass/temporal/__init__.py
    M python/grass/temporal/abstract_dataset.py
    M python/grass/temporal/abstract_map_dataset.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/aggregation.py
    M python/grass/temporal/base.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/core.py
    M python/grass/temporal/datetime_math.py
    M python/grass/temporal/extract.py
    M python/grass/temporal/factory.py
    M python/grass/temporal/gui_support.py
    M python/grass/temporal/list_stds.py
    M python/grass/temporal/mapcalc.py
    M python/grass/temporal/open_stds.py
    M python/grass/temporal/register.py
    M python/grass/temporal/sampling.py
    M python/grass/temporal/space_time_datasets.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M python/grass/temporal/stds_export.py
    M python/grass/temporal/stds_import.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_granularity.py
    M python/grass/temporal/temporal_operator.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/temporal_raster_base_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M python/grass/temporal/testsuite/test_register_function.py
    M python/grass/temporal/testsuite/test_temporal_doctests.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_grs.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_mixed_stds.py
    M python/grass/temporal/testsuite/unittests_temporal_conditionals.py
    M python/grass/temporal/testsuite/unittests_temporal_raster3d_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_equal_ts.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_grs.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_spatial_topology.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_conditionals.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_conditionals_complement_else.py
    M python/grass/temporal/testsuite/unittests_temporal_vector_algebra.py
    M python/grass/temporal/unit_tests.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster3d.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_vector.py
    M temporal/t.copy/t.copy.py
    M temporal/t.list/t.list.py
    M temporal/t.merge/t.merge.py
    M temporal/t.rast.accdetect/t.rast.accdetect.py
    M temporal/t.rast.accdetect/testsuite/test_simple.py
    M temporal/t.rast.accumulate/testsuite/test_accumulation.py
    M temporal/t.rast.aggregate.ds/t.rast.aggregate.ds.py
    M temporal/t.rast.aggregate/t.rast.aggregate.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_absolute.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_absolute_parallel.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_relative.py
    M temporal/t.rast.algebra/t.rast.algebra.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_arithmetic.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_granularity.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_granularity_fails.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_operators.py
    M temporal/t.rast.contour/t.rast.contour.py
    M temporal/t.rast.export/t.rast.export.py
    M temporal/t.rast.export/testsuite/test_rast_export.py
    M temporal/t.rast.extract/t.rast.extract.py
    M temporal/t.rast.extract/testsuite/test_t_rast_extract.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.rast.gapfill/testsuite/test_gapfill.py
    M temporal/t.rast.import/testsuite/test_temporal_rast_import.py
    M temporal/t.rast.list/tests/conftest.py
    M temporal/t.rast.mapcalc/t.rast.mapcalc.py
    M temporal/t.rast.neighbors/t.rast.neighbors.py
    M temporal/t.rast.neighbors/testsuite/test_neighbors.py
    M temporal/t.rast.out.vtk/t.rast.out.vtk.py
    M temporal/t.rast.series/testsuite/test_series.py
    M temporal/t.rast.to.rast3/testsuite/test_strds_to_rast3.py
    M temporal/t.rast.to.vect/t.rast.to.vect.py
    M temporal/t.rast.to.vect/testsuite/test_to_vect.py
    M temporal/t.rast.what/t.rast.what.py
    M temporal/t.rast3d.algebra/t.rast3d.algebra.py
    M temporal/t.rast3d.algebra/testsuite/test_raster3d_algebra.py
    M temporal/t.rast3d.extract/t.rast3d.extract.py
    M temporal/t.rast3d.extract/testsuite/test_t_rast3d_extract.py
    M temporal/t.rast3d.list/t.rast3d.list.py
    M temporal/t.rast3d.mapcalc/t.rast3d.mapcalc.py
    M temporal/t.rast3d.univar/t.rast3d.univar.py
    M temporal/t.register/t.register.py
    M temporal/t.register/testsuite/test_t_register_raster.py
    M temporal/t.register/testsuite/test_t_register_raster_different_local.py
    M temporal/t.register/testsuite/test_t_register_raster_file.py
    M temporal/t.register/testsuite/test_t_register_raster_mapmetadata.py
    M temporal/t.remove/t.remove.py
    M temporal/t.rename/testsuite/test_t_rename.py
    M temporal/t.sample/t.sample.py
    M temporal/t.select/t.select.py
    M temporal/t.shift/t.shift.py
    M temporal/t.shift/testsuite/test_shift.py
    M temporal/t.snap/t.snap.py
    M temporal/t.snap/testsuite/test_snap.py
    M temporal/t.support/t.support.py
    M temporal/t.support/testsuite/test_support_str3ds.py
    M temporal/t.support/testsuite/test_support_strds.py
    M temporal/t.support/testsuite/test_support_stvds.py
    M temporal/t.topology/t.topology.py
    M temporal/t.unregister/testsuite/test_unregister.py
    M temporal/t.vect.algebra/t.vect.algebra.py
    M temporal/t.vect.algebra/testsuite/test_vector_algebra.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M temporal/t.vect.extract/t.vect.extract.py
    M temporal/t.vect.list/t.vect.list.py
    M temporal/t.vect.univar/t.vect.univar.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py

  Log Message:
  -----------
  style(temporal): Sort and group imports (#3959)

* style(temporal): Sort and group imports

Uses a combination of `ruff check --output-format=concise --select I --fix 'temporal/' 'python/grass/temporal'`, `isort --profile=black temporal python/grass/temporal` and `black .`

* style(temporal): Sort and group imports for __init__.py


  Commit: e99f979b44d6e129cd988145ca3d19bd616fd341
      https://github.com/OSGeo/grass/commit/e99f979b44d6e129cd988145ca3d19bd616fd341
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/frame.py
    M gui/wxpython/animation/provider.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/settings.py
    M gui/wxpython/core/units.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/workspace.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/dbmgr/dialogs.py
    M gui/wxpython/dbmgr/vinfo.py
    M gui/wxpython/gmodeler/canvas.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/ghelp.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/menu.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/gui_core/toolbars.py
    M gui/wxpython/gui_core/vselect.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/icons/grass_icons.py
    M gui/wxpython/image2target/ii2t_gis_set.py
    M gui/wxpython/iscatt/dialogs.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/lmgr/workspace.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapdisp/statusbar.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/extensions.py
    M gui/wxpython/modules/import_export.py
    M gui/wxpython/modules/mcalc_builder.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/nviz/workspace.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/tools/update_menudata.py
    M gui/wxpython/vdigit/mapwindow.py
    M gui/wxpython/vdigit/preferences.py
    M gui/wxpython/vdigit/wxdigit.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/wxplot/dialogs.py
    M python/grass/grassdb/checks.py
    M python/grass/grassdb/history.py
    M python/grass/pygrass/raster/category.py
    M python/grass/pygrass/vector/table.py
    M python/grass/script/core.py
    M python/grass/script/raster.py
    M python/grass/script/task.py
    M python/grass/script/testsuite/test_utils.py
    M python/grass/script/vector.py
    M python/grass/semantic_label/reader.py
    M scripts/g.extension.all/g.extension.all.py
    M scripts/g.extension/g.extension.py
    M scripts/r.fillnulls/r.fillnulls.py
    M utils/thumbnails.py

  Log Message:
  -----------
  style: Fixes unnecessary-collection-call (C408) for empty collections (#3945)

* style: Fixes unnecessary-collection-call (C408) for empty collections

Only applies fixes to empty collections by  `ruff check --select "C408" --unsafe-fixes --fix --config "lint.flake8-comprehensions.allow-dict-calls-with-keyword-arguments = true"` in order to limit the review scope.

* style: apply black

* Apply suggestions from code review

---------

Co-authored-by: Stefan Blumentrath <stefan.blumentrath at gmx.de>


  Commit: 28bbce8dd772f48d38ef02743ba239207c950c57
      https://github.com/OSGeo/grass/commit/28bbce8dd772f48d38ef02743ba239207c950c57
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/dialogs.py
    M gui/wxpython/animation/temporal_manager.py
    M gui/wxpython/animation/utils.py
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gcp/mapdisplay.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/gui_core/mapdisp.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/pyedit.py
    M gui/wxpython/iclass/dialogs.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/image2target/ii2t_gis_set.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/image2target/ii2t_mapdisplay.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/lmgr/workspace.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/test_mapdisp.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/extensions.py
    M gui/wxpython/modules/histogram.py
    M gui/wxpython/modules/mcalc_builder.py
    M gui/wxpython/photo2image/ip2i_mapdisplay.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/rlisetup/frame.py
    M gui/wxpython/rlisetup/sampling_frame.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/startup/guiutils.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tools/update_menudata.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/tplot/g.gui.tplot.py
    M gui/wxpython/vdigit/mapwindow.py
    M gui/wxpython/vdigit/toolbars.py
    M gui/wxpython/vdigit/wxdigit.py
    M gui/wxpython/web_services/dialogs.py
    M gui/wxpython/wxplot/profile.py
    M lib/gis/testsuite/gis_lib_str_color.py
    M lib/init/grass.py
    M lib/raster/testsuite/rast_parse_color_rule.py
    M man/build_class_graphical.py
    M man/build_keywords.py
    M man/build_manual_gallery.py
    M man/build_topics.py
    M man/parser_standard_options.py
    M python/grass/gunittest/case.py
    M python/grass/gunittest/checkers.py
    M python/grass/gunittest/gmodules.py
    M python/grass/gunittest/main.py
    M python/grass/gunittest/reporters.py
    M python/grass/pygrass/errors.py
    M python/grass/pygrass/modules/interface/parameter.py
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/vector/table.py
    M python/grass/script/core.py
    M python/grass/script/raster.py
    M python/grass/script/raster3d.py
    M python/grass/script/task.py
    M python/grass/temporal/abstract_map_dataset.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/aggregation.py
    M python/grass/temporal/base.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/core.py
    M python/grass/temporal/open_stds.py
    M python/grass/temporal/spatial_extent.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M python/grass/temporal/stds_export.py
    M python/grass/temporal/stds_import.py
    M python/libgrass_interface_generator/ctypesgen/expressions.py
    M python/libgrass_interface_generator/ctypesgen/main.py
    M python/libgrass_interface_generator/ctypesgen/printer_python/printer.py
    M raster3d/r3.to.rast/testsuite/test_a_b_coeff.py
    M raster3d/r3.to.rast/testsuite/test_integer_rounding.py
    M raster3d/r3.to.rast/testsuite/test_nulls.py
    M raster3d/r3.to.rast/testsuite/test_small_data.py
    M scripts/db.dropcolumn/db.dropcolumn.py
    M scripts/db.in.ogr/db.in.ogr.py
    M scripts/g.extension/g.extension.py
    M scripts/g.manual/g.manual.py
    M scripts/i.in.spotvgt/i.in.spotvgt.py
    M scripts/i.oif/i.oif.py
    M scripts/r.blend/r.blend.py
    M scripts/r.in.wms/wms_cap_parsers.py
    M scripts/r.reclass.area/r.reclass.area.py
    M scripts/v.db.droptable/v.db.droptable.py
    M scripts/v.db.reconnect.all/v.db.reconnect.all.py
    M scripts/v.in.e00/v.in.e00.py
    M scripts/v.rast.stats/v.rast.stats.py
    M scripts/v.what.strds/v.what.strds.py
    M temporal/t.rast.aggregate.ds/t.rast.aggregate.ds.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_operators.py
    M temporal/t.rast.export/t.rast.export.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.rast.what/t.rast.what.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M temporal/t.vect.observe.strds/t.vect.observe.strds.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py

  Log Message:
  -----------
  style: Fix single-line-implicit-string-concatenation violations (ISC001)  (#3943)

* style: Fix single-line-implicit-string-concatenation violations (ISC001)

Only applies safe fixes with `ruff check --select "ISC001" --fix` in order to limit the review scope.

* style: Apply black formatting

Separated in another commit for easier review of the changes of the first commit


  Commit: 939ed83731a767b3c596d8f7d7c659dd847c6cfc
      https://github.com/OSGeo/grass/commit/939ed83731a767b3c596d8f7d7c659dd847c6cfc
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M imagery/i.landsat.acca/main.c

  Log Message:
  -----------
  i.landsat.acca: Fix uninitialized variable issue (#3958)

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-48.vcl.ncsu.edu>


  Commit: 7cf68ef7092cc272c683d3d51a1bd766f0bc514f
      https://github.com/OSGeo/grass/commit/7cf68ef7092cc272c683d3d51a1bd766f0bc514f
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M raster/r.texture/benchmark/benchmark_rtexture.py

  Log Message:
  -----------
  style: fix missing whitespace between operators (#3967)


  Commit: 0cc7cbf610e889075b8f465eecb0f319737b7456
      https://github.com/OSGeo/grass/commit/0cc7cbf610e889075b8f465eecb0f319737b7456
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/frame.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/menu.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/vdigit/g.gui.vdigit.py

  Log Message:
  -----------
  style: Fixes some unnecessary-lambda (PLW0108) (#3956)

Concerns Pylint rule "unnecessary-lambda / W0108"

Using `ruff check --output-format=concise --select PLW0108 --preview --fix --unsafe-fixes`.

Didn't apply to cases where it wasn't clear if it was safe


  Commit: 69c616cfb738c16f590b168d3e54f29600a9ac77
      https://github.com/OSGeo/grass/commit/69c616cfb738c16f590b168d3e54f29600a9ac77
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M raster/r.terraflow/sweep.cpp

  Log Message:
  -----------
  raster: Fix uninitialized variable 'flowpq' in raster/r.terraflow/sweep.cpp (#3966)

Fix uninitialized variable 'flowpq' in raster/r.terraflow/sweep.cpp

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm177-241.vcl.ncsu.edu>


  Commit: 16b69e4c3e1359f2f8304353bd9d6919994eb6c8
      https://github.com/OSGeo/grass/commit/16b69e4c3e1359f2f8304353bd9d6919994eb6c8
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M Dockerfile
    M docker/ubuntu/Dockerfile
    M docker/ubuntu_wxgui/Dockerfile

  Log Message:
  -----------
  CI(deps): Update ubuntu:22.04 Docker digest to 340d9b0 (#3971)


  Commit: 7f4aabffb350c6d12ef5d27f954a95f7d1de3be4
      https://github.com/OSGeo/grass/commit/7f4aabffb350c6d12ef5d27f954a95f7d1de3be4
  Author: Kriti Birda <164247895+kritibirda26 at users.noreply.github.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M raster/r.profile/Makefile
    M raster/r.profile/local_proto.h
    M raster/r.profile/main.c
    M raster/r.profile/r.profile.html
    M raster/r.profile/read_rast.c
    M raster/r.profile/testsuite/test_profile_ncspm.py

  Log Message:
  -----------
  r.profile: add JSON support (#3872)

Use parson to add json output format support to the r.profile module.


  Commit: 1a8cbece96d1a22ca508aba8a72cf4faa270d3a9
      https://github.com/OSGeo/grass/commit/1a8cbece96d1a22ca508aba8a72cf4faa270d3a9
  Author: Makiko Shukunobe <mshukuno at users.noreply.github.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M .flake8
    M locale/grass_po_stats.py
    M python/grass/pygrass/raster/rowio.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M scripts/d.rast.leg/d.rast.leg.py
    M scripts/db.univar/db.univar.py
    M scripts/r.in.wms/wms_cap_parsers.py

  Log Message:
  -----------
  Checks: fix flake8 E741 remainder (#3928)

* Rename l to line when using `f.readlines()`.

* Remove "l"s from parameters since they aren't used.

* Rename "l" to "lx" to assign a lexer object.

* Add "# noqa: E741" as renaming parameters won't be applicable in this case.

* Rename "l" to "ln" as line number.

* Rename "l" to "layer" when looping through the layer list.

* Remove E741 for files in the 'locale', `python`, and `scripts` directory.

* Rename "ln" to "line_number".


  Commit: 277a147cc6d0771a8e85a6b5ad7f26310fe7e86b
      https://github.com/OSGeo/grass/commit/277a147cc6d0771a8e85a6b5ad7f26310fe7e86b
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-02 (Tue, 02 Jul 2024)

  Changed paths:
    M .github/workflows/post-pr-reviews.yml
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml
    M pyproject.toml

  Log Message:
  -----------
  checks(ruff): Configure ruff linter (#3972)


  Commit: 5513912d6c6478cd14eb247a0ff3f434ac6f18fe
      https://github.com/OSGeo/grass/commit/5513912d6c6478cd14eb247a0ff3f434ac6f18fe
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/build-push-action action to v6.3.0 (#3976)


  Commit: 6424f9aa799bc8fdb4ef686ca29eee3d25ba5ed2
      https://github.com/OSGeo/grass/commit/6424f9aa799bc8fdb4ef686ca29eee3d25ba5ed2
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/setup-qemu-action action to v3.1.0 (#3977)


  Commit: 71ed433fe321fefe715da12ae54db4643548d244
      https://github.com/OSGeo/grass/commit/71ed433fe321fefe715da12ae54db4643548d244
  Author: Kriti Birda <164247895+kritibirda26 at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M raster/r.univar/Makefile
    M raster/r.univar/globals.h
    M raster/r.univar/r.univar.html
    M raster/r.univar/r.univar_main.c
    M raster/r.univar/r3.univar_main.c
    M raster/r.univar/stats.c
    M raster/r.univar/testsuite/test_r_univar.py

  Log Message:
  -----------
  r.univar: add JSON support (#3783)

* Add JSON support to r.univar

Use parson to add json output format support to the r.univar module.

* Apply suggestions from code review

---------

Co-authored-by: Nicklas Larsson <n_larsson at yahoo.com>


  Commit: cc752697505e277c2a15f8a1e7e68f3f16b13be7
      https://github.com/OSGeo/grass/commit/cc752697505e277c2a15f8a1e7e68f3f16b13be7
  Author: Kriti Birda <164247895+kritibirda26 at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M vector/v.univar/Makefile
    M vector/v.univar/main.c
    A vector/v.univar/testsuite/test_v_univar.py
    R vector/v.univar/testsuite/v_univar_test.py
    M vector/v.univar/v.univar.html

  Log Message:
  -----------
  v.univar: add JSON support (#3784)

* Add JSON support to v.univar

Use parson to add json output format support to the v.univar module.

* update percentile format

* rename test file


  Commit: 56eaf9ebe053f9bd787107a6f99c7467c90056a2
      https://github.com/OSGeo/grass/commit/56eaf9ebe053f9bd787107a6f99c7467c90056a2
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-03 (Wed, 03 Jul 2024)

  Changed paths:
    M display/d.labels/main.c

  Log Message:
  -----------
  d.labels: Reduce scope of minreg and maxreg variables in main.c (#3979)

Reduce scope of minreg and maxreg variables in d.labels/main.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm178-253.vcl.ncsu.edu>


  Commit: 66c4df0988b7755c5a729d783ef30309f1f46d02
      https://github.com/OSGeo/grass/commit/66c4df0988b7755c5a729d783ef30309f1f46d02
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/setup-buildx-action action to v3.4.0 (#3982)


  Commit: 79726a09e7efcf3bedda7b6f7e0fcdee1dfb9d7c
      https://github.com/OSGeo/grass/commit/79726a09e7efcf3bedda7b6f7e0fcdee1dfb9d7c
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
    M display/d.legend.vect/draw.c

  Log Message:
  -----------
  d.legend.vect: Reduce scope of 'bg_w' variable in draw.c (#3980)

Reduce scope of 'bg_w' variable in d.legend.vect/draw.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm178-253.vcl.ncsu.edu>


  Commit: cb1e9b351494d45d941e4a68b87ecea0fc2d70b7
      https://github.com/OSGeo/grass/commit/cb1e9b351494d45d941e4a68b87ecea0fc2d70b7
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
    M lib/gis/parser_interface.c

  Log Message:
  -----------
  lib: Fix uninitialized variable 'encoding' in parser_interface.c (#3975)

Fix uninitialized variable 'encoding' in parser_interface.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm178-253.vcl.ncsu.edu>


  Commit: 931e79ac75f5656a5e2df149b051975846b7748a
      https://github.com/OSGeo/grass/commit/931e79ac75f5656a5e2df149b051975846b7748a
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
    M .github/workflows/post-pr-reviews.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(ruff): Fine tune posting Ruff suggestions (#3978)

* CI(ruff): Fix typo in ruff suggestions

* CI(ruff): Upload suggestions even if not all linting errors were fixed

* CI(ruff): Try suggesting more changes

* CI(ruff): Upload suggestions even if not all linting errors were fixed but do not run when cancelled


  Commit: d880ec0a6d88ce64a10f18c7d3e8701bf8e8972f
      https://github.com/OSGeo/grass/commit/d880ec0a6d88ce64a10f18c7d3e8701bf8e8972f
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-04 (Thu, 04 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/frame.py
    M gui/wxpython/animation/g.gui.animation.py
    M gui/wxpython/animation/temporal_manager.py
    M gui/wxpython/animation/utils.py
    M gui/wxpython/core/debug.py
    M gui/wxpython/core/gconsole.py
    M gui/wxpython/core/giface.py
    M gui/wxpython/datacatalog/g.gui.datacatalog.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/dbmgr/g.gui.dbmgr.py
    M gui/wxpython/dbmgr/sqlbuilder.py
    M gui/wxpython/dbmgr/vinfo.py
    M gui/wxpython/gcp/g.gui.gcp.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gmodeler/g.gui.gmodeler.py
    M gui/wxpython/gui_core/ghelp.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/pyedit.py
    M gui/wxpython/gui_core/vselect.py
    M gui/wxpython/iclass/dialogs.py
    M gui/wxpython/iclass/digit.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/iclass/g.gui.iclass.py
    M gui/wxpython/iclass/statistics.py
    M gui/wxpython/iclass/toolbars.py
    M gui/wxpython/image2target/g.gui.image2target.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/iscatt/controllers.py
    M gui/wxpython/iscatt/dialogs.py
    M gui/wxpython/iscatt/iscatt_core.py
    M gui/wxpython/iscatt/plots.py
    M gui/wxpython/lmgr/pyshell.py
    M gui/wxpython/location_wizard/dialogs.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/test_mapdisp.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/mapswipe/g.gui.mapswipe.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/mcalc_builder.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/nviz/wxnviz.py
    M gui/wxpython/photo2image/g.gui.photo2image.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/g.gui.psmap.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/psmap/utils.py
    M gui/wxpython/rlisetup/g.gui.rlisetup.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/timeline/g.gui.timeline.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/tplot/g.gui.tplot.py
    M gui/wxpython/vdigit/g.gui.vdigit.py
    M gui/wxpython/vdigit/toolbars.py
    M gui/wxpython/web_services/dialogs.py
    M gui/wxpython/web_services/widgets.py
    M gui/wxpython/wxplot/base.py
    M gui/wxpython/wxplot/histogram.py
    M gui/wxpython/wxplot/profile.py
    M gui/wxpython/wxplot/scatter.py
    M lib/imagery/testsuite/test_imagery_signature_management.py
    M pyproject.toml
    M python/grass/benchmark/plots.py
    M python/grass/gunittest/multireport.py
    M python/grass/gunittest/reporters.py
    M python/grass/imaging/images2avi.py
    M python/grass/pygrass/gis/region.py
    M python/grass/pygrass/tests/benchmark.py
    M python/grass/script/array.py
    M python/grass/temporal/aggregation.py
    M python/grass/temporal/core.py
    M python/grass/temporal/extract.py
    M python/grass/temporal/gui_support.py
    M python/grass/temporal/mapcalc.py
    M python/grass/temporal/stds_export.py
    M python/grass/temporal/stds_import.py
    M python/grass/temporal/testsuite/test_register_function.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_grs.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_mixed_stds.py
    M python/grass/temporal/testsuite/unittests_temporal_conditionals.py
    M python/grass/temporal/testsuite/unittests_temporal_raster3d_algebra.py
    M raster/r.solute.transport/seguin_verify.py
    M raster/r.solute.transport/seguin_verify_well.py
    M scripts/d.rast.edit/d.rast.edit.py
    M scripts/d.rast.leg/d.rast.leg.py
    M scripts/db.dropcolumn/db.dropcolumn.py
    M scripts/db.droptable/db.droptable.py
    M scripts/db.in.ogr/db.in.ogr.py
    M scripts/db.univar/db.univar.py
    M scripts/g.extension.all/g.extension.all.py
    M scripts/i.colors.enhance/i.colors.enhance.py
    M scripts/i.image.mosaic/i.image.mosaic.py
    M scripts/i.in.spotvgt/i.in.spotvgt.py
    M scripts/i.pansharpen/i.pansharpen.py
    M scripts/i.tasscap/i.tasscap.py
    M scripts/r.blend/r.blend.py
    M scripts/r.buffer.lowmem/r.buffer.lowmem.py
    M scripts/r.colors.stddev/r.colors.stddev.py
    M scripts/r.fillnulls/r.fillnulls.py
    M scripts/r.grow/r.grow.py
    M scripts/r.import/r.import.py
    M scripts/r.in.aster/r.in.aster.py
    M scripts/r.in.srtm/r.in.srtm.py
    M scripts/r.in.wms/r.in.wms.py
    M scripts/r.in.wms/wms_base.py
    M scripts/r.in.wms/wms_cap_parsers.py
    M scripts/r.in.wms/wms_drv.py
    M scripts/r.in.wms/wms_gdal_drv.py
    M scripts/r.mask/r.mask.py
    M scripts/r.plane/r.plane.py
    M scripts/r.reclass.area/r.reclass.area.py
    M scripts/r.rgb/r.rgb.py
    M scripts/v.centroids/v.centroids.py
    M scripts/v.clip/v.clip.py
    M scripts/v.db.addcolumn/v.db.addcolumn.py
    M scripts/v.db.addtable/v.db.addtable.py
    M scripts/v.db.dropcolumn/v.db.dropcolumn.py
    M scripts/v.db.droprow/v.db.droprow.py
    M scripts/v.db.droptable/v.db.droptable.py
    M scripts/v.db.reconnect.all/v.db.reconnect.all.py
    M scripts/v.db.renamecolumn/v.db.renamecolumn.py
    M scripts/v.db.univar/v.db.univar.py
    M scripts/v.db.update/v.db.update.py
    M scripts/v.import/v.import.py
    M scripts/v.in.geonames/v.in.geonames.py
    M scripts/v.rast.stats/v.rast.stats.py
    M scripts/v.report/v.report.py
    M scripts/v.to.lines/v.to.lines.py
    M scripts/v.what.strds/testsuite/test_what_strds.py
    M scripts/v.what.strds/v.what.strds.py
    M scripts/wxpyimgview/wxpyimgview.py
    M scripts/wxpyimgview/wxpyimgview_gui.py
    M temporal/t.copy/t.copy.py
    M temporal/t.create/t.create.py
    M temporal/t.info/t.info.py
    M temporal/t.list/t.list.py
    M temporal/t.merge/t.merge.py
    M temporal/t.rast.accdetect/t.rast.accdetect.py
    M temporal/t.rast.accumulate/t.rast.accumulate.py
    M temporal/t.rast.aggregate.ds/t.rast.aggregate.ds.py
    M temporal/t.rast.aggregate/t.rast.aggregate.py
    M temporal/t.rast.algebra/t.rast.algebra.py
    M temporal/t.rast.colors/t.rast.colors.py
    M temporal/t.rast.contour/t.rast.contour.py
    M temporal/t.rast.export/t.rast.export.py
    M temporal/t.rast.export/testsuite/test_rast_export.py
    M temporal/t.rast.extract/t.rast.extract.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.rast.import/t.rast.import.py
    M temporal/t.rast.mapcalc/t.rast.mapcalc.py
    M temporal/t.rast.neighbors/t.rast.neighbors.py
    M temporal/t.rast.out.vtk/t.rast.out.vtk.py
    M temporal/t.rast.series/t.rast.series.py
    M temporal/t.rast.to.rast3/t.rast.to.rast3.py
    M temporal/t.rast.to.vect/t.rast.to.vect.py
    M temporal/t.rast.what/t.rast.what.py
    M temporal/t.rast3d.algebra/t.rast3d.algebra.py
    M temporal/t.rast3d.algebra/testsuite/test_raster3d_algebra.py
    M temporal/t.rast3d.extract/t.rast3d.extract.py
    M temporal/t.rast3d.list/t.rast3d.list.py
    M temporal/t.rast3d.mapcalc/t.rast3d.mapcalc.py
    M temporal/t.register/t.register.py
    M temporal/t.remove/t.remove.py
    M temporal/t.rename/t.rename.py
    M temporal/t.sample/t.sample.py
    M temporal/t.select/t.select.py
    M temporal/t.shift/t.shift.py
    M temporal/t.snap/t.snap.py
    M temporal/t.support/t.support.py
    M temporal/t.topology/t.topology.py
    M temporal/t.unregister/t.unregister.py
    M temporal/t.vect.algebra/t.vect.algebra.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M temporal/t.vect.export/t.vect.export.py
    M temporal/t.vect.extract/t.vect.extract.py
    M temporal/t.vect.import/t.vect.import.py
    M temporal/t.vect.list/t.vect.list.py
    M temporal/t.vect.observe.strds/t.vect.observe.strds.py
    M temporal/t.vect.univar/t.vect.univar.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py
    M utils/ppmrotate.py
    M utils/thumbnails.py

  Log Message:
  -----------
  style: Fix unconventional-import-alias (ICN001) (consolidate `import grass.script as gs`) (#3981)

* style: Unignore unconventional-import-alias (ICN001) ruff rule

* style: Use convention `import matplotlib as mpl`

* style: Use convention `import numpy as np`

* style: Use convention `import grass.script as gs`

* test: Remove unused grass.script in test file

* style: Add missing alias to `import grass.script as gs`

* style: Alias `import grass.script as gs` when already imported at file-level

* Remove duplicated grass.script lazy import in wxpython/gui_core/ghelp.py


  Commit: d1738f6971bbf78555a4aff1e5a86beb582bdf22
      https://github.com/OSGeo/grass/commit/d1738f6971bbf78555a4aff1e5a86beb582bdf22
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M lib/vector/vedit/break.c
    M lib/vector/vedit/delete.c
    M lib/vector/vedit/merge.c
    M lib/vector/vedit/render.c
    M lib/vector/vedit/snap.c
    M lib/vector/vedit/vertex.c
    M lib/vector/vedit/zbulk.c

  Log Message:
  -----------
  libvector/vedit: fix memory leaks (#3619)


  Commit: e4b3dddbf82980217847b3e654aaf8bae2a803ce
      https://github.com/OSGeo/grass/commit/e4b3dddbf82980217847b3e654aaf8bae2a803ce
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M .pre-commit-config.yaml

  Log Message:
  -----------
  CI(deps): Update pre-commit hook astral-sh/ruff-pre-commit to v0.5.1 (#3984)


  Commit: 6db6f81858625841193154b2c54aadf942d229ae
      https://github.com/OSGeo/grass/commit/6db6f81858625841193154b2c54aadf942d229ae
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update dependency ruff to v0.5.1 (#3983)


  Commit: 30f7a3cafe2fdb561123d9c981f18c8cc4726864
      https://github.com/OSGeo/grass/commit/30f7a3cafe2fdb561123d9c981f18c8cc4726864
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M .github/actions/create-upload-suggestions/action.yml
    M .github/workflows/macos.yml
    M .github/workflows/osgeo4w.yml
    M .github/workflows/python-code-quality.yml
    M .github/workflows/ubuntu.yml

  Log Message:
  -----------
  CI(deps): Update actions/upload-artifact action to v4.3.4 (#3985)


  Commit: d528aa93bc3a8bfd68ce7e2121a2705e5e37a48a
      https://github.com/OSGeo/grass/commit/d528aa93bc3a8bfd68ce7e2121a2705e5e37a48a
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M .github/workflows/post-pr-reviews.yml

  Log Message:
  -----------
  CI(deps): Update actions/download-artifact action to v4.1.8 (#3986)


  Commit: b432e421bda342098456084c38d28bde940ad688
      https://github.com/OSGeo/grass/commit/b432e421bda342098456084c38d28bde940ad688
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-06 (Sat, 06 Jul 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/pytest.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update rui314/setup-mold digest to 2e332a0 (#3989)


  Commit: 559e088a988dcf5cd8e1d2c2e4e680afe69ba525
      https://github.com/OSGeo/grass/commit/559e088a988dcf5cd8e1d2c2e4e680afe69ba525
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-05 (Fri, 05 Jul 2024)

  Changed paths:
    M imagery/i.segment/mean_shift.c

  Log Message:
  -----------
  i.segment: Fix uninitialized struct member 'ngbr_rc.next' in mean_shift.c (#3973)

imagery: Fix uninitialized struct member 'ngbr_rc.next' in mean_shift.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm178-253.vcl.ncsu.edu>


  Commit: 1c3c30352021235e5b9553b2dd67ef490ced35f5
      https://github.com/OSGeo/grass/commit/1c3c30352021235e5b9553b2dd67ef490ced35f5
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lib/cdhc/shapiroe.c

  Log Message:
  -----------
  lib: Fix uninitialized variable issue in shapiroe.c (#3994)

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-2.vcl.ncsu.edu>


  Commit: 83f615acb677fe186a3f28820e8d4b10ef51a6cb
      https://github.com/OSGeo/grass/commit/83f615acb677fe186a3f28820e8d4b10ef51a6cb
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M imagery/i.segment/region_growing.c

  Log Message:
  -----------
  i.segment: Fix uninitialized struct member error in region_growing.c (#3974)

* Fix uninitialized struct member error in region_growing.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm178-253.vcl.ncsu.edu>
Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-2.vcl.ncsu.edu>


  Commit: ef69cb4471bf9edc9ab2a5ffc6cc8524c8a18693
      https://github.com/OSGeo/grass/commit/ef69cb4471bf9edc9ab2a5ffc6cc8524c8a18693
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M lib/cdhc/dmax.c

  Log Message:
  -----------
  lib: Fixed uninitialized variable warning in dmax.c by initializing dp, dp_max, dm, and dm_max to 0.0 (#3995)

Fixed uninitialized variable warning in dmax.c by initializing dp, dp_max, dm, and dm_max to 0.0.


  Commit: c94708a58985b72a4436682b3a6ddc0db1c1040f
      https://github.com/OSGeo/grass/commit/c94708a58985b72a4436682b3a6ddc0db1c1040f
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M .github/workflows/super-linter.yml

  Log Message:
  -----------
  CI(deps): Update super-linter/super-linter action to v6.7.0 (#4002)


  Commit: cd64472259769315a343a6ac2e8dc0ffc6a7f1df
      https://github.com/OSGeo/grass/commit/cd64472259769315a343a6ac2e8dc0ffc6a7f1df
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M imagery/i.atcorr/create_iwave.py
    M pyproject.toml
    M python/grass/imaging/images2gif.py
    M python/grass/temporal/abstract_map_dataset.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/temporal_granularity.py
    M scripts/g.extension/g.extension.py

  Log Message:
  -----------
  style: Fix pylint pointless-statement (W0104) (#3996)

* temporal: Actually call dbif.close() to fix pylint pointless-statement (W0104)

* g.extension: Fix pylint pointless-statement (W0104)

* temporal: Fix pointless-statement (W0104) in temporal_granularity

* temporal: Fix pointless-statement (W0104) in c_libraries_interface.py, _read_vector_history() function

* i.atcorr: Remove useless and non-working print statements in create_iwave.py

* python(grass.imaging): Use PIL.__version__ call to fix pylint pointless-statement

* style: Ignore ruff useless-expression (B018) for a gunittest data file. Equivalent to pylint pointless-statement / W010

* style: Enable ruff useless-expression (B018) (equivalent to pylint pointless-statement / W010)


  Commit: e952443cc43a28e7e13d479adb3a5d8678a36a88
      https://github.com/OSGeo/grass/commit/e952443cc43a28e7e13d479adb3a5d8678a36a88
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M pyproject.toml
    M python/grass/gunittest/invoker.py
    M utils/generate_last_commit_file.py
    M utils/mkhtml.py
    M utils/test_generate_last_commit_file.py

  Log Message:
  -----------
  style: Fix replace-stdout-stderr (UP022) (#4000)

Using `ruff check --output-format=concise --preview --select UP022 --unsafe-fixes --fix`


  Commit: f62b46f949d589c6858ab8594ac947b12b90a089
      https://github.com/OSGeo/grass/commit/f62b46f949d589c6858ab8594ac947b12b90a089
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M ps/ps.map/r_colortable.c

  Log Message:
  -----------
  ps.map: Fix uninitialized variable issues in r_colortable.c (#4004)


  Commit: 7b72452921b9c3efa0e56392740991cfde541bdc
      https://github.com/OSGeo/grass/commit/7b72452921b9c3efa0e56392740991cfde541bdc
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/gmodeler/canvas.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/lmgr/layertree.py
    M pyproject.toml
    M python/grass/pygrass/modules/grid/grid.py
    M python/grass/pygrass/modules/interface/flag.py
    M python/grass/pygrass/modules/interface/parameter.py
    M python/grass/pygrass/modules/interface/testsuite/test_flag.py
    M python/grass/pygrass/raster/abstract.py
    M python/grass/pygrass/utils.py
    M python/grass/pygrass/vector/__init__.py
    M python/grass/pygrass/vector/abstract.py
    M python/grass/pygrass/vector/geometry.py
    M utils/mkhtml.py

  Log Message:
  -----------
  style: Fix if-expr-with-true-false (SIM210) and if-expr-with-false-true (SIM211) (#3999)

Relates to pylint rule simplifiable-if-expression / R1719


  Commit: 18d11adf1e3c563cf218a68d8419b9e3e88658f3
      https://github.com/OSGeo/grass/commit/18d11adf1e3c563cf218a68d8419b9e3e88658f3
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M python/grass/jupyter/tests/seriesmap_test.py
    M python/grass/jupyter/tests/timeseriesmap_test.py
    M temporal/t.rast.list/tests/t_rast_list_test.py

  Log Message:
  -----------
  pytest: Mark tests using space_time_raster_dataset as needs_solo_run (#3939)


  Commit: 2f5bed644d04eaf9c7cb72f7a02c2d4a68324c0f
      https://github.com/OSGeo/grass/commit/2f5bed644d04eaf9c7cb72f7a02c2d4a68324c0f
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M pyproject.toml
    M python/grass/pygrass/rpc/base.py
    M python/grass/temporal/c_libraries_interface.py

  Log Message:
  -----------
  style: Fix python logging-related pylint and ruff warnings (#3998)


  Commit: 4be87a11c8b23d0abce992b9c85afa3d387922e1
      https://github.com/OSGeo/grass/commit/4be87a11c8b23d0abce992b9c85afa3d387922e1
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-08 (Mon, 08 Jul 2024)

  Changed paths:
    M gui/wxpython/core/utils.py
    M pyproject.toml
    M python/grass/imaging/images2swf.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/datetime_math.py

  Log Message:
  -----------
  style: Fix pylint try-except-raise (W0706) (#3997)

* python(grass.temporal): Fix pylint try-except-raise (W0706)

Do not catch exception only to raise it again

* gui/wxpython/core/utils: Fix pylint try-except-raise (W0706)

* python: Fix pylint try-except-raise (W0706)

* style: Enable ruff useless-try-except (TRY302) as fixed


  Commit: f4a407fdc67841d25a1268f10cf7cf0e63319a51
      https://github.com/OSGeo/grass/commit/f4a407fdc67841d25a1268f10cf7cf0e63319a51
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M gui/wxpython/dbmgr/sqlbuilder.py
    M gui/wxpython/iscatt/controllers.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/mapwin/base.py
    M pyproject.toml
    M python/grass/jupyter/seriesmap.py
    M python/grass/jupyter/tests/seriesmap_test.py
    M python/grass/jupyter/tests/timeseriesmap_test.py
    M python/grass/pygrass/tests/benchmark.py
    M python/grass/script/testsuite/test_utils.py
    M scripts/v.pack/v.pack.py

  Log Message:
  -----------
  style: Fix incorrect-dict-iterator (PERF102) (#4007)

When iterating over a dictionary with dict.items() but discarding either the values or the keys, dict.values() or dict.keys() should be used instead


  Commit: 89762ec8e8a788d8a93e90b78c9728143f216596
      https://github.com/OSGeo/grass/commit/89762ec8e8a788d8a93e90b78c9728143f216596
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M pyproject.toml

  Log Message:
  -----------
  style: Ignore multiple-with-statements (SIM117) for test files (#4008)


  Commit: acc3e38eb9afb14258d81be147d35151c26d1bfa
      https://github.com/OSGeo/grass/commit/acc3e38eb9afb14258d81be147d35151c26d1bfa
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M gui/wxpython/core/toolboxes.py
    M pyproject.toml
    M scripts/r.in.wms/wms_cap_parsers.py

  Log Message:
  -----------
  style: Fix loop-variable-overrides-iterator (B020) (#4010)


  Commit: b73eae5edb5300605f0e2bd022cb50cc44bf382e
      https://github.com/OSGeo/grass/commit/b73eae5edb5300605f0e2bd022cb50cc44bf382e
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/vnet/vnet_data.py
    M pyproject.toml

  Log Message:
  -----------
  style: Fix not-in-test (E713) and not-is-test (E714) (#4011)

* style: Fix not-is-test (E714)

* style: Fix not-in-test (E713)


  Commit: 3e8706d845e011b9b061403f647f81d64b524e2f
      https://github.com/OSGeo/grass/commit/3e8706d845e011b9b061403f647f81d64b524e2f
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M raster/r.statistics/o_var.c

  Log Message:
  -----------
  raster: Fix uninitialized variable issue in o_var.c (#4005)

Fix uninitialized variable issue in o_var.c

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-25.vcl.ncsu.edu>


  Commit: 87b6ac0c7f2e097bd5fbcddf3fb996fdcd016e55
      https://github.com/OSGeo/grass/commit/87b6ac0c7f2e097bd5fbcddf3fb996fdcd016e55
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M raster3d/r3.info/main.c

  Log Message:
  -----------
  raster3d: Fix uninitialized variable issue in main.c (#4006)

Co-authored-by: Shubham Vasudeo Desai <sdesai8 at vclvm179-25.vcl.ncsu.edu>


  Commit: 6ebeb4bdb58b098bc4b9da1b124f14f224c45d4f
      https://github.com/OSGeo/grass/commit/6ebeb4bdb58b098bc4b9da1b124f14f224c45d4f
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M .github/workflows/test-nix.yml
    M renovate.json5

  Log Message:
  -----------
  CI: automatic update of nix lock file (#4016)


  Commit: 152f4930e4d8fda2652e5fbc8ac4e188d9927c0e
      https://github.com/OSGeo/grass/commit/152f4930e4d8fda2652e5fbc8ac4e188d9927c0e
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M flake.lock
    M flake.nix
    M package.nix

  Log Message:
  -----------
  nix: pin python version to 3.11 (#4017)

* nix: pin python version to 3.11

* nix: update flake.lock file

* nix: use default wxpython version for package


  Commit: 2186ec5208a890829f41ebbfb2246d5db1e3b017
      https://github.com/OSGeo/grass/commit/2186ec5208a890829f41ebbfb2246d5db1e3b017
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M .github/workflows/additional_checks.yml
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/create_release_draft.yml
    M .github/workflows/pytest.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update actions/setup-python action to v5.1.1 (#4019)


  Commit: d41987cf44a1546bf75c9ccc1732ce79c738c855
      https://github.com/OSGeo/grass/commit/d41987cf44a1546bf75c9ccc1732ce79c738c855
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M gui/wxpython/core/settings.py
    M gui/wxpython/datacatalog/dialogs.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gui_core/query.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/iscatt/plots.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/modules/extensions.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/vnet/dialogs.py
    M gui/wxpython/vnet/vnet_core.py
    M gui/wxpython/vnet/vnet_data.py
    M man/parser_standard_options.py
    M pyproject.toml
    M python/grass/gunittest/runner.py
    M python/grass/pygrass/vector/testsuite/test_geometry.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_granularity.py
    M python/grass/temporal/temporal_raster_base_algebra.py
    M scripts/g.extension/g.extension.py
    M scripts/r.in.wms/wms_drv.py
    M scripts/r.tileset/r.tileset.py
    M utils/mkhtml.py

  Log Message:
  -----------
  style: Fix repeated-append (FURB113) (#4014)


  Commit: c9a1a17c5266f9c01da8be4daf4500aeafbb7ba7
      https://github.com/OSGeo/grass/commit/c9a1a17c5266f9c01da8be4daf4500aeafbb7ba7
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M imagery/i.segment/region_growing.c

  Log Message:
  -----------
  i.segment: Fix uninitialized variable issue (#4023)


  Commit: a3543cd83886835268fc43b39ac1c9748b493faf
      https://github.com/OSGeo/grass/commit/a3543cd83886835268fc43b39ac1c9748b493faf
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    M gui/wxpython/core/treemodel.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/startup/guiutils.py
    M man/parser_standard_options.py
    M pyproject.toml
    M python/grass/pygrass/modules/grid/grid.py
    M python/grass/pygrass/modules/grid/split.py
    M python/grass/pygrass/modules/shortcuts.py
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/raster/abstract.py
    M python/grass/pygrass/shell/conversion.py
    M python/grass/pygrass/utils.py
    M python/grass/pygrass/vector/__init__.py
    M python/grass/pygrass/vector/abstract.py
    M python/grass/pygrass/vector/basic.py
    M python/grass/pygrass/vector/find.py
    M python/grass/pygrass/vector/geometry.py
    M python/grass/pygrass/vector/table.py
    M python/grass/script/tests/grass_script_core_location_test.py
    M scripts/db.in.ogr/db.in.ogr.py
    M scripts/g.extension/g.extension.py
    M utils/mkhtml.py

  Log Message:
  -----------
  style: Fix if-exp-instead-of-or-operator (FURB110) (#4013)


  Commit: 4aa61d74177244441471ee29809aa9a2f03a3f62
      https://github.com/OSGeo/grass/commit/4aa61d74177244441471ee29809aa9a2f03a3f62
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M gui/wxpython/core/render.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tplot/frame.py
    M pyproject.toml
    M python/grass/script/core.py
    M python/grass/semantic_label/reader.py

  Log Message:
  -----------
  style: Fix unnecessary-map (C417) (#4012)

* style: Fix unnecessary-map (C417)

* Apply suggestions from code review

* style: Change outer quotes to avoid escaping inner quotes for Q003


  Commit: 92cf465412d31ff57728dc8eb3c58fafbd419816
      https://github.com/OSGeo/grass/commit/92cf465412d31ff57728dc8eb3c58fafbd419816
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M pyproject.toml
    M python/grass/pygrass/modules/grid/split.py

  Log Message:
  -----------
  style: Fix if-expr-min-max (FURB136) (#4026)


  Commit: 6b38ffbc1004d735db0797abd170f0eaf4c4cd43
      https://github.com/OSGeo/grass/commit/6b38ffbc1004d735db0797abd170f0eaf4c4cd43
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M pyproject.toml
    M raster/r.stats.zonal/graphics_for_description.ipynb

  Log Message:
  -----------
  style: Fix too-many-newlines-at-end-of-file (W391) (#4025)


  Commit: 169ca9b66ef41f0e5db1cecfe351882b00dded5d
      https://github.com/OSGeo/grass/commit/169ca9b66ef41f0e5db1cecfe351882b00dded5d
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M gui/wxpython/psmap/instructions.py
    M pyproject.toml
    M python/grass/script/task.py
    M raster/r.solute.transport/example.py

  Log Message:
  -----------
  style: Fix empty-comment (PLR2044) (#4024)


  Commit: ff453d215a3244644ef207f2d5d065f680016da0
      https://github.com/OSGeo/grass/commit/ff453d215a3244644ef207f2d5d065f680016da0
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M gui/wxpython/modules/colorrules.py
    M pyproject.toml
    M scripts/wxpyimgview/wxpyimgview_gui.py

  Log Message:
  -----------
  style: Fix get-attr-with-constant (B009) (#4009)


  Commit: ff2da11b41e6943ff3d83f4801df203228b81ecd
      https://github.com/OSGeo/grass/commit/ff2da11b41e6943ff3d83f4801df203228b81ecd
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    M gui/wxpython/datacatalog/tree.py
    M lib/init/grass.py
    M pyproject.toml
    M python/grass/temporal/temporal_algebra.py
    M scripts/d.polar/d.polar.py

  Log Message:
  -----------
  style: Fix unnecessary-comprehension-in-call (C419) (#4027)


  Commit: 52a7fd70f045427e6b790328d711a5c6a8b323de
      https://github.com/OSGeo/grass/commit/52a7fd70f045427e6b790328d711a5c6a8b323de
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    M pyproject.toml
    M python/grass/imaging/images2swf.py

  Log Message:
  -----------
  style: Fix f-string-number-format (FURB116) (#4030)


  Commit: 204903cdabb516c9f13c5d0a3199b224af085488
      https://github.com/OSGeo/grass/commit/204903cdabb516c9f13c5d0a3199b224af085488
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    M imagery/i.atcorr/create_iwave.py
    M pyproject.toml

  Log Message:
  -----------
  style: Fix is-literal (F632) (#4031)


  Commit: 3ef2715bc756520820772be081595a6c1656336e
      https://github.com/OSGeo/grass/commit/3ef2715bc756520820772be081595a6c1656336e
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    M pyproject.toml
    M utils/generate_release_notes.py

  Log Message:
  -----------
  style: Fix print-empty-string (FURB105) (#4029)


  Commit: ee9fa48798c84ba329d3a698b0353a1f61c18c36
      https://github.com/OSGeo/grass/commit/ee9fa48798c84ba329d3a698b0353a1f61c18c36
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-07-11 (Thu, 11 Jul 2024)

  Changed paths:
    A doc/NIX.md

  Log Message:
  -----------
  doc: add Nix documentation (#3990)

Co-authored-by: Markus Neteler <markus at neteler.org>


  Commit: b3cb5db01dc049092f095ffed86fa9ce05db769b
      https://github.com/OSGeo/grass/commit/b3cb5db01dc049092f095ffed86fa9ce05db769b
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-12 (Fri, 12 Jul 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.25.12 (#4038)


  Commit: d31afbd637a6cd62b4cbc0100872cac0733aa97a
      https://github.com/OSGeo/grass/commit/d31afbd637a6cd62b4cbc0100872cac0733aa97a
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-12 (Fri, 12 Jul 2024)

  Changed paths:
    M Dockerfile
    M docker/ubuntu/Dockerfile

  Log Message:
  -----------
  CI(deps): Update docker/dockerfile Docker tag to v1.9 (#4037)


  Commit: 8f83c24630ac68f5b0507e653179dcf27d3b5f68
      https://github.com/OSGeo/grass/commit/8f83c24630ac68f5b0507e653179dcf27d3b5f68
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M imagery/i.atcorr/main.cpp

  Log Message:
  -----------
  i.atcorr: Fix uninitialized variable (#4022)


  Commit: cb0087e630b5105d137a57ca5f4b0d0c31aa2922
      https://github.com/OSGeo/grass/commit/cb0087e630b5105d137a57ca5f4b0d0c31aa2922
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M man/build_class_graphical.py
    M pyproject.toml

  Log Message:
  -----------
  style: Fix sorted-min-max (FURB192) (#4035)


  Commit: a751f939243c433496c4ebce0f3ccd55b9a502d5
      https://github.com/OSGeo/grass/commit/a751f939243c433496c4ebce0f3ccd55b9a502d5
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M gui/wxpython/core/gconsole.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/settings.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/watchdog.py
    M gui/wxpython/core/workspace.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gui_core/ghelp.py
    M gui/wxpython/image2target/ii2t_gis_set.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/vnet/vnet_data.py
    M lib/init/grass.py
    M pyproject.toml
    M python/grass/grassdb/history.py
    M python/grass/pygrass/raster/category.py
    M python/grass/script/core.py
    M python/grass/script/db.py
    M scripts/d.frame/d.frame.py
    M scripts/g.extension/g.extension.py
    M scripts/i.spectral/i.spectral.py
    M scripts/r.pack/r.pack.py

  Log Message:
  -----------
  style: Fix readlines-in-for (FURB129) (#4034)


  Commit: 3b309db29aa0b4ff404e89565efa9f47fa513d38
      https://github.com/OSGeo/grass/commit/3b309db29aa0b4ff404e89565efa9f47fa513d38
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/watchdog.py
    M gui/wxpython/gui_core/ghelp.py
    M gui/wxpython/history/browser.py
    M gui/wxpython/lmgr/statusbar.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/tools/build_modules_xml.py
    M gui/wxpython/web_services/widgets.py
    M gui/wxpython/wxplot/base.py
    M pyproject.toml
    M python/grass/gunittest/gutils.py
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/vector/abstract.py
    M python/grass/script/array.py
    M python/grass/script/utils.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/base.py
    M python/grass/temporal/core.py
    M python/grass/temporal/datetime_math.py
    M python/grass/temporal/extract.py
    M python/grass/temporal/factory.py
    M python/grass/temporal/mapcalc.py
    M python/grass/temporal/open_stds.py
    M python/grass/temporal/spatial_extent.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M python/grass/temporal/stds_export.py
    M python/grass/temporal/stds_import.py
    M python/grass/temporal/temporal_extent.py
    M python/grass/temporal/temporal_operator.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M python/grass/temporal/univar_statistics.py
    M scripts/g.extension/testsuite/test_addons_download.py
    M scripts/v.what.strds/v.what.strds.py
    M temporal/t.rast.to.rast3/t.rast.to.rast3.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M temporal/t.vect.observe.strds/t.vect.observe.strds.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py

  Log Message:
  -----------
  style: Fix repeated-equality-comparison (PLR1714) (#4042)

* style: Fix repeated-equality-comparison (PLR1714)
* style: Fix literal-membership (PLR6201)


  Commit: b01a67d91bd4f96eb31be3dcd68068d25e68406d
      https://github.com/OSGeo/grass/commit/b01a67d91bd4f96eb31be3dcd68068d25e68406d
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/workspace.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/pyedit.py
    M gui/wxpython/gui_core/simplelmgr.py
    M gui/wxpython/gui_core/treeview.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/iclass/digit.py
    M gui/wxpython/iscatt/frame.py
    M gui/wxpython/iscatt/iscatt_core.py
    M gui/wxpython/iscatt/plots.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/wxnviz.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/psmap/utils.py
    M gui/wxpython/rlisetup/sampling_frame.py
    M gui/wxpython/startup/guiutils.py
    M gui/wxpython/startup/locdownload.py
    M gui/wxpython/vnet/vnet_core.py
    M gui/wxpython/vnet/vnet_data.py
    M imagery/i.atcorr/create_iwave.py
    M man/build_manual_gallery.py
    M pyproject.toml
    M python/grass/grassdb/checks.py
    M python/grass/grassdb/history.py
    M python/grass/gunittest/reporters.py
    M python/grass/imaging/images2gif.py
    M python/grass/jupyter/utils.py
    M python/grass/pydispatch/saferef.py
    M python/grass/pygrass/modules/interface/env.py
    M python/grass/pygrass/shell/show.py
    M python/grass/pygrass/vector/geometry.py
    M python/grass/script/core.py
    M python/grass/script/task.py
    M python/grass/script/utils.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/mapcalc.py
    M python/grass/temporal/spatial_extent.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_raster_base_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M scripts/r.semantic.label/testsuite/test_r_semantic_label.py
    M scripts/v.import/v.import.py
    M utils/md_isvalid.py
    M utils/mkhtml.py
    M utils/test_generate_last_commit_file.py

  Log Message:
  -----------
  style: Fix unnecessary-assign (RET504) (#4043)


  Commit: d690d0c3da772c274ac483a4ccde6b9d1404eb43
      https://github.com/OSGeo/grass/commit/d690d0c3da772c274ac483a4ccde6b9d1404eb43
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M gui/wxpython/core/gcmd.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/web_services/widgets.py
    M pyproject.toml
    M python/grass/temporal/spatial_extent.py
    M scripts/g.extension/g.extension.py

  Log Message:
  -----------
  style: Fix yoda-conditions (SIM300) (#4044)


  Commit: 98222a25c92ed58db7c6cebaac27830771c53b0c
      https://github.com/OSGeo/grass/commit/98222a25c92ed58db7c6cebaac27830771c53b0c
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/controller.py
    M gui/wxpython/animation/temporal_manager.py
    M gui/wxpython/animation/utils.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/toolboxes.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/psmap/dialogs.py
    M lib/init/grass.py
    M pyproject.toml
    M python/grass/grassdb/history.py
    M scripts/g.extension/g.extension.py

  Log Message:
  -----------
  style: Fix various FURB (small count) (#4046)

* style: Fix reimplemented-starmap (FURB140)

Ruff rule: https://docs.astral.sh/ruff/rules/reimplemented-starmap/

* style: Fix delete-full-slice (FURB131)

Ruff rule: https://docs.astral.sh/ruff/rules/delete-full-slice/

* style: Fix unnecessary-enumerate (FURB148)

Ruff rule: https://docs.astral.sh/ruff/rules/unnecessary-enumerate

* style: Fix for-loop-set-mutations (FURB142)

Ruff rule: https://docs.astral.sh/ruff/rules/for-loop-set-mutations

* style: Fix single-item-membership-test (FURB171)

Ruff rule: https://docs.astral.sh/ruff/rules/single-item-membership-test


  Commit: 76958057df4013ce30f0d6d15b1699832e0aadab
      https://github.com/OSGeo/grass/commit/76958057df4013ce30f0d6d15b1699832e0aadab
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    M display/d.text/test.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/toolboxes.py
    M gui/wxpython/gui_core/pyedit.py
    M man/build_manual_gallery.py
    M pyproject.toml
    M python/grass/benchmark/results.py
    M python/grass/grassdb/history.py
    M python/grass/gunittest/invoker.py
    M python/grass/gunittest/reporters.py
    M python/grass/gunittest/testsuite/test_assertions.py
    M python/grass/jupyter/baseseriesmap.py
    M python/grass/jupyter/interactivemap.py
    M python/grass/pygrass/raster/category.py
    M python/grass/pygrass/shell/show.py
    M raster/r.mfilter/benchmark/benchmark_r_mfilter_nprocs.py
    M raster/r.neighbors/testsuite/test_r_neighbors.py
    M scripts/g.extension/g.extension.py
    M scripts/g.extension/testsuite/test_addons_download.py
    M scripts/r.in.wms/wms_base.py
    M scripts/r.unpack/r.unpack.py
    M scripts/v.db.addcolumn/v.db.addcolumn.py
    M scripts/v.in.wfs/v.in.wfs.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster3d.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_vector.py
    M temporal/t.register/testsuite/test_t_register_raster_file.py
    M utils/g.html2man/g.html2man.py
    M utils/generate_release_notes.py
    M utils/mkhtml.py
    M utils/update_version.py

  Log Message:
  -----------
  style: Fix read-whole-file (FURB101) and write-whole-file (FURB103) (#4047)

* style: Fix read-whole-file (FURB101)

Ruff rule: https://docs.astral.sh/ruff/rules/read-whole-file/

* style: Extract repeated config_directory variable in generate_release_notes

* style: Fix write-whole-file (FURB103)

Ruff rule: https://docs.astral.sh/ruff/rules/write-whole-file/


  Commit: b565924894c4ec35ab4584ef3a23c35087116b1f
      https://github.com/OSGeo/grass/commit/b565924894c4ec35ab4584ef3a23c35087116b1f
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-14 (Sun, 14 Jul 2024)

  Changed paths:
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M pyproject.toml
    M python/grass/script/vector.py
    M python/grass/temporal/core.py

  Log Message:
  -----------
  style: repeated-global (FURB154) (#4048)


  Commit: 1936cf0d6be1d6eed8f42a774890ed76191eb387
      https://github.com/OSGeo/grass/commit/1936cf0d6be1d6eed8f42a774890ed76191eb387
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-14 (Sun, 14 Jul 2024)

  Changed paths:
    M display/d.text/test.py
    M pyproject.toml

  Log Message:
  -----------
  style: Fix math-constant (FURB152) (#4049)

* style: Fix math-constant (FURB152)
Ruff rule: https://docs.astral.sh/ruff/rules/math-constant/

* style: Fix math-constant (FURB152) in lib/imagery/testsuite/test_imagery_sigsetfile.py

* style: Fix math-constant (FURB152)
Ruff rule: https://docs.astral.sh/ruff/rules/math-constant/

* Revert "style: Fix math-constant (FURB152) in lib/imagery/testsuite/test_imagery_sigsetfile.py"

* style: Ignore math-constant (FURB152) in lib/imagery/testsuite/test_imagery_sigsetfile.py


  Commit: 951b71b3559b737cfc62d4e4b1e6003580360d27
      https://github.com/OSGeo/grass/commit/951b71b3559b737cfc62d4e4b1e6003580360d27
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-15 (Mon, 15 Jul 2024)

  Changed paths:
    M flake.lock

  Log Message:
  -----------
  CI(deps): Lock file maintenance (#4057)


  Commit: 793cc1bd9298d062aae9504f39cd147f8370d7fe
      https://github.com/OSGeo/grass/commit/793cc1bd9298d062aae9504f39cd147f8370d7fe
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-15 (Mon, 15 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/build-push-action action to v6.4.0 (#4059)


  Commit: 2d055ab4b4f6c755ab605c71c0a3b86b6de69ad1
      https://github.com/OSGeo/grass/commit/2d055ab4b4f6c755ab605c71c0a3b86b6de69ad1
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-15 (Mon, 15 Jul 2024)

  Changed paths:
    M renovate.json5

  Log Message:
  -----------
  CI: Configure Renovate update groups (#4053)

* CI: Configure Renovate update groups

* CI: Use Renovate preset "group:githubArtifactActions" instead


  Commit: f3681c5958d1f536c9514ee097b445ecfa94fdea
      https://github.com/OSGeo/grass/commit/f3681c5958d1f536c9514ee097b445ecfa94fdea
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-15 (Mon, 15 Jul 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml

  Log Message:
  -----------
  CI(deps): Update ruff to v0.5.2 (#4061)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>


  Commit: f0497c5f6c0470d0704d7551710175839879a12a
      https://github.com/OSGeo/grass/commit/f0497c5f6c0470d0704d7551710175839879a12a
  Author: Stefan Blumentrath <stefan.blumentrath at gmx.de>
  Date:   2024-07-16 (Tue, 16 Jul 2024)

  Changed paths:
    M gui/wxpython/wxplot/profile.py
    M pyproject.toml
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/raster/testsuite/test_numpy.py
    M python/grass/pygrass/vector/testsuite/test_table.py
    M python/grass/pygrass/vector/testsuite/test_vector3d.py

  Log Message:
  -----------
  style: fix numpy-deprecation-rules (NPY) (#4062)

Fix the last cases of ruff rules:

* NPY001

* NPY002


  Commit: 692e330ecb8c074001d5380a8ada6be00881eb7c
      https://github.com/OSGeo/grass/commit/692e330ecb8c074001d5380a8ada6be00881eb7c
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/build-push-action action to v6.4.1 (#4064)


  Commit: f99780c11f8d4d1633e469fb32da2b6c75852b4f
      https://github.com/OSGeo/grass/commit/f99780c11f8d4d1633e469fb32da2b6c75852b4f
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/anim.py
    M gui/wxpython/animation/controller.py
    M gui/wxpython/animation/dialogs.py
    M gui/wxpython/animation/frame.py
    M gui/wxpython/animation/nviztask.py
    M gui/wxpython/animation/temporal_manager.py
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/settings.py
    M gui/wxpython/core/toolboxes.py
    M gui/wxpython/core/treemodel.py
    M gui/wxpython/core/units.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/dbmgr/dialogs.py
    M gui/wxpython/dbmgr/vinfo.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/goutput.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/mapdisp.py
    M gui/wxpython/gui_core/pyedit.py
    M gui/wxpython/gui_core/pystc.py
    M gui/wxpython/gui_core/toolbars.py
    M gui/wxpython/gui_core/wrap.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/iclass/digit.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/icons/icon.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/mapdisp/statusbar.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/mapwin/decorations.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/extensions.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/startup/guiutils.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/vdigit/mapwindow.py
    M gui/wxpython/vdigit/preferences.py
    M gui/wxpython/vdigit/toolbars.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/vnet/dialogs.py
    M gui/wxpython/vnet/vnet_data.py
    M gui/wxpython/wxplot/dialogs.py
    M gui/wxpython/wxplot/histogram.py
    M lib/init/grass.py
    M man/parser_standard_options.py
    M pyproject.toml
    M python/grass/gunittest/checkers.py
    M python/grass/gunittest/invoker.py
    M python/grass/jupyter/baseseriesmap.py
    M python/grass/jupyter/region.py
    M python/grass/pygrass/utils.py
    M python/grass/pygrass/vector/geometry.py
    M python/grass/script/core.py
    M python/grass/script/task.py
    M python/grass/semantic_label/reader.py
    M python/grass/temporal/abstract_map_dataset.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/base.py
    M python/grass/temporal/core.py
    M python/grass/temporal/datetime_math.py
    M python/grass/temporal/list_stds.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_granularity.py
    M python/grass/temporal/temporal_raster_base_algebra.py
    M scripts/d.frame/d.frame.py
    M scripts/g.extension/g.extension.py
    M scripts/m.proj/m.proj.py
    M scripts/r.semantic.label/r.semantic.label.py
    M scripts/v.db.reconnect.all/v.db.reconnect.all.py
    M scripts/v.in.lines/v.in.lines.py
    M scripts/v.report/v.report.py
    M temporal/t.rast.accdetect/t.rast.accdetect.py
    M temporal/t.rast.aggregate/t.rast.aggregate.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M utils/gitlog2changelog.py
    M utils/mkhtml.py

  Log Message:
  -----------
  style: Fix collapsible-else-if (PLR5501) (#4045)

* style: Fix collapsible-else-if (PLR5501)

Ruff rule: https://docs.astral.sh/ruff/rules/collapsible-else-if/

* style: Fix collapsible-else-if (PLR5501)

Ruff rule: https://docs.astral.sh/ruff/rules/collapsible-else-if/

* style: Fix collapsible-else-if (PLR5501)

Ruff rule: https://docs.astral.sh/ruff/rules/collapsible-else-if/

* Apply suggestions from code review

Co-authored-by: Stefan Blumentrath <stefan.blumentrath at gmx.de>

* style: Combine if conditions in wxpython/gmodeler/model.py

* style: Simplify if conditions in wxpython/gui_core

---------

Co-authored-by: Stefan Blumentrath <stefan.blumentrath at gmx.de>


  Commit: 972bd32a23156f3255025a1ed6d42c9e563960b8
      https://github.com/OSGeo/grass/commit/972bd32a23156f3255025a1ed6d42c9e563960b8
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M .github/workflows/create_release_draft.yml

  Log Message:
  -----------
  CI(deps): Update softprops/action-gh-release action to v2.0.7 (#4066)


  Commit: 0c3fdede72664037fcfc8d3f21daa90d36b1417c
      https://github.com/OSGeo/grass/commit/0c3fdede72664037fcfc8d3f21daa90d36b1417c
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M raster/r.coin/print_coin.c
    M raster/r.mapcalc/map3.c
    M raster/r.object.geometry/main.c
    M raster/r.out.mpeg/main.c
    M raster/r.sim/simlib/random.c
    M raster/r.spreadpath/path_finder.c
    M raster/r.statistics/o_kurt.c
    M raster/r.statistics/o_sdev.c
    M raster/r.statistics/o_skew.c

  Log Message:
  -----------
  raster: Fix uninitialized variable issue for C raster modules (#4065)

raster: Fix uninitialized variable issue for c files in raster


  Commit: 6fb030f8d8aa15642344a6acfded9fe903454e33
      https://github.com/OSGeo/grass/commit/6fb030f8d8aa15642344a6acfded9fe903454e33
  Author: Paulo van Breugel <paulo at ecodiv.earth>
  Date:   2024-07-17 (Wed, 17 Jul 2024)

  Changed paths:
    M raster/r.li/r.li.html

  Log Message:
  -----------
  r.li manual: Update reference to fragstat paper (#4001)


  Commit: daa3b61895acdd552bddfc773e8dd2160c16d12f
      https://github.com/OSGeo/grass/commit/daa3b61895acdd552bddfc773e8dd2160c16d12f
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/wxplot/histogram.py
    M gui/wxpython/wxplot/profile.py

  Log Message:
  -----------
  CI(deps): Update ruff to v0.5.3 (#4073)

* CI(deps): Update ruff to v0.5.3

* Apply ruff fixes

* Apply black

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>


  Commit: a35956fbc44248bb8be873940ec6e6fbb5c41929
      https://github.com/OSGeo/grass/commit/a35956fbc44248bb8be873940ec6e6fbb5c41929
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-18 (Thu, 18 Jul 2024)

  Changed paths:
    M .github/workflows/create_release_draft.yml

  Log Message:
  -----------
  CI(deps): Update softprops/action-gh-release action to v2.0.8 (#4074)


  Commit: 7840f76ae21f339ca227f2202a3a261da6f39cc9
      https://github.com/OSGeo/grass/commit/7840f76ae21f339ca227f2202a3a261da6f39cc9
  Author: Stefan Blumentrath <stefan.blumentrath at gmx.de>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M python/grass/temporal/abstract_space_time_dataset.py
    M temporal/t.rast.neighbors/t.rast.neighbors.html
    M temporal/t.rast.neighbors/t.rast.neighbors.py
    M temporal/t.rast.neighbors/testsuite/test_neighbors.py

  Log Message:
  -----------
  t.rast.neighbors: support all r.neighbors features and allow to append to existing STRDS as well as filtering by region (#3798)

* propagate r.neighbors options

* reactivate and extend tests

* allow to extend existing STRDS

* allow spatial selection by computational region


---------

Co-authored-by: Veronica Andreo <veroandreo at gmail.com>


  Commit: 456546a4806e9e2b26af91d97b82ca3299d23498
      https://github.com/OSGeo/grass/commit/456546a4806e9e2b26af91d97b82ca3299d23498
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.25.13 (#4075)


  Commit: c1f55e303d175a8ad02d39cf24076d7a96026ce2
      https://github.com/OSGeo/grass/commit/c1f55e303d175a8ad02d39cf24076d7a96026ce2
  Author: Kriti Birda <164247895+kritibirda26 at users.noreply.github.com>
  Date:   2024-07-19 (Fri, 19 Jul 2024)

  Changed paths:
    M raster/r.category/Makefile
    M raster/r.category/local_proto.h
    M raster/r.category/main.c
    M raster/r.category/r.category.html
    M raster/r.category/test_rcategory_doctest.txt

  Log Message:
  -----------
  r.category: add JSON support (#4018)

* r.category: add JSON support

* add test and docs

* address PR feedback


  Commit: c223cd02be7f348374122f616a1d2c96cb51083d
      https://github.com/OSGeo/grass/commit/c223cd02be7f348374122f616a1d2c96cb51083d
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-20 (Sat, 20 Jul 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml

  Log Message:
  -----------
  CI(deps): Update ruff to v0.5.4 (#4078)


  Commit: fdf087c9fecf7c5ba30a268457587281acf3954b
      https://github.com/OSGeo/grass/commit/fdf087c9fecf7c5ba30a268457587281acf3954b
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-21 (Sun, 21 Jul 2024)

  Changed paths:
    A .coveragerc
    M .github/workflows/pytest.yml
    M .gitignore
    A utils/coverage_mapper.py

  Log Message:
  -----------
  pytest: Collect all uncovered Python files in code coverage (#4077)

* Create .coveragerc config file to keep options when using subprocess

* Create coverage_mapper.py to fix non-standard installation paths of scripts

* pytest: Upload artifact of HTML code coverage report containing test context

* pytest: Fix non-standard installed scripts paths in coverage data

* Update .gitignore


  Commit: 1f6fa6c62e7d53f6daa980098735f73f9e3e16b8
      https://github.com/OSGeo/grass/commit/1f6fa6c62e7d53f6daa980098735f73f9e3e16b8
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-21 (Sun, 21 Jul 2024)

  Changed paths:
    M gui/wxpython/animation/nviztask.py
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/treemodel.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gui_core/vselect.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/iscatt/plots.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/mapdisp/gprint.py
    M gui/wxpython/mapdisp/statusbar.py
    M gui/wxpython/mapswipe/dialogs.py
    M gui/wxpython/mapwin/decorations.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/rlisetup/functions.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/vnet/vnet_data.py
    M gui/wxpython/vnet/widgets.py
    M gui/wxpython/web_services/cap_interface.py
    M gui/wxpython/web_services/widgets.py
    M lib/init/grass.py
    M man/build_class_graphical.py
    M man/build_manual_gallery.py
    M pyproject.toml
    M python/grass/app/data.py
    M python/grass/grassdb/checks.py
    M python/grass/grassdb/data.py
    M python/grass/gunittest/checkers.py
    M python/grass/gunittest/gutils.py
    M python/grass/pygrass/utils.py
    M python/grass/script/core.py
    M python/grass/temporal/abstract_dataset.py
    M python/grass/temporal/base.py
    M python/grass/temporal/spatial_extent.py
    M python/grass/temporal/temporal_extent.py
    M python/grass/temporal/temporal_granularity.py
    M scripts/g.search.modules/g.search.modules.py
    M scripts/r.in.wms/wms_cap_parsers.py
    M scripts/r.in.wms/wms_drv.py
    M scripts/r.tileset/r.tileset.py

  Log Message:
  -----------
  style: Fix needless-bool (SIM103) (#4055)

* style: Fix needless-bool (SIM103)

Return the condition directly
Ruff rule: https://docs.astral.sh/ruff/rules/needless-bool/

Added bool return type annotations when possible to confirm no other type was possible on changed functions

* Update frame.py

* Apply suggestions from code review

Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>

* style: Merge more if conditions per review

---------

Co-authored-by: Stefan Blumentrath <stefan.blumentrath at gmx.de>


  Commit: 7b564ce3a412799ce194d887c4c2c534b3f85072
      https://github.com/OSGeo/grass/commit/7b564ce3a412799ce194d887c4c2c534b3f85072
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-22 (Mon, 22 Jul 2024)

  Changed paths:

  Log Message:
  -----------
  CI(deps): Lock file maintenance (#4080)


  Commit: 4c672cb1bfdb2aeecc04830e7e39b2e19a838572
      https://github.com/OSGeo/grass/commit/4c672cb1bfdb2aeecc04830e7e39b2e19a838572
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-22 (Mon, 22 Jul 2024)

  Changed paths:

  Log Message:
  -----------
  CI(deps): Lock file maintenance (#4081)


  Commit: 1dee2d65c3a5984f72538ebf5afde8a079b736d1
      https://github.com/OSGeo/grass/commit/1dee2d65c3a5984f72538ebf5afde8a079b736d1
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-22 (Mon, 22 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/build-push-action action to v6.5.0 (#4082)


  Commit: 660bdc68355cd9dcb0372dbabba337ada502a60b
      https://github.com/OSGeo/grass/commit/660bdc68355cd9dcb0372dbabba337ada502a60b
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-22 (Mon, 22 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/login-action action to v3.3.0 (#4083)


  Commit: eaae0d329b0a8a38db16b19003b5afda5c47ffe4
      https://github.com/OSGeo/grass/commit/eaae0d329b0a8a38db16b19003b5afda5c47ffe4
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-22 (Mon, 22 Jul 2024)

  Changed paths:
    M .github/workflows/test-nix.yml

  Log Message:
  -----------
  CI(deps): Update DeterminateSystems/nix-installer-action action to v13 (#4086)


  Commit: 36cc5b219e31cf1333b2e3878bdfcaf62b8fda79
      https://github.com/OSGeo/grass/commit/36cc5b219e31cf1333b2e3878bdfcaf62b8fda79
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M docker/alpine/Dockerfile

  Log Message:
  -----------
  CI(deps): Update alpine:3.20 Docker digest to 0a4eaa0 (#4089)


  Commit: 7f2b7bd9fbcd496579a97cfe41f5728ba2c1d20c
      https://github.com/OSGeo/grass/commit/7f2b7bd9fbcd496579a97cfe41f5728ba2c1d20c
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/setup-buildx-action action to v3.5.0 (#4084)


  Commit: d7b13e0a63612cb98d3205eacde3acc922954533
      https://github.com/OSGeo/grass/commit/d7b13e0a63612cb98d3205eacde3acc922954533
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-23 (Tue, 23 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/setup-qemu-action action to v3.2.0 (#4085)


  Commit: 0306f9333d0ce45e32ee970af569e876c99918aa
      https://github.com/OSGeo/grass/commit/0306f9333d0ce45e32ee970af569e876c99918aa
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-24 (Wed, 24 Jul 2024)

  Changed paths:
    M python/grass/gunittest/reporters.py
    M python/grass/gunittest/utils.py

  Log Message:
  -----------
  tests: Add .gitignore to gunittest testreport folder if not present (#4092)

gunittest: Add .gitignore to testreport folder if not present

Co-authored-by: Edouard Choinière <echoix at users.noreply.github.com>


  Commit: 06455101f616c037a1e2e913e548eb56bd2d31ef
      https://github.com/OSGeo/grass/commit/06455101f616c037a1e2e913e548eb56bd2d31ef
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-25 (Thu, 25 Jul 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.25.14 (#4102)


  Commit: b082d422ef215c21a0fcdaf3a0a5b38cc7c51ea1
      https://github.com/OSGeo/grass/commit/b082d422ef215c21a0fcdaf3a0a5b38cc7c51ea1
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-25 (Thu, 25 Jul 2024)

  Changed paths:
    M .coveragerc
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml

  Log Message:
  -----------
  CI(deps): Update ruff to v0.5.5 (#4103)

* CI(deps): Update ruff to v0.5.5

* Remove trailing whitespace in .coveragerc

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>


  Commit: cd0687fb7904e507ecb28d9d250e50afe3dc89f1
      https://github.com/OSGeo/grass/commit/cd0687fb7904e507ecb28d9d250e50afe3dc89f1
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-07-26 (Fri, 26 Jul 2024)

  Changed paths:
    M display/d.labels/do_labels.c

  Log Message:
  -----------
  d.labels: Fix buffer overflow issues (#4041)

Addresses multiple warnings identified by cppcheck related to
potential buffer overflow issues. Added field width specifiers
to the sscanf calls to prevent buffer overflows.


  Commit: e386819091cd710821acc53c106d7bce8e821e5a
      https://github.com/OSGeo/grass/commit/e386819091cd710821acc53c106d7bce8e821e5a
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-26 (Fri, 26 Jul 2024)

  Changed paths:
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update github/codeql-action action to v3.25.15 (#4107)


  Commit: 3aa7d1e1f93c8b710ed87f0f1e4e82d49c78403d
      https://github.com/OSGeo/grass/commit/3aa7d1e1f93c8b710ed87f0f1e4e82d49c78403d
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:

  Log Message:
  -----------
  CI(deps): Lock file maintenance (#4109)


  Commit: 84db88a9d2b7e05fdb5472b118986ece263b6615
      https://github.com/OSGeo/grass/commit/84db88a9d2b7e05fdb5472b118986ece263b6615
  Author: Loïc Bartoletti <lbartoletti at users.noreply.github.com>
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:
    M configure
    M configure.ac
    M include/grass/config.h.in
    M include/grass/defs/gis.h
    A lib/gis/strlcpy.c

  Log Message:
  -----------
  lib/gis: Add portable G_strlcpy function (#4101)

This commit introduces a new G_strlcpy function in lib/gis, inspired by
G_asprintf. G_strlcpy provides a safer alternative to strcpy and strncpy,
with consistent behavior across different systems.

Key points:
- Implements strlcpy functionality, available natively on BSD systems
- Portable implementation for non-BSD systems (excluding Linux with libbsd)
- Based on FreeBSD's implementation:
  https://github.com/freebsd/freebsd-src/blob/98dd639c94f716858ae29958f484729b1d2fd387/sys/libkern/strlcpy.c#L28
- Designed to replace unsafe uses of strcpy and strncpy throughout the project

The function is implemented to use the native strlcpy where available,
falling back to our portable version on systems without it. This ensures
optimal performance on BSD systems while maintaining compatibility across
different platforms.

By providing G_strlcpy, we aim to improve the overall safety and
consistency of string operations in our codebase.


  Commit: 127ec9a1b03793777026332188782816a8d0c6c8
      https://github.com/OSGeo/grass/commit/127ec9a1b03793777026332188782816a8d0c6c8
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:
    M .github/workflows/docker.yml

  Log Message:
  -----------
  CI(deps): Update docker/setup-buildx-action action to v3.6.1 (#4110)


  Commit: 0983373d840b2c0fdbc3b0c70cee8d9e1caba2b1
      https://github.com/OSGeo/grass/commit/0983373d840b2c0fdbc3b0c70cee8d9e1caba2b1
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-29 (Mon, 29 Jul 2024)

  Changed paths:
    M .github/workflows/osgeo4w.yml

  Log Message:
  -----------
  CI(deps): Update msys2/setup-msys2 action to v2.24.0 (#4108)


  Commit: e56c7cddd7a23b612cd491592c4ac355ca1bac61
      https://github.com/OSGeo/grass/commit/e56c7cddd7a23b612cd491592c4ac355ca1bac61
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M gui/wxpython/gui_core/toolbars.py

  Log Message:
  -----------
  gui: fix broken if-else statement in EnableLongHelp() (#4106)

Fixes a regression introduced by
https://github.com/OSGeo/grass/commit/f99780c11f8d4d1633e469fb32da2b6c75852b4f

Closes #4091


  Commit: 75a4c53242f5cfbc138acde0cece37f638b2b0d7
      https://github.com/OSGeo/grass/commit/75a4c53242f5cfbc138acde0cece37f638b2b0d7
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(ruff): Show ruff annotations even for fixes (#4111)

* CI(ruff): Show ruff annotations even for fixes

* CI(ruff): Use default output format when fixing


  Commit: 50c8ea41c9ede0c3e825047a5e8869f14b2317a7
      https://github.com/OSGeo/grass/commit/50c8ea41c9ede0c3e825047a5e8869f14b2317a7
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    M .github/workflows/super-linter.yml

  Log Message:
  -----------
  CI(deps): Update super-linter/super-linter action to v6.8.0 (#4119)


  Commit: 78490a200aa77d6a109242f6b3e1a9c8bb5f56f6
      https://github.com/OSGeo/grass/commit/78490a200aa77d6a109242f6b3e1a9c8bb5f56f6
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    M lib/vector/Vlib/buffer2.c

  Log Message:
  -----------
  lib/vector: fix always true if-condition in Vect_point_buffer2() (#4115)

The true if-statement only handles buffers with rounded corners.
E.g. using `v.buffer` without `-s` on points. GEOS handles buffers
with corners.


  Commit: afc607996350d6a74b84104d8f51aa98690bc028
      https://github.com/OSGeo/grass/commit/afc607996350d6a74b84104d8f51aa98690bc028
  Author: Riya Saxena <77328768+29riyasaxena at users.noreply.github.com>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    M python/grass/jupyter/interactivemap.py
    M python/grass/jupyter/testsuite/interactivemap_test.py
    M python/grass/jupyter/utils.py

  Log Message:
  -----------
  grass.jupyter: Allow Users to view/update computational region (#3838)

This pull request introduces a new feature to grass.jupyter.interactivemap.py: a "View/Update Computational Region" button that allows users to update the computational region by adjusting its boundaries interactively. Users can move the rectangle representing the current computation region and adjust its size by changing its vertex.

---------

Co-authored-by: Anna Petrasova <kratochanna at gmail.com>


  Commit: 13091fbc2591534621d7088544c4ec11934c0085
      https://github.com/OSGeo/grass/commit/13091fbc2591534621d7088544c4ec11934c0085
  Author: Luís de Sousa <luis.de.sousa at protonmail.ch>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    A vector/v.out.ogr/testsuite/test_v_out_ogr.py

  Log Message:
  -----------
  v.out.ogr: Add basic unit tests (#3848)

Add basic tests for GeoPackage and Shapefile export which use import to test the result (so they test round trip but focus on the export).


  Commit: c88fc0f73cb1d3f9266b5469831a1d6822b3130e
      https://github.com/OSGeo/grass/commit/c88fc0f73cb1d3f9266b5469831a1d6822b3130e
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    M python/grass/pydispatch/PKG-INFO
    M python/grass/pydispatch/__init__.py
    M python/grass/pydispatch/dispatcher.py
    M python/grass/pydispatch/robustapply.py
    M python/grass/pydispatch/saferef.py

  Log Message:
  -----------
  grass.pydispatch: Apply code changes from upstream pydispatcher repo (#4033)

python(pydispatch): Apply code changes from upstream pydispatcher repo

Manual combination of latest changes of repo https://github.com/mcfletch/pydispatcher


  Commit: 17474a9194498560606df0552f473bf586311fce
      https://github.com/OSGeo/grass/commit/17474a9194498560606df0552f473bf586311fce
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M raster3d/r3.in.v5d/v5d.c

  Log Message:
  -----------
  r3.in.v5d: Remove unused variables (#4114)


  Commit: e671a4322778af043684130680c553bbe98d14cc
      https://github.com/OSGeo/grass/commit/e671a4322778af043684130680c553bbe98d14cc
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M imagery/i.ortho.photo/i.ortho.photo/menu.c

  Log Message:
  -----------
  i.ortho.photo: Fix uninitialized variable and potential buffer overflow (#4093)


  Commit: 6dbd5d1ef8427d795a7c80a41d8a066315d6476a
      https://github.com/OSGeo/grass/commit/6dbd5d1ef8427d795a7c80a41d8a066315d6476a
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M raster/r.out.mpeg/main.c

  Log Message:
  -----------
  r.out.mpeg: Fix buffer overflow issues by replacing sprintf with snprintf  (#4098)


  Commit: 9cebe70d7893d987c8a5aa3f05099d0688800422
      https://github.com/OSGeo/grass/commit/9cebe70d7893d987c8a5aa3f05099d0688800422
  Author: ShubhamDesai <42180509+ShubhamDesai at users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M raster/r.path/main.c

  Log Message:
  -----------
  r.path: Fix buffer overflow check issue (#4087)


  Commit: 85498f4189602a3ba292d7573a774760157c76d2
      https://github.com/OSGeo/grass/commit/85498f4189602a3ba292d7573a774760157c76d2
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M include/grass/defs/vector.h
    M lib/vector/Vlib/geos_to_wktb.c

  Log Message:
  -----------
  lib/vector: new functions for setting trim of GEOS WKT output (#4123)

GEOS 3.12 switched the default setting of the trim option to true.
To enable consistent behaviour to Vect_read_area_to_wkt() and
Vect_line_to_wkt() across GEOS versions, they now call new
2nd generation functions, which set this trim option explicitly
to false.


  Commit: 0c8b6deff363fac2b79cd7289f8ef9879952f744
      https://github.com/OSGeo/grass/commit/0c8b6deff363fac2b79cd7289f8ef9879952f744
  Author: Ivan Mincik <ivan.mincik at gmail.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M gui/wxpython/core/utils.py
    M lib/gis/home.c
    M lib/init/grass.py
    M lib/init/variables.html
    M python/grass/app/runtime.py
    M scripts/g.extension/g.extension.py

  Log Message:
  -----------
  lib/init: add GRASS_CONFIG_DIR environment variable (#3899)

- update grass.py to use grass.app.runtime.get_grass_config_dir()
- update wxpython's core.utils.GetSettingsPath() to use grass.app.runtime.get_grass_config_dir()
- update g.extension
- update G_config_path() [libgis]

---------

Co-authored-by: Martin Landa <landa.martin at gmail.com>
Co-authored-by: Nicklas Larsson <n_larsson at yahoo.com>


  Commit: ae2281e8cd16a4e69ca86f1b9ff1835e4888ef13
      https://github.com/OSGeo/grass/commit/ae2281e8cd16a4e69ca86f1b9ff1835e4888ef13
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M .github/actions/create-upload-suggestions/action.yml
    M .github/workflows/macos.yml
    M .github/workflows/osgeo4w.yml
    M .github/workflows/pytest.yml
    M .github/workflows/python-code-quality.yml
    M .github/workflows/ubuntu.yml

  Log Message:
  -----------
  CI(deps): Update actions/upload-artifact action to v4.3.5 (#4125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>


  Commit: a342ea888d2016d90eb615389d827bdca5c4ea33
      https://github.com/OSGeo/grass/commit/a342ea888d2016d90eb615389d827bdca5c4ea33
  Author: Nicklas Larsson <n_larsson at yahoo.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M .github/workflows/macos_dependencies.txt

  Log Message:
  -----------
  CI: update macOS runner dependencies (#4120)


  Commit: cbc8fd564344d4a06b8c1da32dc63b7bb887a9dc
      https://github.com/OSGeo/grass/commit/cbc8fd564344d4a06b8c1da32dc63b7bb887a9dc
  Author: Makiko Shukunobe <mshukuno at users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M python/grass/pygrass/raster/rowio.py

  Log Message:
  -----------
  grass.pygrass: remove unused arg in ctypes.CFUNCTYPE (#4113)

Co-authored-by: Anna Petrasova <kratochanna at gmail.com>


  Commit: 7f176956c67a60fb282738b9a674feeea2f34c8b
      https://github.com/OSGeo/grass/commit/7f176956c67a60fb282738b9a674feeea2f34c8b
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-08-02 (Fri, 02 Aug 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml

  Log Message:
  -----------
  CI(deps): Update dependency black to v24.8.0 (#4128)


  Commit: a99009100bf711a168d2f953484de00863a7d1d8
      https://github.com/OSGeo/grass/commit/a99009100bf711a168d2f953484de00863a7d1d8
  Author: Edouard Choinière <27212526+echoix at users.noreply.github.com>
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
    M gui/wxpython/animation/frame.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/menu.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/vdigit/g.gui.vdigit.py
    M pyproject.toml

  Log Message:
  -----------
  style: Revert "style: Fixes some unnecessary-lambda (PLW0108) (#3956)" (#4127)

* Revert "style: Fixes some unnecessary-lambda (PLW0108) (#3956)"

This reverts commit 0cc7cbf610e889075b8f465eecb0f319737b7456.

* ruff: Ignore unnecessary-lambda (PLW0108) in gui


  Commit: 31b2becaff83d145ee5b3dcda98621021cbbea37
      https://github.com/OSGeo/grass/commit/31b2becaff83d145ee5b3dcda98621021cbbea37
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-08-03 (Sat, 03 Aug 2024)

  Changed paths:
    M .github/workflows/python-code-quality.yml
    M .pre-commit-config.yaml
    M gui/wxpython/gui_core/query.py
    M gui/wxpython/gui_core/simplelmgr.py
    M pyproject.toml

  Log Message:
  -----------
  CI(deps): Update ruff to v0.5.6 (#4126)

* CI(deps): Update ruff to v0.5.6

* Ignore 6 new issues of shadowing builtins

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Edouard Choinière <27212526+echoix at users.noreply.github.com>


  Commit: 6a3da775ab7f7feeab9a3ede6f8e35a18aa18d0e
      https://github.com/OSGeo/grass/commit/6a3da775ab7f7feeab9a3ede6f8e35a18aa18d0e
  Author: Martin Landa <landa.martin at gmail.com>
  Date:   2024-08-04 (Sun, 04 Aug 2024)

  Changed paths:
    M docker/alpine/Dockerfile

  Log Message:
  -----------
  docker: define GISBASE for Alpine (#4130)


  Commit: c53c938bac385a141670cf83d2511b17c5ce4baf
      https://github.com/OSGeo/grass/commit/c53c938bac385a141670cf83d2511b17c5ce4baf
  Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  Date:   2024-08-04 (Sun, 04 Aug 2024)

  Changed paths:
    M .github/workflows/osgeo4w.yml

  Log Message:
  -----------
  CI(deps): Update msys2/setup-msys2 action to v2.24.1 (#4129)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>


  Commit: 3063277e63c0d22390080e2eb51eb80a0dfc2250
      https://github.com/OSGeo/grass/commit/3063277e63c0d22390080e2eb51eb80a0dfc2250
  Author: Martin Landa <landa.martin at gmail.com>
  Date:   2024-08-04 (Sun, 04 Aug 2024)

  Changed paths:
    A .coveragerc
    M .flake8
    M .github/actions/create-upload-suggestions/action.yml
    M .github/workflows/additional_checks.yml
    M .github/workflows/clang-format-check.yml
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/create_release_draft.yml
    M .github/workflows/docker.yml
    M .github/workflows/label.yml
    M .github/workflows/macos.yml
    M .github/workflows/macos_dependencies.txt
    M .github/workflows/osgeo4w.yml
    M .github/workflows/post-pr-reviews.yml
    M .github/workflows/pytest.yml
    M .github/workflows/python-code-quality.yml
    M .github/workflows/super-linter.yml
    A .github/workflows/test-nix.yml
    M .github/workflows/titles.yml
    M .github/workflows/ubuntu.yml
    M .gitignore
    M .markdownlint.yml
    M .pre-commit-config.yaml
    M .travis.yml
    M Dockerfile
    M Makefile
    A codecov.yml
    M configure
    M configure.ac
    M display/d.histogram/bar.c
    M display/d.labels/do_labels.c
    M display/d.labels/main.c
    M display/d.legend.vect/draw.c
    M display/d.linegraph/main.c
    M display/d.mon/render_cmd.py
    M display/d.text/test.py
    A doc/NIX.md
    M docker/alpine/Dockerfile
    M docker/debian/Dockerfile
    M docker/ubuntu/Dockerfile
    M docker/ubuntu_wxgui/Dockerfile
    M flake.lock
    M flake.nix
    M general/g.region/printwindow.c
    M gui/wxpython/Makefile
    R gui/wxpython/README
    A gui/wxpython/README.md
    M gui/wxpython/animation/anim.py
    M gui/wxpython/animation/controller.py
    M gui/wxpython/animation/data.py
    M gui/wxpython/animation/dialogs.py
    M gui/wxpython/animation/frame.py
    M gui/wxpython/animation/g.gui.animation.py
    M gui/wxpython/animation/nviztask.py
    M gui/wxpython/animation/provider.py
    M gui/wxpython/animation/temporal_manager.py
    M gui/wxpython/animation/utils.py
    M gui/wxpython/core/debug.py
    M gui/wxpython/core/gcmd.py
    M gui/wxpython/core/gconsole.py
    M gui/wxpython/core/giface.py
    M gui/wxpython/core/globalvar.py
    M gui/wxpython/core/menutree.py
    M gui/wxpython/core/render.py
    M gui/wxpython/core/settings.py
    M gui/wxpython/core/toolboxes.py
    M gui/wxpython/core/treemodel.py
    M gui/wxpython/core/units.py
    M gui/wxpython/core/utils.py
    M gui/wxpython/core/watchdog.py
    M gui/wxpython/core/workspace.py
    M gui/wxpython/core/ws.py
    M gui/wxpython/datacatalog/catalog.py
    M gui/wxpython/datacatalog/dialogs.py
    M gui/wxpython/datacatalog/g.gui.datacatalog.py
    M gui/wxpython/datacatalog/tree.py
    M gui/wxpython/dbmgr/base.py
    M gui/wxpython/dbmgr/dialogs.py
    M gui/wxpython/dbmgr/g.gui.dbmgr.py
    M gui/wxpython/dbmgr/sqlbuilder.py
    M gui/wxpython/dbmgr/vinfo.py
    M gui/wxpython/gcp/g.gui.gcp.py
    M gui/wxpython/gcp/manager.py
    M gui/wxpython/gcp/mapdisplay.py
    M gui/wxpython/gcp/statusbar.py
    M gui/wxpython/gmodeler/canvas.py
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gmodeler/g.gui.gmodeler.py
    M gui/wxpython/gmodeler/model.py
    M gui/wxpython/gmodeler/panels.py
    M gui/wxpython/gui_core/dialogs.py
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/ghelp.py
    M gui/wxpython/gui_core/goutput.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/gui_core/mapdisp.py
    M gui/wxpython/gui_core/menu.py
    M gui/wxpython/gui_core/preferences.py
    M gui/wxpython/gui_core/prompt.py
    M gui/wxpython/gui_core/pyedit.py
    M gui/wxpython/gui_core/pystc.py
    M gui/wxpython/gui_core/query.py
    M gui/wxpython/gui_core/simplelmgr.py
    M gui/wxpython/gui_core/toolbars.py
    M gui/wxpython/gui_core/treeview.py
    M gui/wxpython/gui_core/vselect.py
    M gui/wxpython/gui_core/widgets.py
    M gui/wxpython/gui_core/wrap.py
    M gui/wxpython/history/browser.py
    M gui/wxpython/history/tree.py
    M gui/wxpython/iclass/dialogs.py
    M gui/wxpython/iclass/digit.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/iclass/g.gui.iclass.py
    M gui/wxpython/iclass/plots.py
    M gui/wxpython/iclass/statistics.py
    M gui/wxpython/iclass/toolbars.py
    M gui/wxpython/icons/grass_icons.py
    M gui/wxpython/icons/icon.py
    M gui/wxpython/image2target/g.gui.image2target.py
    M gui/wxpython/image2target/ii2t_gis_set.py
    M gui/wxpython/image2target/ii2t_manager.py
    M gui/wxpython/image2target/ii2t_mapdisplay.py
    M gui/wxpython/image2target/ii2t_statusbar.py
    M gui/wxpython/iscatt/controllers.py
    M gui/wxpython/iscatt/core_c.py
    M gui/wxpython/iscatt/dialogs.py
    M gui/wxpython/iscatt/frame.py
    M gui/wxpython/iscatt/iscatt_core.py
    M gui/wxpython/iscatt/plots.py
    M gui/wxpython/iscatt/toolbars.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/giface.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/lmgr/pyshell.py
    M gui/wxpython/lmgr/statusbar.py
    M gui/wxpython/lmgr/workspace.py
    M gui/wxpython/location_wizard/dialogs.py
    M gui/wxpython/location_wizard/wizard.py
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/main_window/notebook.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/gprint.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapdisp/statusbar.py
    M gui/wxpython/mapdisp/test_mapdisp.py
    M gui/wxpython/mapswipe/dialogs.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/mapswipe/g.gui.mapswipe.py
    M gui/wxpython/mapwin/analysis.py
    M gui/wxpython/mapwin/base.py
    M gui/wxpython/mapwin/buffered.py
    M gui/wxpython/mapwin/decorations.py
    M gui/wxpython/modules/colorrules.py
    M gui/wxpython/modules/extensions.py
    M gui/wxpython/modules/histogram.py
    M gui/wxpython/modules/import_export.py
    M gui/wxpython/modules/mcalc_builder.py
    M gui/wxpython/nviz/mapwindow.py
    M gui/wxpython/nviz/preferences.py
    M gui/wxpython/nviz/tools.py
    M gui/wxpython/nviz/workspace.py
    M gui/wxpython/nviz/wxnviz.py
    M gui/wxpython/photo2image/g.gui.photo2image.py
    M gui/wxpython/photo2image/ip2i_manager.py
    M gui/wxpython/photo2image/ip2i_mapdisplay.py
    M gui/wxpython/photo2image/ip2i_statusbar.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/frame.py
    M gui/wxpython/psmap/g.gui.psmap.py
    M gui/wxpython/psmap/instructions.py
    M gui/wxpython/psmap/utils.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/rlisetup/frame.py
    M gui/wxpython/rlisetup/functions.py
    M gui/wxpython/rlisetup/g.gui.rlisetup.py
    M gui/wxpython/rlisetup/sampling_frame.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/startup/guiutils.py
    M gui/wxpython/startup/locdownload.py
    M gui/wxpython/timeline/frame.py
    M gui/wxpython/timeline/g.gui.timeline.py
    M gui/wxpython/tools/build_modules_xml.py
    M gui/wxpython/tools/update_menudata.py
    M gui/wxpython/tplot/frame.py
    M gui/wxpython/tplot/g.gui.tplot.py
    M gui/wxpython/vdigit/g.gui.vdigit.py
    M gui/wxpython/vdigit/mapwindow.py
    M gui/wxpython/vdigit/preferences.py
    M gui/wxpython/vdigit/toolbars.py
    M gui/wxpython/vdigit/wxdigit.py
    M gui/wxpython/vdigit/wxdisplay.py
    M gui/wxpython/vnet/dialogs.py
    M gui/wxpython/vnet/vnet_core.py
    M gui/wxpython/vnet/vnet_data.py
    M gui/wxpython/vnet/widgets.py
    M gui/wxpython/web_services/cap_interface.py
    M gui/wxpython/web_services/dialogs.py
    M gui/wxpython/web_services/widgets.py
    M gui/wxpython/wxgui.py
    M gui/wxpython/wxplot/base.py
    M gui/wxpython/wxplot/dialogs.py
    M gui/wxpython/wxplot/histogram.py
    M gui/wxpython/wxplot/profile.py
    M gui/wxpython/wxplot/scatter.py
    M imagery/i.atcorr/create_iwave.py
    M imagery/i.atcorr/main.cpp
    M imagery/i.eb.netrad/r_net.c
    M imagery/i.fft/main.c
    M imagery/i.ifft/main.c
    M imagery/i.landsat.acca/main.c
    M imagery/i.maxlik/invert.c
    M imagery/i.ortho.photo/i.ortho.photo/menu.c
    M imagery/i.segment/flag.h
    M imagery/i.segment/mean_shift.c
    M imagery/i.segment/region_growing.c
    M include/grass/config.h.in
    M include/grass/defs/gis.h
    M include/grass/defs/vector.h
    M include/grass/gprojects.h
    M lib/bitmap/bitmap.c
    M lib/bitmap/sparse.c
    M lib/cdhc/dmax.c
    M lib/cdhc/shapiroe.c
    M lib/external/parson/parson.c
    M lib/gis/home.c
    M lib/gis/lrand48.c
    M lib/gis/lz4.c
    M lib/gis/parser_interface.c
    M lib/gis/pi.h
    M lib/gis/sleep.c
    A lib/gis/strlcpy.c
    M lib/gis/testsuite/gis_lib_str_color.py
    M lib/gmath/solvers_direct.c
    M lib/gpde/test/test_arrays.c
    M lib/imagery/testsuite/test_imagery_signature_management.py
    M lib/init/grass.py
    M lib/init/variables.html
    M lib/ogsf/gs2.c
    M lib/ogsf/gsget.h
    M lib/ogsf/rgbpack.h
    M lib/ogsf/rowcol.h
    M lib/raster/get_row.c
    M lib/raster/testsuite/rast_parse_color_rule.py
    M lib/rst/interp_float/interpf.h
    M lib/rst/interp_float/point2d.c
    A lib/rst/interp_float/point2d_parallel.c
    M lib/rst/interp_float/ressegm2d.c
    M lib/rst/interp_float/segmen2d.c
    M lib/rst/interp_float/segmen2d_parallel.c
    M lib/vector/Vlib/buffer2.c
    M lib/vector/Vlib/geos_to_wktb.c
    M lib/vector/Vlib/intersect2.c
    M lib/vector/dglib/graph_v1.h
    M lib/vector/diglib/prune.c
    M lib/vector/neta/articulation_point.c
    M lib/vector/neta/timetables.c
    M lib/vector/neta/utils.c
    M lib/vector/vedit/break.c
    M lib/vector/vedit/delete.c
    M lib/vector/vedit/merge.c
    M lib/vector/vedit/render.c
    M lib/vector/vedit/snap.c
    M lib/vector/vedit/vertex.c
    M lib/vector/vedit/zbulk.c
    M locale/grass_po_stats.py
    M man/build_class_graphical.py
    M man/build_class_rest.py
    M man/build_html.py
    M man/build_keywords.py
    M man/build_manual_gallery.py
    M man/build_rest.py
    M man/build_topics.py
    M man/parser_standard_options.py
    M misc/m.cogo/main.c
    M mswindows/env.bat
    M package.nix
    M ps/ps.map/r_colortable.c
    M pyproject.toml
    M python/grass/app/Makefile
    M python/grass/app/data.py
    A python/grass/app/runtime.py
    M python/grass/benchmark/plots.py
    M python/grass/benchmark/results.py
    M python/grass/benchmark/runners.py
    M python/grass/benchmark/testsuite/test_benchmark.py
    M python/grass/experimental/tests/conftest.py
    M python/grass/experimental/tests/grass_script_mapset_session_test.py
    M python/grass/experimental/tests/grass_script_tmp_mapset_session_test.py
    M python/grass/grassdb/checks.py
    M python/grass/grassdb/data.py
    M python/grass/grassdb/history.py
    M python/grass/grassdb/manage.py
    M python/grass/gunittest/case.py
    M python/grass/gunittest/checkers.py
    M python/grass/gunittest/gmodules.py
    M python/grass/gunittest/gutils.py
    M python/grass/gunittest/invoker.py
    M python/grass/gunittest/main.py
    M python/grass/gunittest/multireport.py
    M python/grass/gunittest/reporters.py
    M python/grass/gunittest/runner.py
    M python/grass/gunittest/testsuite/test_assertions.py
    M python/grass/gunittest/testsuite/test_assertions_rast3d.py
    M python/grass/gunittest/testsuite/test_assertions_vect.py
    M python/grass/gunittest/utils.py
    M python/grass/imaging/images2avi.py
    M python/grass/imaging/images2gif.py
    M python/grass/imaging/images2swf.py
    M python/grass/imaging/operations.py
    M python/grass/jupyter/baseseriesmap.py
    M python/grass/jupyter/interactivemap.py
    M python/grass/jupyter/map3d.py
    M python/grass/jupyter/region.py
    M python/grass/jupyter/seriesmap.py
    M python/grass/jupyter/tests/seriesmap_test.py
    M python/grass/jupyter/tests/timeseriesmap_test.py
    M python/grass/jupyter/testsuite/interactivemap_test.py
    M python/grass/jupyter/utils.py
    M python/grass/pydispatch/PKG-INFO
    M python/grass/pydispatch/__init__.py
    M python/grass/pydispatch/dispatcher.py
    M python/grass/pydispatch/robustapply.py
    M python/grass/pydispatch/saferef.py
    M python/grass/pygrass/errors.py
    M python/grass/pygrass/gis/region.py
    M python/grass/pygrass/modules/grid/grid.py
    M python/grass/pygrass/modules/grid/split.py
    M python/grass/pygrass/modules/interface/env.py
    M python/grass/pygrass/modules/interface/flag.py
    M python/grass/pygrass/modules/interface/module.py
    M python/grass/pygrass/modules/interface/parameter.py
    M python/grass/pygrass/modules/interface/testsuite/test_flag.py
    M python/grass/pygrass/modules/interface/testsuite/test_parameter.py
    M python/grass/pygrass/modules/shortcuts.py
    M python/grass/pygrass/raster/__init__.py
    M python/grass/pygrass/raster/abstract.py
    M python/grass/pygrass/raster/category.py
    M python/grass/pygrass/raster/rowio.py
    M python/grass/pygrass/raster/testsuite/test_numpy.py
    M python/grass/pygrass/rpc/base.py
    M python/grass/pygrass/shell/conversion.py
    M python/grass/pygrass/shell/show.py
    M python/grass/pygrass/tests/benchmark.py
    M python/grass/pygrass/utils.py
    M python/grass/pygrass/vector/__init__.py
    M python/grass/pygrass/vector/abstract.py
    M python/grass/pygrass/vector/basic.py
    M python/grass/pygrass/vector/find.py
    M python/grass/pygrass/vector/geometry.py
    M python/grass/pygrass/vector/table.py
    M python/grass/pygrass/vector/testsuite/test_geometry.py
    M python/grass/pygrass/vector/testsuite/test_table.py
    M python/grass/pygrass/vector/testsuite/test_vector3d.py
    M python/grass/script/array.py
    M python/grass/script/core.py
    M python/grass/script/db.py
    M python/grass/script/raster.py
    M python/grass/script/raster3d.py
    M python/grass/script/setup.py
    M python/grass/script/task.py
    M python/grass/script/tests/grass_script_core_location_test.py
    M python/grass/script/testsuite/data/script_using_temporary_region.py
    M python/grass/script/testsuite/test_utils.py
    M python/grass/script/utils.py
    M python/grass/script/vector.py
    M python/grass/semantic_label/reader.py
    M python/grass/temporal/__init__.py
    M python/grass/temporal/abstract_dataset.py
    M python/grass/temporal/abstract_map_dataset.py
    M python/grass/temporal/abstract_space_time_dataset.py
    M python/grass/temporal/aggregation.py
    M python/grass/temporal/base.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/core.py
    M python/grass/temporal/datetime_math.py
    M python/grass/temporal/extract.py
    M python/grass/temporal/factory.py
    M python/grass/temporal/gui_support.py
    M python/grass/temporal/list_stds.py
    M python/grass/temporal/mapcalc.py
    M python/grass/temporal/open_stds.py
    M python/grass/temporal/register.py
    M python/grass/temporal/sampling.py
    M python/grass/temporal/space_time_datasets.py
    M python/grass/temporal/spatial_extent.py
    M python/grass/temporal/spatio_temporal_relationships.py
    M python/grass/temporal/stds_export.py
    M python/grass/temporal/stds_import.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_extent.py
    M python/grass/temporal/temporal_granularity.py
    M python/grass/temporal/temporal_operator.py
    M python/grass/temporal/temporal_raster3d_algebra.py
    M python/grass/temporal/temporal_raster_algebra.py
    M python/grass/temporal/temporal_raster_base_algebra.py
    M python/grass/temporal/temporal_vector_algebra.py
    M python/grass/temporal/testsuite/test_register_function.py
    M python/grass/temporal/testsuite/test_temporal_doctests.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_grs.py
    M python/grass/temporal/testsuite/unittests_temporal_algebra_mixed_stds.py
    M python/grass/temporal/testsuite/unittests_temporal_conditionals.py
    M python/grass/temporal/testsuite/unittests_temporal_raster3d_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_equal_ts.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_grs.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_algebra_spatial_topology.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_conditionals.py
    M python/grass/temporal/testsuite/unittests_temporal_raster_conditionals_complement_else.py
    M python/grass/temporal/testsuite/unittests_temporal_vector_algebra.py
    M python/grass/temporal/unit_tests.py
    M python/grass/temporal/univar_statistics.py
    M python/libgrass_interface_generator/ctypesgen/expressions.py
    M python/libgrass_interface_generator/ctypesgen/libraryloader.py
    M python/libgrass_interface_generator/ctypesgen/main.py
    M python/libgrass_interface_generator/ctypesgen/printer_python/printer.py
    M raster/r.buffer/distance.h
    M raster/r.category/Makefile
    M raster/r.category/local_proto.h
    M raster/r.category/main.c
    M raster/r.category/r.category.html
    M raster/r.category/test_rcategory_doctest.txt
    M raster/r.coin/print_coin.c
    M raster/r.cost/flag.h
    M raster/r.cost/heap.c
    M raster/r.horizon/main.c
    M raster/r.horizon/testsuite/test_r_horizon.py
    M raster/r.li/r.li.html
    M raster/r.mapcalc/map3.c
    M raster/r.mapcalc/testsuite/test_r_mapcalc.py
    M raster/r.mapcalc/testsuite/test_row_above_below_bug.py
    M raster/r.mfilter/benchmark/benchmark_r_mfilter_nprocs.py
    M raster/r.mfilter/execute.c
    M raster/r.neighbors/testsuite/test_r_neighbors.py
    M raster/r.object.geometry/main.c
    M raster/r.out.mpeg/main.c
    M raster/r.path/main.c
    M raster/r.profile/Makefile
    M raster/r.profile/local_proto.h
    M raster/r.profile/main.c
    M raster/r.profile/r.profile.html
    M raster/r.profile/read_rast.c
    M raster/r.profile/testsuite/test_profile_ncspm.py
    M raster/r.proj/main.c
    M raster/r.random.cells/flag.h
    M raster/r.random.cells/ransurf.h
    M raster/r.random.cells/testsuite/test_random_cells.py
    M raster/r.random.surface/ransurf.h
    M raster/r.random/testsuite/test_r_random.py
    M raster/r.random/testsuite/testrandom.py
    M raster/r.ros/main.c
    M raster/r.ros/spot_dist.c
    M raster/r.sim/simlib/hydro.c
    M raster/r.sim/simlib/random.c
    M raster/r.slope.aspect/main.c
    M raster/r.solute.transport/example.py
    M raster/r.solute.transport/seguin_verify.py
    M raster/r.solute.transport/seguin_verify_well.py
    M raster/r.spread/collect_ori.c
    M raster/r.spread/main.c
    M raster/r.spread/ram2out.c
    M raster/r.spread/select_linksB.c
    M raster/r.spread/spot.c
    M raster/r.spread/spread.c
    M raster/r.spreadpath/path_finder.c
    M raster/r.statistics/o_kurt.c
    M raster/r.statistics/o_sdev.c
    M raster/r.statistics/o_skew.c
    M raster/r.statistics/o_var.c
    M raster/r.stats.zonal/graphics_for_description.ipynb
    M raster/r.stream.extract/local_proto.h
    M raster/r.sun/main.c
    M raster/r.sun/testsuite/test_rsun.py
    M raster/r.surf.contour/flag.h
    M raster/r.surf.gauss/testsuite/test_r_surf_gauss.py
    M raster/r.surf.idw/pi.h
    M raster/r.surf.random/testsuite/test_min_max.py
    M raster/r.terraflow/sweep.cpp
    M raster/r.texture/Makefile
    A raster/r.texture/benchmark/benchmark_rtexture.py
    A raster/r.texture/benchmark/benchmark_rtexture_window.py
    M raster/r.texture/execute.c
    M raster/r.texture/execute.h
    M raster/r.texture/main.c
    M raster/r.texture/r.texture.html
    A raster/r.texture/r_texture_mapsize_efficiency.png
    A raster/r.texture/r_texture_mapsize_time.png
    A raster/r.texture/r_texture_window_efficiency.png
    A raster/r.texture/r_texture_window_time.png
    A raster/r.texture/testsuite/test_rtexture.py
    A raster/r.texture/testsuite/test_rtexture_parallel.py
    R raster/r.texture/testsuite/test_texture.py
    M raster/r.to.vect/areas.c
    M raster/r.to.vect/testsuite/test_r_to_vect.py
    M raster/r.topidx/arc_to_gridatb.py
    M raster/r.topidx/gridatb_to_arc.py
    M raster/r.transect/parse_line.c
    M raster/r.univar/Makefile
    M raster/r.univar/globals.h
    M raster/r.univar/r.univar.html
    M raster/r.univar/r.univar_main.c
    M raster/r.univar/r3.univar_main.c
    M raster/r.univar/stats.c
    M raster/r.univar/testsuite/test_r_univar.py
    M raster/r.walk/flag.h
    M raster/r.walk/heap.c
    M raster/r.water.outlet/ramseg.h
    M raster/r.watershed/ram/do_astar.h
    M raster/r.watershed/ram/flag.h
    M raster/r.watershed/ram/ramseg.h
    M raster3d/r3.in.v5d/v5d.c
    M raster3d/r3.info/main.c
    M raster3d/r3.to.rast/testsuite/test_a_b_coeff.py
    M raster3d/r3.to.rast/testsuite/test_integer_rounding.py
    M raster3d/r3.to.rast/testsuite/test_nulls.py
    M raster3d/r3.to.rast/testsuite/test_small_data.py
    M renovate.json5
    M scripts/d.correlate/d.correlate.py
    M scripts/d.frame/d.frame.py
    M scripts/d.polar/d.polar.py
    M scripts/d.rast.edit/d.rast.edit.py
    M scripts/d.rast.leg/d.rast.leg.py
    M scripts/db.dropcolumn/db.dropcolumn.py
    M scripts/db.droptable/db.droptable.py
    M scripts/db.in.ogr/db.in.ogr.py
    M scripts/db.univar/db.univar.py
    M scripts/g.extension.all/g.extension.all.py
    M scripts/g.extension/g.extension.py
    M scripts/g.extension/testsuite/test_addons_download.py
    M scripts/g.extension/testsuite/test_addons_modules.py
    M scripts/g.manual/g.manual.py
    M scripts/g.search.modules/g.search.modules.py
    M scripts/i.colors.enhance/i.colors.enhance.py
    M scripts/i.image.mosaic/i.image.mosaic.py
    M scripts/i.in.spotvgt/i.in.spotvgt.py
    M scripts/i.oif/i.oif.py
    M scripts/i.pansharpen/i.pansharpen.py
    M scripts/i.spectral/i.spectral.py
    M scripts/i.tasscap/i.tasscap.py
    M scripts/m.proj/m.proj.py
    M scripts/r.blend/r.blend.py
    M scripts/r.buffer.lowmem/r.buffer.lowmem.py
    M scripts/r.colors.stddev/r.colors.stddev.py
    M scripts/r.fillnulls/r.fillnulls.py
    M scripts/r.grow/r.grow.py
    M scripts/r.import/r.import.py
    M scripts/r.import/testsuite/test_r_import.py
    M scripts/r.in.aster/r.in.aster.py
    M scripts/r.in.srtm/r.in.srtm.py
    M scripts/r.in.wms/r.in.wms.py
    M scripts/r.in.wms/wms_base.py
    M scripts/r.in.wms/wms_cap_parsers.py
    M scripts/r.in.wms/wms_drv.py
    M scripts/r.in.wms/wms_gdal_drv.py
    M scripts/r.mask/r.mask.py
    M scripts/r.out.xyz/r.out.xyz.py
    M scripts/r.pack/r.pack.py
    M scripts/r.plane/r.plane.py
    M scripts/r.reclass.area/r.reclass.area.py
    M scripts/r.rgb/r.rgb.py
    M scripts/r.semantic.label/r.semantic.label.py
    M scripts/r.semantic.label/testsuite/test_r_semantic_label.py
    M scripts/r.tileset/r.tileset.py
    M scripts/r.unpack/r.unpack.py
    M scripts/v.centroids/v.centroids.py
    M scripts/v.clip/testsuite/test_v_clip.py
    M scripts/v.clip/v.clip.py
    M scripts/v.db.addcolumn/v.db.addcolumn.py
    M scripts/v.db.addtable/v.db.addtable.py
    M scripts/v.db.dropcolumn/v.db.dropcolumn.py
    M scripts/v.db.droprow/v.db.droprow.py
    M scripts/v.db.droptable/v.db.droptable.py
    M scripts/v.db.reconnect.all/v.db.reconnect.all.py
    M scripts/v.db.renamecolumn/v.db.renamecolumn.py
    M scripts/v.db.univar/v.db.univar.py
    M scripts/v.db.update/v.db.update.py
    M scripts/v.dissolve/tests/conftest.py
    M scripts/v.dissolve/v.dissolve.py
    M scripts/v.import/testsuite/test_v_import.py
    M scripts/v.import/v.import.py
    M scripts/v.in.e00/v.in.e00.py
    M scripts/v.in.geonames/v.in.geonames.py
    M scripts/v.in.lines/v.in.lines.py
    M scripts/v.in.wfs/v.in.wfs.py
    M scripts/v.pack/v.pack.py
    M scripts/v.rast.stats/v.rast.stats.py
    M scripts/v.report/v.report.py
    M scripts/v.to.lines/v.to.lines.py
    M scripts/v.what.strds/testsuite/test_what_strds.py
    M scripts/v.what.strds/v.what.strds.py
    M scripts/wxpyimgview/wxpyimgview.py
    M scripts/wxpyimgview/wxpyimgview_gui.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_raster3d.py
    M temporal/t.connect/testsuite/test_distr_tgis_db_vector.py
    M temporal/t.copy/t.copy.py
    M temporal/t.create/t.create.py
    M temporal/t.info/t.info.py
    M temporal/t.list/t.list.py
    M temporal/t.merge/t.merge.py
    M temporal/t.rast.accdetect/t.rast.accdetect.py
    M temporal/t.rast.accdetect/testsuite/test_simple.py
    M temporal/t.rast.accumulate/t.rast.accumulate.py
    M temporal/t.rast.accumulate/testsuite/test_accumulation.py
    M temporal/t.rast.aggregate.ds/t.rast.aggregate.ds.py
    M temporal/t.rast.aggregate/t.rast.aggregate.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_absolute.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_absolute_parallel.py
    M temporal/t.rast.aggregate/testsuite/test_aggregation_relative.py
    M temporal/t.rast.algebra/t.rast.algebra.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_arithmetic.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_granularity.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_granularity_fails.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra_operators.py
    M temporal/t.rast.colors/t.rast.colors.py
    M temporal/t.rast.contour/t.rast.contour.py
    M temporal/t.rast.export/t.rast.export.py
    M temporal/t.rast.export/testsuite/test_rast_export.py
    M temporal/t.rast.extract/t.rast.extract.py
    M temporal/t.rast.extract/testsuite/test_t_rast_extract.py
    M temporal/t.rast.gapfill/t.rast.gapfill.py
    M temporal/t.rast.gapfill/testsuite/test_gapfill.py
    M temporal/t.rast.import/t.rast.import.py
    M temporal/t.rast.import/testsuite/test_temporal_rast_import.py
    M temporal/t.rast.list/t.rast.list.py
    M temporal/t.rast.list/tests/conftest.py
    M temporal/t.rast.list/tests/t_rast_list_test.py
    M temporal/t.rast.mapcalc/t.rast.mapcalc.py
    M temporal/t.rast.neighbors/t.rast.neighbors.html
    M temporal/t.rast.neighbors/t.rast.neighbors.py
    M temporal/t.rast.neighbors/testsuite/test_neighbors.py
    M temporal/t.rast.out.vtk/t.rast.out.vtk.py
    M temporal/t.rast.series/t.rast.series.py
    M temporal/t.rast.series/testsuite/test_series.py
    M temporal/t.rast.to.rast3/t.rast.to.rast3.py
    M temporal/t.rast.to.rast3/testsuite/test_strds_to_rast3.py
    M temporal/t.rast.to.vect/t.rast.to.vect.py
    M temporal/t.rast.to.vect/testsuite/test_to_vect.py
    M temporal/t.rast.what/t.rast.what.py
    M temporal/t.rast3d.algebra/t.rast3d.algebra.py
    M temporal/t.rast3d.algebra/testsuite/test_raster3d_algebra.py
    M temporal/t.rast3d.extract/t.rast3d.extract.py
    M temporal/t.rast3d.extract/testsuite/test_t_rast3d_extract.py
    M temporal/t.rast3d.list/t.rast3d.list.py
    M temporal/t.rast3d.mapcalc/t.rast3d.mapcalc.py
    M temporal/t.rast3d.univar/t.rast3d.univar.py
    M temporal/t.register/t.register.py
    M temporal/t.register/testsuite/test_t_register_raster.py
    M temporal/t.register/testsuite/test_t_register_raster_different_local.py
    M temporal/t.register/testsuite/test_t_register_raster_file.py
    M temporal/t.register/testsuite/test_t_register_raster_mapmetadata.py
    M temporal/t.remove/t.remove.py
    M temporal/t.rename/t.rename.py
    M temporal/t.rename/testsuite/test_t_rename.py
    M temporal/t.sample/t.sample.py
    M temporal/t.select/t.select.py
    M temporal/t.shift/t.shift.py
    M temporal/t.shift/testsuite/test_shift.py
    M temporal/t.snap/t.snap.py
    M temporal/t.snap/testsuite/test_snap.py
    M temporal/t.support/t.support.py
    M temporal/t.support/testsuite/test_support_str3ds.py
    M temporal/t.support/testsuite/test_support_strds.py
    M temporal/t.support/testsuite/test_support_stvds.py
    M temporal/t.topology/t.topology.py
    M temporal/t.unregister/t.unregister.py
    M temporal/t.unregister/testsuite/test_unregister.py
    M temporal/t.vect.algebra/t.vect.algebra.py
    M temporal/t.vect.algebra/testsuite/test_vector_algebra.py
    M temporal/t.vect.db.select/t.vect.db.select.py
    M temporal/t.vect.export/t.vect.export.py
    M temporal/t.vect.extract/t.vect.extract.py
    M temporal/t.vect.import/t.vect.import.py
    M temporal/t.vect.list/t.vect.list.py
    M temporal/t.vect.observe.strds/t.vect.observe.strds.py
    M temporal/t.vect.univar/t.vect.univar.py
    M temporal/t.vect.what.strds/t.vect.what.strds.py
    A utils/coverage_mapper.py
    M utils/g.html2man/g.html2man.py
    M utils/g.html2man/ggroff.py
    M utils/generate_last_commit_file.py
    M utils/generate_release_notes.py
    M utils/gitlog2changelog.py
    M utils/md_isvalid.py
    M utils/mkhtml.py
    M utils/ppmrotate.py
    M utils/release.yml
    M utils/test_generate_last_commit_file.py
    M utils/thumbnails.py
    M utils/update_version.py
    M vector/v.cluster/main.c
    M vector/v.external/args.c
    M vector/v.in.lidar/testsuite/decimation_test.py
    M vector/v.in.lidar/testsuite/mask_test.py
    M vector/v.in.lidar/testsuite/test_v_in_lidar_filter.py
    M vector/v.in.pdal/testsuite/test_v_in_pdal_filter.py
    M vector/v.info/testsuite/test_vinfo.py
    M vector/v.label.sa/labels.c
    M vector/v.net/testsuite/test_v_net.py
    A vector/v.out.ogr/testsuite/test_v_out_ogr.py
    M vector/v.random/testsuite/test_v_random.py
    M vector/v.select/testsuite/test_v_select.py
    A vector/v.surf.rst/benchmark/benchmark_v_surf_rst.py
    A vector/v.surf.rst/benchmark/benchmark_v_surf_rst_cv.py
    M vector/v.surf.rst/main.c
    M vector/v.surf.rst/testsuite/test_vsurfrst.py
    M vector/v.surf.rst/v.surf.rst.html
    A vector/v.surf.rst/vsurfrst_benchmark.png
    A vector/v.surf.rst/vsurfrst_cv_benchmark.png
    M vector/v.to.3d/testsuite/test_vto3d.py
    M vector/v.univar/Makefile
    M vector/v.univar/main.c
    A vector/v.univar/testsuite/test_v_univar.py
    R vector/v.univar/testsuite/v_univar_test.py
    M vector/v.univar/v.univar.html

  Log Message:
  -----------
  Merge branch 'main' into renovate/python-3.x


Compare: https://github.com/OSGeo/grass/compare/f5b21a0fb84d...3063277e63c0

To unsubscribe from these emails, change your notification settings at https://github.com/OSGeo/grass/settings/notifications


More information about the grass-commit mailing list