[GRASS-git] [OSGeo/grass] 0111b1: Update to Black 21.5b1 (#1605)

Avik Kundu noreply at github.com
Sun Aug 22 11:05:07 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/OSGeo/grass
  Commit: 0111b11e8b3aae2c55f20eb1ceea3dc4ee86cee9
      https://github.com/OSGeo/grass/commit/0111b11e8b3aae2c55f20eb1ceea3dc4ee86cee9
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-06-06 (Sun, 06 Jun 2021)

  Changed paths:
    M .github/workflows/black.yml
    M gui/wxpython/animation/mapwindow.py
    M gui/wxpython/core/gconsole.py
    M gui/wxpython/core/render.py
    M gui/wxpython/datacatalog/catalog.py
    M gui/wxpython/datacatalog/infomanager.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/iscatt/dialogs.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/nviz/animation.py
    M gui/wxpython/psmap/dialogs.py
    M gui/wxpython/psmap/utils.py
    M gui/wxpython/rlisetup/wizard.py
    M gui/wxpython/vnet/dialogs.py
    M gui/wxpython/vnet/vnet_data.py
    M gui/wxpython/vnet/widgets.py
    M gui/wxpython/wxgui.py
    M imagery/i.atcorr/create_iwave.py
    M lib/init/grass.py
    M man/parser_standard_options.py
    M pyproject.toml
    M python/grass/imaging/images2gif.py
    M python/grass/imaging/images2swf.py
    M python/grass/pygrass/raster/category.py
    M python/grass/pygrass/raster/segment.py
    M python/grass/pygrass/utils.py
    M python/grass/pygrass/vector/geometry.py
    M python/grass/pygrass/vector/table.py
    M python/grass/temporal/temporal_algebra.py
    M python/grass/temporal/temporal_granularity.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_raster_algebra.py
    M python/grass/temporal/testsuite/unittests_temporal_vector_algebra.py
    M raster/r.contour/testsuite/testrc.py
    M raster/r.reclass/testsuite/test_r_reclass.py
    M scripts/i.pansharpen/i.pansharpen.py
    M temporal/t.rast.algebra/testsuite/test_raster_algebra.py
    M temporal/t.vect.algebra/testsuite/test_vector_algebra.py
    M vector/v.extract/testsuite/test_v_extract.py
    M vector/v.select/testsuite/test_v_select.py
    M vector/v.vect.stats/testsuite/test_vect_stats.py

  Log Message:
  -----------
  Update to Black 21.5b1 (#1605)

* Apply Black to 3 previously excluded files (due to now resolved bugs in Black).
* Black now modifies one-line docstrings which have leading or trailing spaces.
* Remove empty docstrings (remove, replace by pass, replace by text).
* Add Python 3.9 to target versions.
* Properly exclude bin and dist dirs.
* Add first line to test data function docstring to have a better docstring.
* Exclude pygrass/utils which contains an R-string lowercased to r in Black 21.5b1.


  Commit: 9dd029564047cbd531431055cf244fd3a99aa185
      https://github.com/OSGeo/grass/commit/9dd029564047cbd531431055cf244fd3a99aa185
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-06-06 (Sun, 06 Jun 2021)

  Changed paths:
    M .github/workflows/test_thorough.sh
    A .gunittest.cfg
    M python/grass/docs/src/gunittest_running_tests.rst
    M python/grass/gunittest/invoker.py
    M python/grass/gunittest/loader.py
    M python/grass/gunittest/main.py
    M python/grass/gunittest/reporters.py

  Log Message:
  -----------
  gunittest: Exclude broken tests (#1587)

* Adds configuration file to gunittest which can contain list of files to exclude.
* Excluding all currently broken tests and one sometimes failing doctests.
* Print line with failed test name in pytest style.
* Include .git in hardcoded excluded dirs.
* Make the default min-success 100% (assuming no fluctuations with exclusions).
* No tests found ends with an error message, not traceback.
* Increase min success to 100% in CI.


  Commit: 0e0d05ea53417f7e128c4192d118c155352bc902
      https://github.com/OSGeo/grass/commit/0e0d05ea53417f7e128c4192d118c155352bc902
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M Dockerfile

  Log Message:
  -----------
  Dockerfile: only create versionless link when needed


  Commit: b46d68a58eb282f2b280a5eb369a518cb11cf994
      https://github.com/OSGeo/grass/commit/b46d68a58eb282f2b280a5eb369a518cb11cf994
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/alpine/Dockerfile_alpine
    M docker/alpine/Dockerfile_alpine_latest
    M docker/debian/Dockerfile_debian_pdal
    M docker/testdata/test_grass_session.py
    M docker/ubuntu/Dockerfile_ubuntu_pdal

  Log Message:
  -----------
  Dockerfiles: fix broken grass-session tests (#1623)

Workaround for grass-session which requires G8 related updates


  Commit: 3f048ed517a04e0fb005d0d937f460884899b9dd
      https://github.com/OSGeo/grass/commit/3f048ed517a04e0fb005d0d937f460884899b9dd
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/alpine/Dockerfile_alpine
    M docker/debian/Dockerfile_debian_pdal
    M docker/ubuntu/Dockerfile_ubuntu_pdal

  Log Message:
  -----------
  Dockerfiles: remove workaround for grass-session (#1624)

Partial revert of #1623


  Commit: 5e0d18b0b8926690cc806dd232b0afaaca572fb2
      https://github.com/OSGeo/grass/commit/5e0d18b0b8926690cc806dd232b0afaaca572fb2
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/alpine/Dockerfile_alpine
    M docker/debian/Dockerfile_debian_pdal
    M docker/ubuntu/Dockerfile_ubuntu_pdal

  Log Message:
  -----------
  Dockerfile: fix broken lib link (#1625)

* Dockerfile: fix broken lib link


  Commit: a4e9878d874bd4188480cc1b613b45d6c5352293
      https://github.com/OSGeo/grass/commit/a4e9878d874bd4188480cc1b613b45d6c5352293
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/debian/Dockerfile_debian_pdal
    M docker/ubuntu/Dockerfile_ubuntu_pdal

  Log Message:
  -----------
  Dockerfile Ubuntu/Debian: another link fix (#1626)


  Commit: f1a46d63fb3628d7ea506a146390f21d681c6d0d
      https://github.com/OSGeo/grass/commit/f1a46d63fb3628d7ea506a146390f21d681c6d0d
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/ubuntu/Dockerfile_ubuntu_pdal

  Log Message:
  -----------
  Dockerfile Ubuntu: versionless link fix


  Commit: 9ce1b56795f75c3f26bede2b823f2e70c6d4af61
      https://github.com/OSGeo/grass/commit/9ce1b56795f75c3f26bede2b823f2e70c6d4af61
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-07 (Mon, 07 Jun 2021)

  Changed paths:
    M docker/debian/Dockerfile_debian_pdal

  Log Message:
  -----------
  Dockerfile Debian: versionless link fix


  Commit: 019f18d61acf6e94a7afe653b13aa12a95076de6
      https://github.com/OSGeo/grass/commit/019f18d61acf6e94a7afe653b13aa12a95076de6
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-06-09 (Wed, 09 Jun 2021)

  Changed paths:
    A binder/apt.txt
    A binder/postBuild
    A binder/requirements.txt
    A doc/notebooks/example_notebook.ipynb

  Log Message:
  -----------
  Add Binder setup files (#1603)

* Setup files for Binder tested with mybinder.org.
* Sample data downloaded during the image build on Binder.
* Empty notebook included as a placeholder.
* JupyterLab used on Binder.
* Using standard system setup of GRASS, so grass command works, but anything else needs to be set up.


  Commit: 199be7109d6fc90ca482528d7ce44d35e50c50db
      https://github.com/OSGeo/grass/commit/199be7109d6fc90ca482528d7ce44d35e50c50db
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-12 (Sat, 12 Jun 2021)

  Changed paths:
    M gui/wxpython/lmgr/workspace.py

  Log Message:
  -----------
  wxGUI/workspace: fix for missing argument (#1637)


  Commit: 84bedf3775bcc8691563c09331cb31ebee7fa564
      https://github.com/OSGeo/grass/commit/84bedf3775bcc8691563c09331cb31ebee7fa564
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-12 (Sat, 12 Jun 2021)

  Changed paths:
    M lib/init/Makefile
    R lib/init/circle_1.png
    R lib/init/circle_2.png
    R lib/init/circle_3.png
    R lib/init/circle_4.png
    R lib/init/circle_5.png
    R lib/init/circle_6.png
    M lib/init/grass_start.png
    A lib/init/grassdb.png
    M lib/init/helptext.html
    A lib/init/location-add.png
    A lib/init/location-download.png
    A lib/init/location.png
    A lib/init/mapset.png
    A lib/init/raster-import.png
    A lib/init/vector-import.png

  Log Message:
  -----------
  doc: update quick start instructions (#1577)


  Commit: 5332026514514f0f08d5dab39c13d0d8a7b7cd5b
      https://github.com/OSGeo/grass/commit/5332026514514f0f08d5dab39c13d0d8a7b7cd5b
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-13 (Sun, 13 Jun 2021)

  Changed paths:
    M .github/workflows/apt.txt
    M .github/workflows/build.sh

  Log Message:
  -----------
  CI: add PDAL support (#1638)


  Commit: 69b2fe5fb0dd10f57c880ee93f34c045d38d3b02
      https://github.com/OSGeo/grass/commit/69b2fe5fb0dd10f57c880ee93f34c045d38d3b02
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-13 (Sun, 13 Jun 2021)

  Changed paths:
    M gui/wxpython/main_window/frame.py

  Log Message:
  -----------
  wxGUI/Single-Window GUI: arrangement of basic widgets (#1621)


  Commit: e94771d5dddb74b8516da702afd82e0815631bbd
      https://github.com/OSGeo/grass/commit/e94771d5dddb74b8516da702afd82e0815631bbd
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-06-14 (Mon, 14 Jun 2021)

  Changed paths:
    M README.md
    M doc/notebooks/example_notebook.ipynb

  Log Message:
  -----------
  Add Binder badge/button to readme (#1628)

* Adds Binder badge/button to the readme file.
* Adds a separate "call to action" paragraph to highlight Binder rather than putting it among other badges.
* Uses JupyterLab.
* Adds content to the basic example, so it is clear how to start using the standard grass.script API.


  Commit: 06c3840cda20ab028ab4b370f5644a5f88bc4832
      https://github.com/OSGeo/grass/commit/06c3840cda20ab028ab4b370f5644a5f88bc4832
  Author: Huidae Cho <grass4u at gmail.com>
  Date:   2021-06-15 (Tue, 15 Jun 2021)

  Changed paths:
    M utils/mkhtml.py

  Log Message:
  -----------
  Fix source code URL when addon path starts with root path (#546) (#1645)


  Commit: d2a5e8e8fbd166a0466ab8b5fffe8f05e85444f7
      https://github.com/OSGeo/grass/commit/d2a5e8e8fbd166a0466ab8b5fffe8f05e85444f7
  Author: Huidae Cho <grass4u at gmail.com>
  Date:   2021-06-16 (Wed, 16 Jun 2021)

  Changed paths:
    M include/grass/gis.h
    M lib/gis/parser_standard_options.c

  Log Message:
  -----------
  Add a standard option for nprocs= (G_OPT_M_NPROCS) (#1644)

* Add a standard option for nprocs= (G_OPT_M_NPROCS)

* tabs to spaces


  Commit: c48a2dd358d4b4dea120d4c79f170b87d3d67acd
      https://github.com/OSGeo/grass/commit/c48a2dd358d4b4dea120d4c79f170b87d3d67acd
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-16 (Wed, 16 Jun 2021)

  Changed paths:
    M gui/wxpython/lmgr/giface.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/statusbar.py

  Log Message:
  -----------
  wxGUI/map display: manage wx.StatusBar widget by AUI (#1646)

Needed for single layout, map display will not be always a wx.frame


  Commit: 5f36dc93076064b54cb7e1851ead08cfb5aa1a4a
      https://github.com/OSGeo/grass/commit/5f36dc93076064b54cb7e1851ead08cfb5aa1a4a
  Author: Huidae Cho <grass4u at gmail.com>
  Date:   2021-06-16 (Wed, 16 Jun 2021)

  Changed paths:
    M general/g.parser/standard_option.c

  Log Message:
  -----------
  g.parser: Add G_OPT_M_NPROCS (#1652)


  Commit: d1a8a690dee34124cd0f9deab9c2d55bf63827a2
      https://github.com/OSGeo/grass/commit/d1a8a690dee34124cd0f9deab9c2d55bf63827a2
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-06-16 (Wed, 16 Jun 2021)

  Changed paths:
    M .gitignore
    A doc/notebooks/jupyter_integration.ipynb
    M python/grass/Makefile
    A python/grass/jupyter/Makefile
    A python/grass/jupyter/__init__.py
    A python/grass/jupyter/setup.py

  Log Message:
  -----------
  Add session initiations functions for Jupyter Notebooks (#1629)

* Create subpackage grass.jupyter.
* Add examples as an additional notebook.
* The API is experimental.
* The init function starts a session, but there is no way of ending it.
* The display function reflects the current practice in notebooks. It will be reworked during GSoC 2021.


  Commit: d6ad4a227bf5368a77907c49259c104a1256b57e
      https://github.com/OSGeo/grass/commit/d6ad4a227bf5368a77907c49259c104a1256b57e
  Author: Tomas Zigo <50632337+tmszi at users.noreply.github.com>
  Date:   2021-06-18 (Fri, 18 Jun 2021)

  Changed paths:
    M gui/wxpython/gmodeler/dialogs.py
    M gui/wxpython/gui_core/widgets.py

  Log Message:
  -----------
  wxGUI/gui_core: fix trigger 'wx.EVT_CHOICE' event if you set widget selection programatically  (#1580)


  Commit: 9377fec11ab8da871d53c6683e353bbe1a9f8544
      https://github.com/OSGeo/grass/commit/9377fec11ab8da871d53c6683e353bbe1a9f8544
  Author: Tomas Zigo <50632337+tmszi at users.noreply.github.com>
  Date:   2021-06-18 (Fri, 18 Jun 2021)

  Changed paths:
    M gui/wxpython/mapwin/buffered.py

  Log Message:
  -----------
  wxGUI/vdigit: fix close settings dialog (#1394)

If no vector map has been selected.


  Commit: aed181097b91f596b4c377a430e6f410f0a40ce4
      https://github.com/OSGeo/grass/commit/aed181097b91f596b4c377a430e6f410f0a40ce4
  Author: Tomas Zigo <50632337+tmszi at users.noreply.github.com>
  Date:   2021-06-18 (Fri, 18 Jun 2021)

  Changed paths:
    M gui/wxpython/core/utils.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/modules/import_export.py

  Log Message:
  -----------
  wxGUI/datacatalog: fix setting output vector/raster format (#1596)


  Commit: dfc9b05cbfe5bb7cfa58fcbf328b06202ff64304
      https://github.com/OSGeo/grass/commit/dfc9b05cbfe5bb7cfa58fcbf328b06202ff64304
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-06-19 (Sat, 19 Jun 2021)

  Changed paths:
    M vector/v.db.select/main.c
    M vector/v.db.select/testsuite/test_v_db_select.py
    A vector/v.db.select/testsuite/test_v_db_select_json_csv.py
    M vector/v.db.select/v.db.select.html

  Log Message:
  -----------
  v.db.select: Handle all formats in option, add CSV, fix JSON (#1121)

Instead of separate flags for JSON and vertical output format, use format option,
so -j is replaced by format=json, etc. The formats are no longer spread among
the other flags and a written command is more readble. It is also more explicit
since the default format is now represented in the interface and vertical output
clearly stands out as yet another alternative.

The default format is named plain, alternative names considered and rejected were text, ascii and default.
It is meant to be read by humans, but now it can be also newly safely parsed when set as TSV,
however, this feature is questionable and the idea is that plain is not used for parsing.

The use of an option does not change anything major in the code in terms of output
except for use of an enum instead of directly accessing the flags' answers.
The parameter handling changed significantly. The standard exclude function
cannot be used and custom checks and messages are needed to disallow combinations
such as JSON with custom null value.

The significant clean-up related changes to existing formats are:

* The JSON output of NULL values is fixed, writing JSON literal null.
* JSON outputs are now always Object (dictionary) so theoretically they can be combined or enhanced in the future. 
* Different default separator for different formats and outputs (pipe for plain, comma for CSV).
* Separator for -e can now be customized.
* All required JSON escapes are escaped.
* Tab is escaped when escaping is enabled (so you could theoretically write TSV with escapes using plain).
* For all formats, JSON-style escapes except for double quotes are applied when escaping is enabled.
* Vertical output does not add a newline when newline is vertical separator (no more two newlines).

This adds another format, CSV, as format=csv, i.e., without need to add another
flag (e.g., -c and -v were already taken). Most of the code was already there
as basic structure was the original plain default output and quoting was already
done for the JSON output. The original format was not a proper CSV because it
lacked handling quoting of fields which for common CSV parsers takes care of new line
characters and separators in values/cells. It was not completely safe even with escaping
because it did does not escape to the separator (to be delimiter separated values format
with escapes). Delimiter for CSV can be customized, but the quoting cannot.

Now in CSV, all non-numeric columns are quoted (with two quotes representing a quote in the text).
The quotes used are double quotes, the separator is derived by the horizontal/field
separator option. By default is is a comma (a different separator is set for each format by default).
CSV output is available even for the -r flag (minimal region/bbox).


  Commit: 469dcb887d58bb6bfed15e64fe4f313a60bf3057
      https://github.com/OSGeo/grass/commit/469dcb887d58bb6bfed15e64fe4f313a60bf3057
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-19 (Sat, 19 Jun 2021)

  Changed paths:
    M gui/wxpython/core/workspace.py
    M gui/wxpython/lmgr/workspace.py
    M gui/wxpython/mapdisp/main.py

  Log Message:
  -----------
  wxGUI: fix after changes in statusbar API (#1665)

Fixes #1657


  Commit: d5dd43ddbedaa962e80172a5fa1768ae16257050
      https://github.com/OSGeo/grass/commit/d5dd43ddbedaa962e80172a5fa1768ae16257050
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-21 (Mon, 21 Jun 2021)

  Changed paths:
    M python/grass/ctypes/ctypesgencore/parser/lex.py

  Log Message:
  -----------
  ctypes: fix Callable for Python 3.10 (#1672)

Callable is now part of collections.abc: replacing `collections.Callable` with `collections.abc.Callable`

Co-authored-by: @petrasovaa


  Commit: 6c55820a90f64a2e1573a81eb23447a552515a9e
      https://github.com/OSGeo/grass/commit/6c55820a90f64a2e1573a81eb23447a552515a9e
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-21 (Mon, 21 Jun 2021)

  Changed paths:
    M INSTALL

  Log Message:
  -----------
  INSTALL: move up the link to the Wiki notes


  Commit: 78d902df89e6f4f00584df109101cceb6551988b
      https://github.com/OSGeo/grass/commit/78d902df89e6f4f00584df109101cceb6551988b
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-06-21 (Mon, 21 Jun 2021)

  Changed paths:
    M general/g.region/g.region.html
    M general/g.region/main.c

  Log Message:
  -----------
  g.region: do not update WIND file when not needed (#1627)

Changes default behavior to behave more intuitively, now WIND file is written only with certain
options (e.g. raster=, n=, ...) and it is left untouched if only printing is needed.
Added force flag -o to force writing WIND file if desired.
This change help avoid issues with parallel processing.
Flag -u still makes sense for some cases (also keeps backward compatibility).


  Commit: 161672df36f4207ec2962340e04ae60b975d92b9
      https://github.com/OSGeo/grass/commit/161672df36f4207ec2962340e04ae60b975d92b9
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-06-21 (Mon, 21 Jun 2021)

  Changed paths:
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/layertree.py
    M gui/wxpython/mapdisp/frame.py

  Log Message:
  -----------
  wxGUI: small refactoring of mapframe (#1669)

Removes the need for keeping references to notebook and layertree in map display


  Commit: 70e0c0ef9c7ce4e971c5197a4010ce5eaf354433
      https://github.com/OSGeo/grass/commit/70e0c0ef9c7ce4e971c5197a4010ce5eaf354433
  Author: Markus Neteler <neteler at gmail.com>
  Date:   2021-06-22 (Tue, 22 Jun 2021)

  Changed paths:
    M gui/wxpython/web_services/dialogs.py

  Log Message:
  -----------
  WMS: replace broken URLs with alternative WMS (#1635)

- both NASA GIBS and irs.gis-lab.info are no longer reachable
- replaced with global WMS by terrestris.de and Sentinel-2 by EOX.at

Note that the list shown in the GUI may be extended by the local list in `$HOME/.grass8/wxWS` if present (i.e., old WMS records to be removed there)

Co-authored-by: Luca Delucchi <lucadeluge at gmail.com>


  Commit: 8ed47e4b764bc0884de57b5c5bc68118155f815b
      https://github.com/OSGeo/grass/commit/8ed47e4b764bc0884de57b5c5bc68118155f815b
  Author: ShubhamSwati <81865950+ShubhamSwati at users.noreply.github.com>
  Date:   2021-06-23 (Wed, 23 Jun 2021)

  Changed paths:
    M scripts/.flake8
    M scripts/g.manual/g.manual.py
    M scripts/r.plane/r.plane.py
    M scripts/v.in.wfs/v.in.wfs.py
    M scripts/v.to.lines/v.to.lines.py

  Log Message:
  -----------
  Reduce usage of bare except (#1608)

* Replaces bare except by Exception in r.plane, v.in.wfs, v.to.lines.py, g.manual (good enough for Flake8).
* Removes the per-file ignores from the .flake8 file.


  Commit: 20f370c9ee983fd8bb30e9dd55c9acf528f562ad
      https://github.com/OSGeo/grass/commit/20f370c9ee983fd8bb30e9dd55c9acf528f562ad
  Author: Stefan Blumentrath <stefan.blumentrath at gmx.de>
  Date:   2021-06-25 (Fri, 25 Jun 2021)

  Changed paths:
    M raster/r.neighbors/local_proto.h
    M raster/r.neighbors/main.c
    M raster/r.neighbors/r.neighbors.html
    M raster/r.neighbors/readweights.c
    M raster/r.neighbors/testsuite/test_r_neighbors.py

  Log Message:
  -----------
  r.neighbors: add option for exponential weighting (#597)

* add exponent weight

* add weights function option

* add weights function option

* avoid function duplication

* make choice none all lowercase

* Dont check for non-zero result from strcmp in if statement

* add weigth functions

* use function pointer to weigth functions

* apply grass_indent.sh

* update tests with the new options

* adjust documentation

* r.neighbors: Make weighting_function parameter descriptions translatable

Co-authored-by: Māris Nartišs <maris.gis at gmail.com>


  Commit: cd4afa62a23ec45354ee8e6698e5e2b30f98c43b
      https://github.com/OSGeo/grass/commit/cd4afa62a23ec45354ee8e6698e5e2b30f98c43b
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-06-27 (Sun, 27 Jun 2021)

  Changed paths:
    M gui/wxpython/lmgr/layertree.py
    M raster/r.report/parse.c

  Log Message:
  -----------
  r.report: add default units, change to full unit names (#1666)

* r.report: add default, change to full unit names

* change unit names in GUI


  Commit: 78feee7c26bf07796508fe96f2835cb882b4963c
      https://github.com/OSGeo/grass/commit/78feee7c26bf07796508fe96f2835cb882b4963c
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-06-28 (Mon, 28 Jun 2021)

  Changed paths:
    M doc/notebooks/example_notebook.ipynb

  Log Message:
  -----------
  Add additional GRASS info to the main example notebook (#1686)

* Add links to documentation.
* List content of the current location (g.list, search path).
* List GRASS modules (g.search.modules).


  Commit: 0ed5a63fd9dabd3999f2d914f089b94ed4c2cbef
      https://github.com/OSGeo/grass/commit/0ed5a63fd9dabd3999f2d914f089b94ed4c2cbef
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-06-29 (Tue, 29 Jun 2021)

  Changed paths:
    M gui/wxpython/mapswipe/g.gui.mapswipe.py

  Log Message:
  -----------
  wxGUI: fix MapSwipe's wrong title (#1692)


  Commit: 32930185cb56a45f5409a5937877c86044271c02
      https://github.com/OSGeo/grass/commit/32930185cb56a45f5409a5937877c86044271c02
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-01 (Thu, 01 Jul 2021)

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

  Log Message:
  -----------
  wxGUI: fix wx flag assertion error in SavedRegion Dialog (#1680)

Fixes #1679


  Commit: 3d86470027eb390248d1c49e5a4b43a6d2b6e1c7
      https://github.com/OSGeo/grass/commit/3d86470027eb390248d1c49e5a4b43a6d2b6e1c7
  Author: Luca Delucchi <lucadeluge at gmail.com>
  Date:   2021-07-02 (Fri, 02 Jul 2021)

  Changed paths:
    M temporal/t.rast.accdetect/testsuite/test_simple.py
    M temporal/t.rast.accumulate/testsuite/test_accumulation.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/testsuite/test_raster_algebra.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.contour/testsuite/test_convert.py
    M temporal/t.rast.export/testsuite/test_rast_export.py
    M temporal/t.rast.extract/testsuite/test_t_rast_extract.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.neighbors/testsuite/test_neighbors.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/testsuite/test_to_vect.py
    M temporal/t.rast.univar/testsuite/test_t_rast_univar.py
    M temporal/t.rast.what/testsuite/test_what.py
    M temporal/t.rast3d.extract/testsuite/test_t_rast3d_extract.py
    M temporal/t.rast3d.univar/testsuite/test_t_rast3d_univar.py
    M temporal/t.remove/t.remove.html
    M temporal/t.remove/t.remove.py
    M temporal/t.shift/testsuite/test_shift.py
    M temporal/t.snap/testsuite/test_snap.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.vect.algebra/testsuite/test_vector_algebra.py
    M temporal/t.vect.extract/testsuite/test_vect_extract.py

  Log Message:
  -----------
  t.remove: new implementation of flags (#1695)

* t.remove: new implementation of flags

* modified temporal tests updating t.remove call with new d flag instead r


  Commit: 86acc1cb080b312cfa89aed5d21897dbec79986c
      https://github.com/OSGeo/grass/commit/86acc1cb080b312cfa89aed5d21897dbec79986c
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-07-02 (Fri, 02 Jul 2021)

  Changed paths:
    M doc/notebooks/jupyter_integration.ipynb
    M python/grass/jupyter/Makefile
    M python/grass/jupyter/__init__.py
    A python/grass/jupyter/display.py
    M python/grass/jupyter/setup.py

  Log Message:
  -----------
  Jupyter: Add non-interactive display (#1668)

* Non-interactive display functions with rendering based on d-commands.
* Rendering encapsulated in a class. Each object holds unique settings.
* Examples in notebook are now showing this new API.
* Deleted display_settings function.
* Rendering class init accepts env parameter as all well-behaved functions in grass.script.
* grass.script is used as a backend for running commands.
* Rendering run method provides general way of rendering with any d-command (which is not monitor-focused).
* Errors reported as exceptions, e.g., ValueError.
* Added pathlib Path object supported for filenames.


  Commit: cf4eaeb687c1cffc8462537eafe86d351b35a868
      https://github.com/OSGeo/grass/commit/cf4eaeb687c1cffc8462537eafe86d351b35a868
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-03 (Sat, 03 Jul 2021)

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

  Log Message:
  -----------
  CI: Make test report available even on failure (#1702)

This specifies that the upload artifact step should run even if the previous step fails
which is what happens when one of the test fails.


  Commit: 26976e33f9596f753b816006e146a526854deded
      https://github.com/OSGeo/grass/commit/26976e33f9596f753b816006e146a526854deded
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-03 (Sat, 03 Jul 2021)

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

  Log Message:
  -----------
  CI: Add matplotlib to apt deps (#1703)

Already in yum. Should be available to tests. (Now needed by grass.benchmark.)


  Commit: a9d4fac4c6a32e4a6857faac063a2531fe501f75
      https://github.com/OSGeo/grass/commit/a9d4fac4c6a32e4a6857faac063a2531fe501f75
  Author: Huidae Cho <grass4u at gmail.com>
  Date:   2021-07-03 (Sat, 03 Jul 2021)

  Changed paths:
    M locale/po/grasslibs_es.po
    M locale/po/grasslibs_fr.po
    M locale/po/grasslibs_it.po
    M locale/po/grasslibs_ko.po
    M locale/po/grasslibs_pt_BR.po
    M locale/po/grassmods_pt_BR.po
    M locale/po/grasswxpy_pt_BR.po

  Log Message:
  -----------
  i18n: Transifex sync (#1676)


  Commit: 984d11afb20938959c8765be93c3927ca42256ce
      https://github.com/OSGeo/grass/commit/984d11afb20938959c8765be93c3927ca42256ce
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-03 (Sat, 03 Jul 2021)

  Changed paths:
    M python/grass/gunittest/invoker.py

  Log Message:
  -----------
  gunittest: Fix stdout used instead of stderr (#1707)

Changes in 51fc3d6276a4f7468e3add3e535f99ff5f21ee91 (#1539) introduced a bug where stdout
was used always, so stderr was never visible in test results.
This uses the correct local variable, not the stdout from outer scope.


  Commit: ff0f931e7b688a28333753a1f1d1250484f2df6f
      https://github.com/OSGeo/grass/commit/ff0f931e7b688a28333753a1f1d1250484f2df6f
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-04 (Sun, 04 Jul 2021)

  Changed paths:
    M python/grass/pygrass/modules/interface/module.py

  Log Message:
  -----------
  gunittest: update module interface doctest (#1699)

adapts documentation to the addition of 'weighting_function'
parameter to 'r.neighbors' introduced with
https://github.com/OSGeo/grass/commit/20f370c9ee983fd8bb30e9dd55c9acf528f562ad


  Commit: ca1551206eaa0fc462f4849a06ebb035808470da
      https://github.com/OSGeo/grass/commit/ca1551206eaa0fc462f4849a06ebb035808470da
  Author: Māris Nartišs <maris.gis at gmail.com>
  Date:   2021-07-04 (Sun, 04 Jul 2021)

  Changed paths:
    M include/grass/defs/gis.h
    M include/grass/defs/raster.h
    R lib/gis/band_reference.c
    R lib/raster/band_reference.c
    M lib/raster/raster_metadata.c
    A lib/raster/testsuite/test_raster_metadata.py
    M python/grass/pygrass/raster/abstract.py
    M python/grass/temporal/c_libraries_interface.py
    M python/grass/temporal/space_time_datasets.py
    M raster/r.info/main.c
    M raster/r.info/r.info.html
    M raster/r.support/main.c
    M raster/r.support/r.support.html
    A raster/r.support/testsuite/test_r_support.py
    M scripts/i.band/i.band.html
    M scripts/i.band/i.band.py
    M scripts/i.band/testsuite/test_i_band.py

  Log Message:
  -----------
  Simplify raster band reference management (#1272)

Refactor bandref code:
* As band references are used only for raster, move functions to raster lib and model them after units and vdatum metadata
* Add function to test basic band id naming conformance
* Add ability to find out if provided band metadata file name is present
* Make filename in band reference not mandatory to accommodate any band id also without extended metadata
As file name can be determined at runtime and is used only to print out extended metadata, it makes little sense to store it. This greatly simplifies work with band references.
* Enable band reference management in raster support module
* Print band reference in r.info output
* Fix i.band to work with updated band reference code + remove test dependency on a particular location
* Adjust max length check & tests (thanks to @nilason)


  Commit: e3344714bd5337cd85b30f548d03e6222acf5e92
      https://github.com/OSGeo/grass/commit/e3344714bd5337cd85b30f548d03e6222acf5e92
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-05 (Mon, 05 Jul 2021)

  Changed paths:
    M python/grass/Makefile
    A python/grass/benchmark/Makefile
    A python/grass/benchmark/__init__.py
    A python/grass/benchmark/plots.py
    A python/grass/benchmark/runners.py
    A python/grass/benchmark/testsuite/test_benchmark.py

  Log Message:
  -----------
  libpython: Add helper library for benchmarking (#1670)

An experimental collection of simple functions to help benchmarking
and reduce code duplication between benchmarks.

The design ideas are: be minimalist, pragmatic with no API promises,
but provide convenient functions for writing benchmarking scripts.
The functions are meant for developers tracking the latest development version.

The plotting functions can be imported with missing dependencies for convenience,
but running them requires Matplotlib.

Co-authored-by: Aaron Saw Min Sern <aaronsms at u.nus.edu>


  Commit: f5976e7320d29c5010a18a12cda8c5a1f9ddf04b
      https://github.com/OSGeo/grass/commit/f5976e7320d29c5010a18a12cda8c5a1f9ddf04b
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-07 (Wed, 07 Jul 2021)

  Changed paths:
    M gui/wxpython/lmgr/giface.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapwin/buffered.py

  Log Message:
  -----------
  wxGUI/mapdisplay: register context menu items, addresses #1691 (#1704)


  Commit: d5536bded2c152b66c7d280f5d168cd9e745e403
      https://github.com/OSGeo/grass/commit/d5536bded2c152b66c7d280f5d168cd9e745e403
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-07-08 (Thu, 08 Jul 2021)

  Changed paths:
    M gui/wxpython/mapdisp/statusbar.py

  Log Message:
  -----------
  wxGUI: GetMapWindow replaced by more general method GetWindow (#1717)

Fixes #1714


  Commit: c6f64008d30092bcfb40779add2a9b461a72cf6a
      https://github.com/OSGeo/grass/commit/c6f64008d30092bcfb40779add2a9b461a72cf6a
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-08 (Thu, 08 Jul 2021)

  Changed paths:
    M python/grass/benchmark/Makefile
    M python/grass/benchmark/__init__.py
    A python/grass/benchmark/results.py
    M python/grass/benchmark/testsuite/test_benchmark.py

  Log Message:
  -----------
  libpython: Save and load benchmark results (#1711)

Series of functions to save benchmark results to JSON, load them back, and combine them together.

This needs some command line interface to make it convenient, but I used it in a custom benchmark script.

The JSON save ensures that the saved results are a dictionary not just a list which makes the storage format more extensible as first level can contain additional keys.


  Commit: 94bcea4216cdabcd18dbe5dc4686e38d4d3800de
      https://github.com/OSGeo/grass/commit/94bcea4216cdabcd18dbe5dc4686e38d4d3800de
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-12 (Mon, 12 Jul 2021)

  Changed paths:
    M .github/workflows/test_thorough.bat
    M .github/workflows/test_thorough.sh
    M gui/wxpython/startup/locdownload.py
    M python/grass/Makefile
    M python/grass/grassdb/checks.py
    A python/grass/utils/Makefile
    A python/grass/utils/__init__.py
    A python/grass/utils/download.py
    M scripts/Makefile
    A scripts/g.download.location/Makefile
    A scripts/g.download.location/g.download.location.html
    A scripts/g.download.location/g.download.location.py

  Log Message:
  -----------
  Move g.download.location to core, create grass.utils lib (#1715)

* This moves g.download.location from addons to core to avoid need to install it in every CI.
* g.download.location partially matches functionality of download in Data tab, so the module is important for feature parity.
* Shared code is now in new subpackage of grass, grass.utils (original code is from g.extension which still has its own copy).
* grass.utils uses empty init file. Preferred import is (as of now) importing individual functions from individual modules. 
* Make location name optional for is_location_valid function to support cases when the directory is location.
* Use pathlib in interface (return value) and for better suffix/extension checks.


  Commit: e1514238369c34399e6b98de2e6ac1901b179002
      https://github.com/OSGeo/grass/commit/e1514238369c34399e6b98de2e6ac1901b179002
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-12 (Mon, 12 Jul 2021)

  Changed paths:
    M gui/wxpython/wxgui.py

  Log Message:
  -----------
  wxGUI/splashscreen: use standard one, try to show it before main app, increase timeout (#1718)

* remove testing code


  Commit: 75b5c020eaf232e3bee38b685f5da882f18e878e
      https://github.com/OSGeo/grass/commit/75b5c020eaf232e3bee38b685f5da882f18e878e
  Author: Markus Metz <33666869+metzm at users.noreply.github.com>
  Date:   2021-07-12 (Mon, 12 Jul 2021)

  Changed paths:
    M lib/raster/put_row.c

  Log Message:
  -----------
  lib/raster: add strerror(errno) to write failures (#1722)


  Commit: c0cda13b9e38c0e32f139537eaba8a2a5b6c6888
      https://github.com/OSGeo/grass/commit/c0cda13b9e38c0e32f139537eaba8a2a5b6c6888
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-12 (Mon, 12 Jul 2021)

  Changed paths:
    M general/g.filename/g.filename.html
    M general/g.filename/main.c

  Log Message:
  -----------
  g.filename: Create dir in mapset only when asked (#1687)

The previous behavior is creating the corresponding directory in the current
mapset anytime the module is executed (the intention was only when the path is
in the current mapset according to the doc).

Creating the directory makes sense in general given the intended use of the module
(get path for a file in mapset, possibly in order to create it).
Given that there is a distinction between creation of an element (dir) and file
(even when file is a directory), having the functionality in a module
allows for treating the element case in a special way (not implemented yet, but see #1681).
However, notably, the module is used only in one v6 addon as of now.

However, given the primary function of this module (constructing a path regardless of
its existence), writing operation is unexpected, so the new default is not writing
anything and creation needs to be explicitly requested using a new -c flag
which causes fatal error when the constructed path is not in the current mapset
(asking for creation of something outside of the current mapset is considered a usage error).


  Commit: dd6c6157752821c197f6a7116231ed0753c65582
      https://github.com/OSGeo/grass/commit/dd6c6157752821c197f6a7116231ed0753c65582
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-12 (Mon, 12 Jul 2021)

  Changed paths:
    A .git-blame-ignore-revs
    A doc/git/investigating_history.md

  Log Message:
  -----------
  Add list of commits for git blame to ignore (#1391)

This adds a list of commits which one may want to ignore when doing git blame
(git blame file.c --ignore-revs-file .git-blame-ignore-revs).

Formatting changes of Python (with Black), the initial C formatting commit,
and couple of other commits are included.
Includes Black formatting changes up to 21.5b1 update.

The intention is an ignore list for investigating 'standard' code. It won't work when
an error was introduced by the formatting change (e.g., by fixing some additional lines
manually) or when dealing with CI checks changed in the same commit.

Includes basic documentation of what the file is for.


  Commit: 4daf1023e049b05693a94612a88e0eda26e89047
      https://github.com/OSGeo/grass/commit/4daf1023e049b05693a94612a88e0eda26e89047
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-13 (Tue, 13 Jul 2021)

  Changed paths:
    M python/grass/benchmark/runners.py
    M python/grass/pygrass/modules/interface/module.py

  Log Message:
  -----------
  pygrass: Add update parameters method to Module (#1712)

This adds a new update method which can update the parameters (and generally attributes) of the Module.
The current practice is to use the function call operator to do the update. This seems to go against
the function call operator semantics as the module is not executed unless explicit `run_=True` is passed.
It is also inconsistent with using the function call operator without parameters which runs the module unconditionally.

This PR is not changing the current behavior, but it adds a better way of expressing the same idea. The modification of parameters can now be done using a method called _update_. The name _update_ is based on update function in Python dict since this seems to be a similar case.

The change in doctest and in _grass.benchmark_ (original motivation for this change) shows how the new usage looks like. _grass.benchmark_ update of documentation shows also how clear is the interface with update compared to the very specific original interface, i.e., it is easier to create another class which will behave same way as Module in this context.


  Commit: 23a8e6d786b332b1e3379d373a101f9dc2e76494
      https://github.com/OSGeo/grass/commit/23a8e6d786b332b1e3379d373a101f9dc2e76494
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-13 (Tue, 13 Jul 2021)

  Changed paths:
    M general/g.filename/main.c
    M include/grass/defs/gis.h
    M lib/db/dbmi_base/default_name.c
    M lib/gis/mapset_msc.c
    M lib/gis/open.c
    M lib/gis/tempfile.c
    M lib/manage/do_copy.c
    M lib/raster/close.c
    M lib/raster/gdal.c
    M lib/raster/open.c
    M lib/raster/quant_io.c
    M lib/raster3d/mapset.c
    M lib/vector/Vlib/map.c

  Log Message:
  -----------
  libgis: Distinguish dirs and objects in dir creation (#1681)

The G_make_mapset_element() function is used in several places to create
nested directories such as grid3/some_raster3d_name for particular maps/objects.
However, the original purpose of G_make_mapset_element() seems to be creating directories
(such as fcell, vector) for these objects (objects such as elevation or bridges).

This change introduces new API functions which make distinction between these scenarios.
One function is for what most of the original API calls element that is the directory
for objects of the same type. The other is for the objects themselves.

The three new functions replace two existing ones.
Two replace G_make_mapset_element() covering the two cases and one replaces
G_make_mapset_element_tmp() covering only the common directory case
because there is no direct use of this functionality in the current code.
In the new API, dir_object is for the vector/name case and object_group for the vector and fcell cases.
The vector/name case is a single function call with more parameters rather than two function calls
and replaces the use of %s/%s syntax which is what was used before.

Distinguishing the two scenarios allows the code to handle differently a race
condition during creation when another process creates the same directory
between the failed access call and mkdir call.

In case of directory such as fcell or vector, all we asked
for was that the directory exists at the end of the function call which
will be fulfilled even when mkdir happened in another process.

Same race condition for directories such as cell_misc/raster_map_name or vector/vector_map_name
is actual problem and reporting it sooner rather than later is advantageous in
detecting the issue (assuming that the issue is two processes are trying to create map of the same name).
However, this is not the new behavior for some vector files where %s/%s syntax is still used
to create the parent directories without making any distinctions about the purpose of the directory.
This is the behavior which the code had before 3c374600e3cc7d91c542cab4411fdf40f31ce931
which was intended to imporve error message, but it changed also the the on-creation-race behavior.

The underlying issue seems to be, at least partially, the unclear naming. Element sometimes refers to
the particular file such as fcell/raster_map_name, but in the G_make functions, it refers to the
directory of these files such as fcell. This new API does not use any great names,
but the idea is to refer to element group directories (such as cell) and specific
element files or directories (raster map piece, sub-directory for a specific vector map).
The hope is that in the new API, words directory, object, and type are used in somewhat common way.

Creation of misc elements (cell_misc and group) is now the two-phase creation of an object which is a dir. Function is internal (double underscore after G), used consistently, and documented such that element is the name of the concrete object, so keeping the name as is.

The documentation of functions is based on the current usage and new names although the terminology is not a new official terminology.


  Commit: f75284087cd89e160dffdadce3c1c9c116bad593
      https://github.com/OSGeo/grass/commit/f75284087cd89e160dffdadce3c1c9c116bad593
  Author: Māris Nartišs <maris.gis at gmail.com>
  Date:   2021-07-15 (Thu, 15 Jul 2021)

  Changed paths:
    R .github/workflows/build.sh
    A .github/workflows/build_ubuntu18.sh
    A .github/workflows/build_ubuntu20.sh
    R .github/workflows/ci.yml
    A .github/workflows/ci_ubuntu18.yml
    A .github/workflows/ci_ubuntu20.yml
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/gcc.yml
    M configure
    M configure.in
    M gui/wxpython/xml/toolboxes.xml
    M raster/Makefile
    A raster/r.in.pdal/Makefile
    A raster/r.in.pdal/bin_update.c
    A raster/r.in.pdal/bin_update.h
    A raster/r.in.pdal/bin_write.c
    A raster/r.in.pdal/bin_write.h
    A raster/r.in.pdal/filters.c
    A raster/r.in.pdal/filters.h
    A raster/r.in.pdal/grasslidarfilter.cpp
    A raster/r.in.pdal/grasslidarfilter.h
    A raster/r.in.pdal/grassrasterwriter.h
    A raster/r.in.pdal/info.cpp
    A raster/r.in.pdal/info.h
    A raster/r.in.pdal/lidar.c
    A raster/r.in.pdal/lidar.h
    A raster/r.in.pdal/main.cpp
    A raster/r.in.pdal/point_binning.c
    A raster/r.in.pdal/point_binning.h
    A raster/r.in.pdal/projection.c
    A raster/r.in.pdal/projection.h
    A raster/r.in.pdal/r.in.pdal.html
    A raster/r.in.pdal/r_in_lidar.png
    A raster/r.in.pdal/r_in_lidar_base_raster.png
    A raster/r.in.pdal/r_in_lidar_base_raster.svg
    A raster/r.in.pdal/r_in_lidar_binning_count.png
    A raster/r.in.pdal/r_in_lidar_binning_mean.png
    A raster/r.in.pdal/r_in_lidar_dem_mean3D.jpg
    A raster/r.in.pdal/r_in_lidar_zrange.png
    A raster/r.in.pdal/r_in_lidar_zrange.svg
    A raster/r.in.pdal/rast_segment.c
    A raster/r.in.pdal/rast_segment.h
    A raster/r.in.pdal/string_list.c
    A raster/r.in.pdal/string_list.h
    A raster/r.in.pdal/testsuite/data/points.csv
    A raster/r.in.pdal/testsuite/data/res_base_adj.ascii
    A raster/r.in.pdal/testsuite/data/res_coeff_var_z.ascii
    A raster/r.in.pdal/testsuite/data/res_ev1_z.ascii
    A raster/r.in.pdal/testsuite/data/res_ev2_z.ascii
    A raster/r.in.pdal/testsuite/data/res_ev3_z.ascii
    A raster/r.in.pdal/testsuite/data/res_filter_z_int_source.ascii
    A raster/r.in.pdal/testsuite/data/res_max_z.ascii
    A raster/r.in.pdal/testsuite/data/res_mean_intensity.ascii
    A raster/r.in.pdal/testsuite/data/res_mean_z.ascii
    A raster/r.in.pdal/testsuite/data/res_median_z.ascii
    A raster/r.in.pdal/testsuite/data/res_min_z.ascii
    A raster/r.in.pdal/testsuite/data/res_mode_cellid.ascii
    A raster/r.in.pdal/testsuite/data/res_mode_z.ascii
    A raster/r.in.pdal/testsuite/data/res_n_all.ascii
    A raster/r.in.pdal/testsuite/data/res_n_class_2.ascii
    A raster/r.in.pdal/testsuite/data/res_range_z.ascii
    A raster/r.in.pdal/testsuite/data/res_sidnmax_all.ascii
    A raster/r.in.pdal/testsuite/data/res_sidnmin_all.ascii
    A raster/r.in.pdal/testsuite/data/res_stddev_z.ascii
    A raster/r.in.pdal/testsuite/data/res_sum_z.ascii
    A raster/r.in.pdal/testsuite/data/res_variance_z.ascii
    A raster/r.in.pdal/testsuite/test_r_in_pdal_binning.py
    A raster/r.in.pdal/testsuite/test_r_in_pdal_selection.py
    M raster/rasterintro.html

  Log Message:
  -----------
  r.in.pdal – a PDAL based replacement of r.in.lidar (#1200)

* r.in.pdal: point cloud binning with PDAL

Reads points using PDAL, uses several PDAL filters including reprojection,
filters using custom filter, writes into memory structures.

Reuses r.in.lidar functionality with moving code into PDAL Filter
and Writer classes. Preserves most of r.in.lidar functionality,
but misses several features most notably scanning and auto extent.
Furthermore, it now assumes that the whole output raster fits
into memory. The multi-pass code was removed and it should be
replaced by use of the improved Segment with all-in-memory mode.

In comparison to r.in.lidar, here are more binning options, including eigenvalue statistic option according to suggestion of "Mallet et al. 2011. Relevance assessment of full-waveform lidar data for urban area classification"; Summation is performed with Neumaiers improved Kahan–Babuska algorithm; Variance, stddev and coeff_var with Welfords algorithm.

Testing infrastructure is also updated to better handle minimal version required of PDAL library.

Co-authored-by: Vaclav Petras <wenzeslaus at gmail.com>
Co-authored-by: Māris Nartišs <maris.nartiss at lu.lv>


  Commit: 710343757f8206e4574d071427dd8db531df2b77
      https://github.com/OSGeo/grass/commit/710343757f8206e4574d071427dd8db531df2b77
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-15 (Thu, 15 Jul 2021)

  Changed paths:
    M gui/wxpython/mapswipe/frame.py

  Log Message:
  -----------
  wxGUI/mapswipe: fix saving image to file (#1725)


  Commit: 1e9323e15b73456921f2e11d4d653000fcc6de4e
      https://github.com/OSGeo/grass/commit/1e9323e15b73456921f2e11d4d653000fcc6de4e
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-15 (Thu, 15 Jul 2021)

  Changed paths:
    M lib/cairodriver/text.c

  Log Message:
  -----------
  libcairodriver: enable Cairo with and without Fontconfig (#1697)

Changes with Cairo 1.10, lead to three different situations to account to regarding
Fontconfig support:

- Cairo <1.10 has Fontconfig as a requirement (no CAIRO_HAS_FC_FONT)
- Cairo => 1.10 compiled with Fontconfig (CAIRO_HAS_FC_FONT is defined)
- Cairo => 1.10 compiled without Fontconfig (CAIRO_HAS_FC_FONT is not defined)

This updates to take all cases into consideration.


  Commit: 3e3a8810c8696bd3a17ca34d12599d1ef2ff10cf
      https://github.com/OSGeo/grass/commit/3e3a8810c8696bd3a17ca34d12599d1ef2ff10cf
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-07-19 (Mon, 19 Jul 2021)

  Changed paths:
    M binder/requirements.txt
    M doc/notebooks/jupyter_integration.ipynb
    M python/grass/jupyter/Makefile
    M python/grass/jupyter/__init__.py
    A python/grass/jupyter/interact_display.py

  Log Message:
  -----------
  jupyter: Add class for interactive display of vector maps in Jupyter Notebooks (#1710)

* InteractiveMap class produces interactive folium maps zoomed to the current computational region in Jupyter Notebooks.
* Vectors are passed from GRASS to folium by reprojecting to WGS84 in a temporary Location, exporting as GeoJSON files and importing to folium.


  Commit: 7b09143baf55f9493d1e1564f5c4c06eb3da19e8
      https://github.com/OSGeo/grass/commit/7b09143baf55f9493d1e1564f5c4c06eb3da19e8
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-19 (Mon, 19 Jul 2021)

  Changed paths:
    M python/grass/benchmark/Makefile
    M python/grass/benchmark/__init__.py
    A python/grass/benchmark/__main__.py
    A python/grass/benchmark/app.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
    A python/grass/benchmark/testsuite/test_benchmark_cli.py

  Log Message:
  -----------
  libpython: Support benchmarks of non-parallel runs better (#1733)

* Function for possibly non-parallel repeated runs for writing benchmark scripts.
* Better documentation of non-parallel runs in resolution-changing benchmark.
* CLI for joining JSON result files from multiple benchmarks and plotting from a file.
* CLI which is using argparse with subcommands (subparsers) is extensible and more can be added in the future.


  Commit: 4705cc5b422cbd63abe6c8da0d917ebe957395d5
      https://github.com/OSGeo/grass/commit/4705cc5b422cbd63abe6c8da0d917ebe957395d5
  Author: Stefan Blumentrath <stefan.blumentrath at gmx.de>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M scripts/g.extension/g.extension.py

  Log Message:
  -----------
  g.extension: get branch from version (#1700)

* branch from version

* black

* address review, flake8

* get branch from github API

* handle branch=None

* handle branch=None better

* black/flake8

* cleanup after code review

* update from code review

* try orgs and users

* use repo API

* pass propper API URL

* defaults for get_github_branches, fix l-flag, updates from code review

* abandon github API due to rate limits

* version over default

* use URLError

* use urlparse

* use urlparse

* use get_default_branch for gitlab

* fix keyword issue with urlopen

* global GIT_URL, get_default update


  Commit: e9fe9ac78342be2ede0490ca21baba8debc25792
      https://github.com/OSGeo/grass/commit/e9fe9ac78342be2ede0490ca21baba8debc25792
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M lib/gis/mapset_msc.c

  Log Message:
  -----------
  libgis: add missing return keyword (#1751)


  Commit: 9468a3d2832a9b77e2e8004f48b3f47816d70733
      https://github.com/OSGeo/grass/commit/9468a3d2832a9b77e2e8004f48b3f47816d70733
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    M raster/r.in.pdal/bin_update.c

  Log Message:
  -----------
  r.in.pdal: use fabs for double values (#1752)


  Commit: b77880d09fa2f284b1be4f5d7732aa03d711934f
      https://github.com/OSGeo/grass/commit/b77880d09fa2f284b1be4f5d7732aa03d711934f
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-21 (Wed, 21 Jul 2021)

  Changed paths:
    A .github/workflows/build_ubuntu-18.04.sh
    A .github/workflows/build_ubuntu-20.04.sh
    R .github/workflows/build_ubuntu18.sh
    R .github/workflows/build_ubuntu20.sh
    R .github/workflows/ci_ubuntu18.yml
    R .github/workflows/ci_ubuntu20.yml
    M .github/workflows/codeql-analysis.yml
    M .github/workflows/gcc.yml
    A .github/workflows/ubuntu.yml
    M README.md

  Log Message:
  -----------
  ci: Remove duplication in Ubuntu workflow, keep test job only (#1749)

Remove duplication introduced with PDAL: matrix.os has the name of the the system which is used in the YAML.
This basically returns the CI YAML files state to what it was before the change, but
keeping the addition of a new build script and version-specific naming for the scripts.

Remove the separate Ubuntu build, keep only the test job, rename CI to Ubuntu.
There is no need for a separate build anymore since GCC workflows now do that.

Additionally, fix CentOS label, add empty lines between list items (maybe helpful; allowed by prettier).


  Commit: 1f558868b63208ec92b14bf80c1cf579c5edc8c9
      https://github.com/OSGeo/grass/commit/1f558868b63208ec92b14bf80c1cf579c5edc8c9
  Author: Andrea Giudiceandrea <andreaerdna at libero.it>
  Date:   2021-07-24 (Sat, 24 Jul 2021)

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

  Log Message:
  -----------
  ci: Fix OSGeo4W workflow (#1757)

osgeo4w-setup-x86_64.exe executable was renamed osgeo4w-setup-x86_64-v1.exe


  Commit: 3130a47d7c15080ddfb03ae706e7880ebd8153d6
      https://github.com/OSGeo/grass/commit/3130a47d7c15080ddfb03ae706e7880ebd8153d6
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-24 (Sat, 24 Jul 2021)

  Changed paths:
    M python/grass/benchmark/app.py
    M python/grass/benchmark/plots.py
    M python/grass/benchmark/results.py
    M python/grass/benchmark/testsuite/test_benchmark_cli.py

  Log Message:
  -----------
  libpython: Add plot nprocs to benchmark CLI (#1761)

* Adds new subcommand plot nprocs.
* Uses more general plot title.
* Allows user to select results by label.
* Prefixes can replace labels instead of prefixing them.
* Adds test for plot nprocs (uses nprocs with r.univar, so it is skipped in 8.0).


  Commit: d5012a3deb94cfcb683b0b014b3414e210049404
      https://github.com/OSGeo/grass/commit/d5012a3deb94cfcb683b0b014b3414e210049404
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-25 (Sun, 25 Jul 2021)

  Changed paths:
    M gui/wxpython/core/giface.py
    M gui/wxpython/gcp/mapdisplay.py
    M gui/wxpython/gui_core/mapdisp.py
    M gui/wxpython/iclass/digit.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/iclass/g.gui.iclass.py
    M gui/wxpython/image2target/ii2t_mapdisplay.py
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/lmgr/giface.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapdisp/main.py
    M gui/wxpython/mapdisp/toolbars.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/photo2image/ip2i_mapdisplay.py
    M gui/wxpython/rdigit/g.gui.rdigit.py
    M gui/wxpython/vdigit/g.gui.vdigit.py
    M gui/wxpython/vdigit/main.py
    M gui/wxpython/vdigit/preferences.py
    M gui/wxpython/vdigit/toolbars.py
    M gui/wxpython/vdigit/wxdigit.py

  Log Message:
  -----------
  wxGUI: remove deprecated methods from MapDisplay (#1729)

replace deprecated IsStandalone and GetLayerManager methods by giface, signals


  Commit: 329f02966653abe036799516826cce4675bc9f8d
      https://github.com/OSGeo/grass/commit/329f02966653abe036799516826cce4675bc9f8d
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-25 (Sun, 25 Jul 2021)

  Changed paths:
    M gui/wxpython/lmgr/workspace.py

  Log Message:
  -----------
  wxGUI: fix deleting dict key while iterating (#1763)


  Commit: d03c8cb72e326a4ea421596b778304f7eafd4bea
      https://github.com/OSGeo/grass/commit/d03c8cb72e326a4ea421596b778304f7eafd4bea
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-07-25 (Sun, 25 Jul 2021)

  Changed paths:
    M gui/wxpython/web_services/dialogs.py

  Log Message:
  -----------
  wxGUI: fix layout flag assert in wms dialog (#1764)


  Commit: 5a76c704e938d54b93821bd0ce42ab247f7de812
      https://github.com/OSGeo/grass/commit/5a76c704e938d54b93821bd0ce42ab247f7de812
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-07-27 (Tue, 27 Jul 2021)

  Changed paths:
    M lib/init/grass.html
    M lib/init/variables.html

  Log Message:
  -----------
  init: Update doc for non-interactive jobs (#1753)

- Remove GRASS_BATCH_JOB from the documentation (removed in aeff9f46465154bac239227dc3fc1f2247d24100).
- Non-interactive jobs section now part of the Description section, not environmental variables section.
- Flags section removed, moved to Description sec as Config flag sec (only flag described there).


  Commit: 602a63020f8776b72390e11bb0a52dc87faa8784
      https://github.com/OSGeo/grass/commit/602a63020f8776b72390e11bb0a52dc87faa8784
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-07-27 (Tue, 27 Jul 2021)

  Changed paths:
    M python/grass/gunittest/loader.py

  Log Message:
  -----------
  gunittest: init super() to initialise 'errors' attribute (#1685)

Fix error with message:
"AttributeError: 'GrassTestLoader' object has no attribute 'errors'"


  Commit: 7e30d84ed8992d039a74124b142bc1ffe2374fad
      https://github.com/OSGeo/grass/commit/7e30d84ed8992d039a74124b142bc1ffe2374fad
  Author: Māris Nartišs <maris.gis at gmail.com>
  Date:   2021-07-28 (Wed, 28 Jul 2021)

  Changed paths:
    M lib/gis/file_name.c
    M lib/gis/find_file.c
    M lib/gis/open_misc.c

  Log Message:
  -----------
  Improve G_open|find _misc function documentation (#1760)

Lib GIS: improve documentation for G_file_name_misc, G_find_file_misc and G_fopen_(old|new)_misc


  Commit: e97de6b8d42dca65fc7a7cb56152c56ec18b24bd
      https://github.com/OSGeo/grass/commit/e97de6b8d42dca65fc7a7cb56152c56ec18b24bd
  Author: Aaron Saw Min Sern <58265908+aaronsms at users.noreply.github.com>
  Date:   2021-07-28 (Wed, 28 Jul 2021)

  Changed paths:
    M raster/r.slope.aspect/main.c

  Log Message:
  -----------
  r.slope.aspect: Run indent script on C files (#1765)


  Commit: f12f14579009a47d1aba483ccef1738b613261f2
      https://github.com/OSGeo/grass/commit/f12f14579009a47d1aba483ccef1738b613261f2
  Author: Aaron Saw Min Sern <58265908+aaronsms at users.noreply.github.com>
  Date:   2021-07-28 (Wed, 28 Jul 2021)

  Changed paths:
    M lib/gis/parser_standard_options.c
    M lib/init/variables.html

  Log Message:
  -----------
  parser: Add NPROCS GIS env var to set default for nprocs (#1734)

* This adds an NPROCS GIS environment variable.
* This change allows to globally override the default value (1) with a user defined value for the nprocs option using g.gisenv.
* This follows the existing implementation for memory with MEMORYMB variable (PR #922).
* nprocs option already exists, so this adds only the variable NPROCS and its documentation.


  Commit: 5f65aaa9787bea1bcddd89939bbd15af7c7f93a3
      https://github.com/OSGeo/grass/commit/5f65aaa9787bea1bcddd89939bbd15af7c7f93a3
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-07-28 (Wed, 28 Jul 2021)

  Changed paths:
    M gui/wxpython/gcp/mapdisplay.py
    M gui/wxpython/gui_core/mapdisp.py
    M gui/wxpython/iclass/frame.py
    M gui/wxpython/image2target/ii2t_mapdisplay.py
    M gui/wxpython/mapdisp/frame.py
    M gui/wxpython/mapswipe/frame.py
    M gui/wxpython/photo2image/ip2i_mapdisplay.py

  Log Message:
  -----------
  wxGUI: refactoring: build GUI tools' status bars based on wx.StatusBar widget (#1689)

Builds status bars based on wx.StatusBar for SwipeMapFrame, IClassMapFrame, Image2Target Frame, Photo2Image Frame, and GCP manager MapFrame.
Some general methods related to a status bar and toolbars moved to gui_core class MapFrameBase.


  Commit: fd19e91c70080ff6b84d7e4f17408e1b9d946318
      https://github.com/OSGeo/grass/commit/fd19e91c70080ff6b84d7e4f17408e1b9d946318
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-07-29 (Thu, 29 Jul 2021)

  Changed paths:
    M doc/notebooks/jupyter_integration.ipynb
    M python/grass/jupyter/display.py

  Log Message:
  -----------
  jupyter: Add `__getattr__` shortcut for calling GRASS display modules (#1723)

Shortcut allowing users to call GRASS display modules (d.*) with method .d_*.
Method name must start with d and underscore and it needs to be an executable on path,
other error handling is left to the underlying functions. Example is in the Jupyter integration notebook.


  Commit: 0537933d1c09ab23bfe59e9fb3240735a879cde1
      https://github.com/OSGeo/grass/commit/0537933d1c09ab23bfe59e9fb3240735a879cde1
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-07-30 (Fri, 30 Jul 2021)

  Changed paths:
    M gui/wxpython/main_window/frame.py

  Log Message:
  -----------
  wxGUI: Single-Window GUI: Integrate new map display wx.Panels into a AuiNotebook center pane #1735 (#1732)


  Commit: 98903333209dc8b87e7811f2015663afd0f5976a
      https://github.com/OSGeo/grass/commit/98903333209dc8b87e7811f2015663afd0f5976a
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-07-30 (Fri, 30 Jul 2021)

  Changed paths:
    M doc/notebooks/jupyter_integration.ipynb
    M python/grass/jupyter/display.py

  Log Message:
  -----------
  jupyter: Add temporary files for non-interactive display (#1727)

* Write display-related files to a temporary directory for non-interactive displays in Jupyter Notebooks.
* Named files are not suitable as we need to write to them from different processes.
* The option remains to write the display to a PNG when provided a path and filename.
* Adds renderer parameter to GrassRenderer.


  Commit: 647a5e6b4d2f953546aef3d1d6dc245f0f0c3d45
      https://github.com/OSGeo/grass/commit/647a5e6b4d2f953546aef3d1d6dc245f0f0c3d45
  Author: Huidae Cho <grass4u at gmail.com>
  Date:   2021-08-02 (Mon, 02 Aug 2021)

  Changed paths:
    M raster/r.in.pdal/Makefile

  Log Message:
  -----------
  r.in.pdal: info.cpp also needs PDALCPPFLAGS (#1768)


  Commit: ec2a8f3659ce91f4f235be2088772afd83e90540
      https://github.com/OSGeo/grass/commit/ec2a8f3659ce91f4f235be2088772afd83e90540
  Author: Aaron Saw Min Sern <58265908+aaronsms at users.noreply.github.com>
  Date:   2021-08-05 (Thu, 05 Aug 2021)

  Changed paths:
    M raster/r.patch/do_patch.c
    M raster/r.patch/local_proto.h
    M raster/r.patch/main.c
    M raster/r.patch/support.c
    M raster/r.series/main.c

  Log Message:
  -----------
  r.series and r.patch: Fix indentation (#1772)

Reformat r.series and r.patch with current formatting rules.


  Commit: 465a7a3a6e80d814392d55bbff5a35f7c6d527f8
      https://github.com/OSGeo/grass/commit/465a7a3a6e80d814392d55bbff5a35f7c6d527f8
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-08-05 (Thu, 05 Aug 2021)

  Changed paths:
    M python/grass/grassdb/checks.py
    A python/grass/grassdb/testsuite/test_checks.py

  Log Message:
  -----------
  Fix valid location check, sync with other functions (#1777)

* This fixes the path join code in valid location check, i.e., fixes 94bcea4216cdabcd18dbe5dc4686e38d4d3800de (#1715 ).
* In the new 1-or-3 parameter interface, path to database was dropped when constructing the full path to the location.
* Creating mapsets from command line with -c now works again.
* Other validity and existence checks now use the same 1-or-3 parameter interface (path or db, loc, mapset).
* Tests added for modified functions and for couple of related ones.
* Import order fixed with isort not to have glob mixed GRASS imports as pointed out by Pylint.
* Two missing docstrings added to the is-current-x checks.


  Commit: 5afcea7f95202f9e384d83cb4c0425605abb5669
      https://github.com/OSGeo/grass/commit/5afcea7f95202f9e384d83cb4c0425605abb5669
  Author: Māris Nartišs <maris.gis at gmail.com>
  Date:   2021-08-06 (Fri, 06 Aug 2021)

  Changed paths:
    M .github/workflows/build_centos.sh
    M gui/wxpython/gui_core/forms.py
    M gui/wxpython/gui_core/gselect.py
    M gui/wxpython/iclass/dialogs.py
    M gui/wxpython/iclass/frame.py
    M imagery/i.cca/i.cca.html
    M imagery/i.cca/main.c
    M imagery/i.cluster/global.h
    M imagery/i.cluster/i.cluster.html
    M imagery/i.cluster/main.c
    M imagery/i.cluster/open_files.c
    M imagery/i.gensig/files.h
    M imagery/i.gensig/get_train.c
    M imagery/i.gensig/i.gensig.html
    M imagery/i.gensig/main.c
    M imagery/i.gensig/openfiles.c
    M imagery/i.gensig/parms.h
    M imagery/i.gensig/parse.c
    M imagery/i.gensig/write_sig.c
    M imagery/i.gensigset/get_train.c
    M imagery/i.gensigset/i.gensigset.html
    M imagery/i.gensigset/main.c
    M imagery/i.gensigset/openfiles.c
    M imagery/i.gensigset/parms.h
    M imagery/i.gensigset/parse.c
    M imagery/i.gensigset/subcluster.c
    M imagery/i.gensigset/write_sig.c
    M imagery/i.maxlik/i.maxlik.html
    M imagery/i.maxlik/main.c
    M imagery/i.maxlik/open.c
    M imagery/i.smap/bouman.h
    M imagery/i.smap/i.smap.html
    M imagery/i.smap/main.c
    M imagery/i.smap/openfiles.c
    M imagery/i.smap/parse.c
    R imagery/i.smap/read_sig.c
    M imagery/imageryintro.html
    M include/grass/defs/imagery.h
    M include/grass/imagery.h
    M lib/imagery/find.c
    M lib/imagery/iclass_signatures.c
    A lib/imagery/manage_signatures.c
    M lib/imagery/sig.c
    M lib/imagery/sigfile.c
    M lib/imagery/sigset.c
    M lib/imagery/sigsetfile.c
    A lib/imagery/testsuite/test_imagery_find.py
    A lib/imagery/testsuite/test_imagery_sigfile.py
    A lib/imagery/testsuite/test_imagery_signature_management.py
    A lib/imagery/testsuite/test_imagery_sigsetfile.py

  Log Message:
  -----------
  Integrate band references into portable signature files (#1501)

Imagery: untie signature files from groups

Thus far signature files have been living inside an imagery group. Mapping between individual raster maps of a group and signature values was implicit. This old design made impossible to safely re-use signatures of one imagery group to classify other group(s). The new approach is to have raster band references written inside a signature file to store mapping of signature values to rasters they represent. This change allows to safely use signature file for classification of other imagery groups as long as they contain rasters of the same semantic content (e.g. different image form the same satellite).

* On signature file creation write out raster band references
* On signature file reading compare group and signature file band references for a match
* Signature files now live outside of groups in a dedicated folder with subfolders for each signature file type
* All imagery modules are adjusted to use new signature handling functions


  Commit: 60a89346e5d16a16ba4d1d5c940cd047c2315fff
      https://github.com/OSGeo/grass/commit/60a89346e5d16a16ba4d1d5c940cd047c2315fff
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-08-06 (Fri, 06 Aug 2021)

  Changed paths:
    A .github/codeql/codeql-config.yml
    M .github/workflows/codeql-analysis.yml
    M .gitignore

  Log Message:
  -----------
  ci: Ignore paths in CodeQL (#1778)

* Do not run CodeQL on PR when only HTML, Markdown, or txt is changed.
* Ignore bin and dist dir in the CodeQL analysis.
* Ignore testsuite dirs and PyGRASS in-package tests.
* Add custom CodeQL config to have paths-ignore settings.
* Ignore node_modules dir also in Git.


  Commit: 783f6a60902c67ea200e96484183d8df4eb01fa3
      https://github.com/OSGeo/grass/commit/783f6a60902c67ea200e96484183d8df4eb01fa3
  Author: Stefan Blumentrath <stefan.blumentrath at gmx.de>
  Date:   2021-08-09 (Mon, 09 Aug 2021)

  Changed paths:
    M python/grass/pygrass/vector/geometry.py

  Log Message:
  -----------
  pygrass: call centroid function when buffering areas (#1655)


  Commit: 1b87e6ccb90fe243124cdfd360a4e460801367e4
      https://github.com/OSGeo/grass/commit/1b87e6ccb90fe243124cdfd360a4e460801367e4
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-08-10 (Tue, 10 Aug 2021)

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

  Log Message:
  -----------
  wxGUI: NewDisplay moved to LMToolsToolbar (#1783)


  Commit: 599cdff029ea0d5279c33dd83b4d868c4bd86fb4
      https://github.com/OSGeo/grass/commit/599cdff029ea0d5279c33dd83b4d868c4bd86fb4
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-08-11 (Wed, 11 Aug 2021)

  Changed paths:
    M doc/notebooks/jupyter_integration.ipynb
    M python/grass/jupyter/Makefile
    M python/grass/jupyter/__init__.py
    M python/grass/jupyter/display.py
    M python/grass/jupyter/interact_display.py
    A python/grass/jupyter/utils.py

  Log Message:
  -----------
  jupyter: Raster support for interactive maps with folium (#1769)

* Add temporary WGS84-Pseudo-Mercator location for rasters
* Add `add_raster` method for `InteractiveMap` class
* Added resolution estimator for rasters (for speed, reproject only as many cells as needed)
* Added `save()` method for saving folium map as HTML file
* Change `GrassRenderer` PNG background to transparent
* Added `utils.py' for clarity in the interactive class
* Added rcfile cleanup
* Added temporary directory with `tempfile`
* Update demonstration notebook to include raster example


  Commit: 59b915e672aa92feb50b78fe76f1e71ad7d4f428
      https://github.com/OSGeo/grass/commit/59b915e672aa92feb50b78fe76f1e71ad7d4f428
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-08-12 (Thu, 12 Aug 2021)

  Changed paths:
    M gui/wxpython/main_window/frame.py
    M gui/wxpython/mapdisp/frame.py

  Log Message:
  -----------
  wxGUI/Single-Window: New change page event for AuiNotebook (#1780)


  Commit: 97233d6f3e1cceacbef3e3a4168407cbac82dbc4
      https://github.com/OSGeo/grass/commit/97233d6f3e1cceacbef3e3a4168407cbac82dbc4
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-08-16 (Mon, 16 Aug 2021)

  Changed paths:
    M python/grass/jupyter/display.py
    M python/grass/jupyter/interact_display.py
    A python/grass/jupyter/testsuite/grassrenderer_test.py
    A python/grass/jupyter/testsuite/interactivemap_test.py
    M python/grass/jupyter/utils.py

  Log Message:
  -----------
  jupyter: Add missing mapset, lazy imports, tests for displays (#1739)

* Fix bug in re-projecting: Add mapset parameter to v.proj and r.proj.
* Lazy-import of folium.
* Lazy-import of IPython.
* Separate tests for InteractiveMap and GrassRenderer.
* skipIf decorators in case folium or IPython are missing.


  Commit: 319b6bbcaedd7fbc7d85bf7d23cdcac71d55b8b8
      https://github.com/OSGeo/grass/commit/319b6bbcaedd7fbc7d85bf7d23cdcac71d55b8b8
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-08-17 (Tue, 17 Aug 2021)

  Changed paths:
    M gui/wxpython/main_window/frame.py

  Log Message:
  -----------
  wxGUI/Single-Window: arrange a startup GUI (#1775)

notebook size set according to modules tab


  Commit: abe194dce78adf5f63885a6a09c452fc7ae4f735
      https://github.com/OSGeo/grass/commit/abe194dce78adf5f63885a6a09c452fc7ae4f735
  Author: Markus Metz <33666869+metzm at users.noreply.github.com>
  Date:   2021-08-17 (Tue, 17 Aug 2021)

  Changed paths:
    M lib/raster/raster_metadata.c
    M lib/raster/testsuite/test_raster_metadata.py

  Log Message:
  -----------
  libraster: fix Rast_legal_bandref() (#1796)

relax Rast_legal_bandref(), adjust tests for band names


  Commit: 34235cf8842a8e723eee366cad6c183bd2647c8f
      https://github.com/OSGeo/grass/commit/34235cf8842a8e723eee366cad6c183bd2647c8f
  Author: Veronica Andreo <veroandreo at gmail.com>
  Date:   2021-08-18 (Wed, 18 Aug 2021)

  Changed paths:
    R gui/images/grass_splash.xcf.bz2
    R gui/images/grass_world3-nq8.png
    M gui/images/splash_screen.png
    M gui/images/splash_screen.svg
    R gui/images/startup_banner.png
    R gui/images/startup_banner.svg
    R gui/images/startup_banner.txt
    R gui/images/startup_banner_isis.png

  Log Message:
  -----------
  Add new splash screen and remove unused banner files - fixes #1716 (#1803)

* add new splash screen as decided in #1716

* tweak files to avoid edge artifact

* remove unused banner files

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


  Commit: be4c9ebd23f59ca7c64700f873071a77a3fbeed5
      https://github.com/OSGeo/grass/commit/be4c9ebd23f59ca7c64700f873071a77a3fbeed5
  Author: Linda Kladivova <49241681+lindakladivova at users.noreply.github.com>
  Date:   2021-08-18 (Wed, 18 Aug 2021)

  Changed paths:
    M gui/wxpython/lmgr/frame.py
    M gui/wxpython/main_window/frame.py

  Log Message:
  -----------
  wxGUI: Each layertree has its own display toolbar (#1785)


  Commit: 53a7768cf2517d210239208223ddf6953993dbc8
      https://github.com/OSGeo/grass/commit/53a7768cf2517d210239208223ddf6953993dbc8
  Author: mmacata <mmacata at users.noreply.github.com>
  Date:   2021-08-19 (Thu, 19 Aug 2021)

  Changed paths:
    A .github/workflows/docker.yml
    A docker/alpine/Dockerfile
    R docker/alpine/Dockerfile_alpine
    M docker/alpine/README.md
    A docker/debian/Dockerfile
    R docker/debian/Dockerfile_debian_pdal
    M docker/debian/README.md
    A docker/ubuntu/Dockerfile
    R docker/ubuntu/Dockerfile_ubuntu_pdal
    M docker/ubuntu/README.md

  Log Message:
  -----------
  Add github workflow for docker build and push (#1790)

* init gha for docker

* update tag name

* remove test branch/repository

* enhance information


  Commit: 5e2fd304265e59699e63e0cebd5839df257074c6
      https://github.com/OSGeo/grass/commit/5e2fd304265e59699e63e0cebd5839df257074c6
  Author: nilason <n_larsson at yahoo.com>
  Date:   2021-08-19 (Thu, 19 Aug 2021)

  Changed paths:
    M lib/rst/interp_float/init2d.c
    M lib/rst/interp_float/interpf.h
    M lib/rst/interp_float/point2d.c
    M raster/r.resamp.rst/main.c
    M vector/v.surf.rst/main.c

  Log Message:
  -----------
  rst/interpfl lib: change devi arg to bool (#1271)

Output deviation argument to IL_init_params_2d() and in the
interp_params struct, was defined as FILE*. In practice a char* of the
file path was given to the function in 'v.surf.rst/main.c' and this
pointer's only use was to check whether it was NULL or not. It was used
as a flag. This changes the argument to be a bool.

Addresses a -Wincompatible-pointer-types compiler warning.


  Commit: 953033bb287a103a069a4371812e9e382fd34759
      https://github.com/OSGeo/grass/commit/953033bb287a103a069a4371812e9e382fd34759
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-08-20 (Fri, 20 Aug 2021)

  Changed paths:
    M python/grass/jupyter/__init__.py
    M python/grass/jupyter/display.py
    M python/grass/jupyter/interact_display.py
    M python/grass/jupyter/setup.py

  Log Message:
  -----------
  jupyter: Improve docstrings (#1800)

* Note this is currently experimental (for 8.0).
* Various improvements to the docstrings in grass.jupyter
* Format parameters, **kwargs, notes using Sphinx syntax.


  Commit: ea1c26eadb515304d5c1c362beb4fadbcd34345b
      https://github.com/OSGeo/grass/commit/ea1c26eadb515304d5c1c362beb4fadbcd34345b
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-08-20 (Fri, 20 Aug 2021)

  Changed paths:
    M .flake8
    M .github/workflows/flake8.yml
    R gui/wxpython/.flake8
    R python/grass/.flake8
    R scripts/.flake8
    R temporal/.flake8

  Log Message:
  -----------
  Reduce Flake8 config to one file (#1807)

* All Flake8 configuration is now in one file in the top/root directory.
* CI runs only for the top directory.

Flake8 now needs to be always executed from the top directory or the config file needs to be specified in the command line
in order to be picked up (before, different directories would work differently).


  Commit: cf150b492caf08bd29297f3c9ee96121851cb2a6
      https://github.com/OSGeo/grass/commit/cf150b492caf08bd29297f3c9ee96121851cb2a6
  Author: Vaclav Petras <wenzeslaus at gmail.com>
  Date:   2021-08-21 (Sat, 21 Aug 2021)

  Changed paths:
    M .flake8
    M python/grass/pydispatch/dispatcher.py
    M python/grass/pydispatch/signal.py

  Log Message:
  -----------
   grass.pydispatch: Fix or selectively ignore Flake8 (#1808)

* E722 do not use bare 'except' resolved by using Exception.
* E501 line too long resolved by doctest result simplification.
* Enable Flake8, ignore and document remaining issues


  Commit: 3ad82d314f296652eeef379b9ccde1a3d46aec28
      https://github.com/OSGeo/grass/commit/3ad82d314f296652eeef379b9ccde1a3d46aec28
  Author: Anna Petrasova <kratochanna at gmail.com>
  Date:   2021-08-21 (Sat, 21 Aug 2021)

  Changed paths:
    M gui/wxpython/core/settings.py

  Log Message:
  -----------
  wxGUI: fix settings when item added to settings but it doesn't exist yet locally (#1811)


  Commit: 0663dd6ebf2e3a10000e848ab88ed700fb3361cf
      https://github.com/OSGeo/grass/commit/0663dd6ebf2e3a10000e848ab88ed700fb3361cf
  Author: Caitlin H <69856275+chaedri at users.noreply.github.com>
  Date:   2021-08-22 (Sun, 22 Aug 2021)

  Changed paths:
    A doc/notebooks/basic_example.ipynb
    A doc/notebooks/basic_example_grass_jupyter.ipynb
    R doc/notebooks/example_notebook.ipynb
    A doc/notebooks/grass_jupyter.ipynb
    A doc/notebooks/hydrology.ipynb
    R doc/notebooks/jupyter_integration.ipynb
    A doc/notebooks/solar_potential.ipynb
    A doc/notebooks/viewshed_analysis.ipynb
    M python/grass/jupyter/display.py

  Log Message:
  -----------
  jupyter: Add example notebooks (#1787)

* Jupyter version of the basic example.
* grass.jupyter tutorial and description.
* Three notebooks with analytical topics.
* Add missing font parameter to GrassRenderer.


  Commit: e1756b57d61affa0521ad834590ca2245f9c0e9a
      https://github.com/OSGeo/grass/commit/e1756b57d61affa0521ad834590ca2245f9c0e9a
  Author: Avik Kundu <1828008 at kiit.ac.in>
  Date:   2021-08-22 (Sun, 22 Aug 2021)

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

  Log Message:
  -----------
  r.compress: Reversing logic to fix Failure Reporting, fixes #1802 (#1812)


Compare: https://github.com/OSGeo/grass/compare/0111b11e8b3a%5E...e1756b57d61a


More information about the grass-commit mailing list