GRASS GIS 8.3.0
The GRASS GIS 8.3.0 release provides more than 360 improvements and fixes with respect to the release 8.2.0.
Highlights
- graphical user interface: single-window GUI is now the default
- PyWPS export in GRASS GIS modeler
- Improved Jupyter Notebooks integration
- parallelization: more parallel C tools (openMP) and parallel Python tools
- many fixes and improvements in GRASS GIS modules and graphical user interface (see below)
- move translations from Transifex (thanks for your long-term support) to https://weblate.osgeo.org/projects/grass-gis/
- move of docker images from mundialis organization to https://hub.docker.com/r/osgeo/grass-gis/
- update of docker images
- improvement of the automated release creation
- major cleanup of C/C++ code: fix of almost all compiler warnings
- C/C++ code: adoption of Clang-Format, indent most of C code accordingly
- support for "pre-commit" in order to reduce unnecessary runs of the automated checks (GitHub Actions)
- notable improvements in the code checking section (GitHub Actions)
- activate renovatebot to automatically maintain GitHub Actions
- we have nine new contributors!
What's Changed
Modules
- d.text: Use standard options for colors by @wenzeslaus in #2439
- g.extension: Add details to URL error message by @wenzeslaus in #2479
- g.extension: Remove six dependency by @wenzeslaus in #2828
- g.extension: add tests for download from various sources by @ninsbl in #1158
- g.extension: backport of #3051 sparse checkout with history for fast commit log access by @ninsbl in #3060
- g.extension: fix addon SOURCE_URL env var value for official GitHub addons by @tmszi in #2936
- g.extension: fix extracting Git version string by @tmszi in #2929
- g.extension: fix getting addons path if input JSON file doesn't exist by @tmszi in #2717
- g.extension: fix printing extension temporary directory to stderr for downloading extension source code only with -d flag by @tmszi in #2918
- g.extension: refactor/simplify 'GitAdapter' class '_get_addons_list' method by @tmszi in #2925
- g.extension: show fatal message if installed Add-On doesn't exists in the repository by @tmszi in #2916
- g.extension: use copytree from shutil for py >= 3.8 by @ninsbl in #2592
- g.extension: use git sparse-checkout instead of SVN by @ninsbl in #2895
- g.gui.gmodeler: add PyWPS export option by @pesekon2 in #1919
- g.mapsets: Do not include additional empty new line by @tmszi in #2586
- g.proj: Fix -Wembedded-directive compiler warnings by @nilason in #2877
- g.region: fix setting from default region by @petrasovaa in #2397
- g.version: Change link to citations in manual by @veroandreo in #2695
- i.gensig: Add support of original class value in sig file (for i.maxlik) by @marisn in #2425
- i.maxlik: fix crash when classification result is NULL by @marisn in #2724
- i.vi: support soil_line_slope for PVI by @pesekon2 in #2561
- i.vi: update manual after PVI changes by @pesekon2 in #2903
- modules: Add JSON output for db.univar and v.db.univar by @wenzeslaus in #2386
- modules: Always use current major version in VTK outputs (r.out.vtk, r3.out.vtk, v.out.vtk) by @wenzeslaus in #2343
- modules: Replace bare except by Exception in r.unpack and i.in.spotvgt by @ShubhamSwati in #1578
- modules: Sync r.kappa and r.report mask reporting code by @wenzeslaus in #2391
- r.cost, r.walk: Fix integer overflows for percentages for large regions by @metzm in #2842
- r.geomorphon: fix -Wextra compiler warning by @nilason in #2754
- r.horizon: Fix typo in manual by @hellik in #2794
- r.horizon: fix -Wdeprecated-non-prototype warning by @nilason in #2798
- r.horizon: revert back to positive values only by @petrasovaa in #2955
- r.in.pdal: Fix use of PDAL 2.4 deprecated api by @nilason in #2656
- r.in.pdal: fix integer overflow by @nilason in #2844
- r.in.xyz: fix integer overflow by @nilason in #2847
- r.kappa: Add JSON output option by @marisn in #2666
- r.kappa: Add MCC by @marisn in #2680
- r.kappa: Fix failures, garbage output, fallback to category values by @marisn in #2573
- r.mapcalc: fix -Wunused-variable compiler warning by @nilason in #2665
- r.mfilter: check return value of write() by @nilason in #2737
- r.neighbors: fix integer overflow by @metzm in #2853
- r.patch: Fix gathering statistics with multi-threading by @jameshu15869 in #2906
- r.patch: disable parallelization when MASK is active by @petrasovaa in #2829
- r.patch: fix race condition for CELL rasters by @petrasovaa in #2410
- r.profile: Fix typos in the manual by @HuidaeCho in #2831
- r.proj: Fix a typo (lanzcos => lanczos) by @HuidaeCho in #2722
- r.resamp.filter: implement parallelization with OpenMP by @aaronsms in #1759
- r.resamp.interp: implement parallelization with OpenMP by @aaronsms in #1771
- r.stats.quantile: minimalistic testsuite added by @neteler in #2325
- r.stats.zonal: Add screenshots to manual by @neteler in #2577
- r.sun: Incorrect beam radiation for some steep inclined surfaces by @andrewg-cse in #2534
- r.terraflow: use default by @nilason in #2660
- r.univar: Add parallel support by @aaronsms in #1634
- r.univar: print correct cells value for zones in shell script style by @ninsbl in #2959
- r.univar: print only statistics for existing zones by @ninsbl in #2957
- r.viewshed: fix CodeQL warnings by @nilason in #2649
- r3.gwflow: Fix Rast3d_fatal_error() usage by @BadAssassin in #2597
- r3.in.v5d: Fix -Wliteral-range compiler warning by @nilason in #2748
- r3.out.netcdf: Use current major version in history attribute by @wenzeslaus in #2342
- t.rast.algebra: Add time function constants to temporal algebra by @ninsbl in #905
- t.rast.algebra: do not print when debug is off by @petrasovaa in #2926
- t.rast.series: Add 'file_limit' option by @ecodiv in #2429
- t.rast.series: pass n_procs and memory parameters to r.series by @griembauer in #2470
- t.rast.univar, t.rast3d.univar: Add support for zones by @ninsbl in #2588
- t.rast.univar/t.rast3d.univar: add support for multiprocessing by @ninsbl in #2624
- t.register: support mapset name in input file by @ninsbl in #2863
- t.rename: Fix error with SQLDatabaseInterface.update() by @ninsbl in #2886
- t.unregister: add support to unregister maps from other mapsets by @anikaweinmann in #2447
- v.buffer: fix option name in error message by @petrasovaa in #2791
- v.db.addcolumn: Add error message for layer without a table by @wenzeslaus in #2423
- v.extrude: do not require height/height_column if elevation specified by @landam in #2911
- v.in.ascii: Describe example data by @rs-aesi in #2951
- v.in.ogr: Get layer name without definition initialization by @frafra in #2740
- v.in.ogr: handle skipped, not empty columns by @ninsbl in #2658
- v.in.ogr: skip columns with unsupported data type instead of failing to import by @ninsbl in #2630
- v.info: Add vector name to no db connection message by @wenzeslaus in #2434
- v.out.vtk: Output double data type instead of float by @wenzeslaus in #2562
- v.random: do not transfer cat from area if attributes are coppied too by @marisn in #2537
- v.random: use unqualified names in db columns by @marisn in #2838
- v.surf.idw: fix applying mask by @petrasovaa in #2383
- v.surf.rst: fix cross-validation and prevent running it multi-threaded by @petrasovaa in #2643
- v.to.rast: Use verbose for no area message, not warning by @wenzeslaus in #2459
- v.what: new option to select columns by @metzm in #2458
Graphical User Interface
- GUI: call G_gisinit when forms are run standalone (e.g. from parser) by @marisn in #2489
- GUI: wx.ListBox is dynamic – looping over GetSelections() results in removal of all list items by @marisn in #2511
- wxGUI Console: Button reorganization by @lindakladivova in #2746
- wxGUI/console: Adding hint to command prompt by @lindakladivova in #2728
- wxGUI/dbmgr: show warning message dialog if new layer table link exists by @tmszi in #2428
- wxGUI/forms: fix LayersList widget binding check/uncheck event method by @tmszi in #2495
- wxGUI/gconsole: fix saving command param arg with quotation marks to history file by @tmszi in #1072
- wxGUI/gui_core: fix Create or edit image group dialog Select all CheckBox widget for selecting all items by @tmszi in #2514
- wxGUI/gui_core: fix imagery create/edit group dialog deselect all maps by @tmszi in #2465
- wxGUI/gui_core: fix import PostGIS DB raster by @tmszi in #2516
- wxGUI/lmgr: fix launch GCP Manager if not map display is activated by @tmszi in #2464
- wxGUI/lmgr: fix launch map layer menu item '3D view properties' in the single window mode by @tmszi in #2699
- wxGUI/lmgr: hide map layer menu item 'Change opacity level' if 3d view is activated. by @tmszi in #2697
- wxGUI/modules: fix entering raster map file path by the keyboard inside Import Gdal dialog
FileBrowseButton
widget text field by @tmszi in #2702 - wxGUI/modules: fix import PostGIS geometry data by @tmszi in #2490
- wxGUI/modules: fix import SQLite geometry data by @tmszi in #2491
- wxGUI/psmap: Ghostscript HyperlinkDialog is needed by @tmszi in #2441
- wxGUI/psmap: don't set StatusBar widget text when frame is closed by @tmszi in #2487
- wxGUI/psmap: fix rendered preview page zoom by @tmszi in #2444
- wxGUI/psmap: remove loading EPS file via using Ghostscript image rendering on OS MS Windows platform by @tmszi in #2419
- wxGUI/psmap: remove unnecessary HyperlinkDialog widget by @tmszi in #2421
- wxGUI/rlisetup: allow EVT_KILL_FOCUS event handler event processing to continue by @tmszi in #2385
- wxGUI/settings: fix hiding 'Tools' tab for single-window mode by @tmszi in #2460
- wxGUI/vdigit: extend tools keyboard shortcuts by @tmszi in #2526
- wxGUI/vdigit: fix keyboard shortcut for activating point/line tool by @tmszi in #2522
- wxGUI/vselect: fix output fully qualified vector name by @tmszi in #2483
- wxGUI: A test case for multibyte characters (issue #2720) by @marisn in #2721
- wxGUI: Add copy path to mapset item in context menu by @firedragonironfist in #2865
- wxGUI: Add r.path to the Terrain analysis toolbox by @pesekon2 in #2655
- wxGUI: BaseToolbar.OnTool needs to be explicitly defined by @petrasovaa in #2632
- wxGUI: Change caption of Data Catalog to Data by @wenzeslaus in #2833
- wxGUI: Console: Export history of executed commands by @lindakladivova in #2682
- wxGUI: Do not show empty raster label/color fields in query dialog by @petrasovaa in #2387
- wxGUI: Fix Python and wxPython deprecations by @nilason in #2827
- wxGUI: Fix behaviour of top Single-Window GUI toolbars by @lindakladivova in #2568
- wxGUI: Report non-zero return code from modules by @wenzeslaus in #2379
- wxGUI: Save current Single-Window layout to workspace file by @lindakladivova in #2768
- wxGUI: add r.buildvrt module into DevelopRasterMap toolbox by @tmszi in #2621
- wxGUI: add r.in.wms into ImportRasterData toolbox by @tmszi in #2364
- wxGUI: do not crash on localized GUIs by @marisn in #2488
- wxGUI: fix calling SpinCtrl.SetRange with floats with newer Python by @petrasovaa in #2687
- wxGUI: fix display of all single window mode main toolbar tools by @tmszi in #2617
- wxGUI: fix error when starting profile tool by @petrasovaa in #2450
- wxGUI: fix exception when switching to mapset (#2994) by @petrasovaa in #2999
- wxGUI: fix i18n issues in r.li.setup gui by @slichtzzz in #2869
- wxGUI: fix manual page "GUI index" link html file name by @tmszi in #2461
- wxGUI: fix map display combobox option after switching between toolbars by @tmszi in #2625
- wxGUI: fix setting display size from workspace in multi-window mode by @petrasovaa in #2518
- wxGUI: fix setting of user defined window position and size for single window mode by @tmszi in #2619
- wxGUI: fix wxAssertionError when opening tools from console by @petrasovaa in #2934
- wxGUI: implement workspace recent files submenu for single/multiple window mode by @tmszi in #2469
- wxGUI: make single-window default, put it under Appearance by @petrasovaa in #2810
- wxGUI: remove custom v.clean interface to simplify maintenance by @petrasovaa in #2553
- wxGUI: remove initial duplicate point when creating profile or measuring distance by @petrasovaa in #2896
- wxGUI: remove unnecessary key press event handlers by @tmszi in #2528
- wxGUI: remove unused wxwidgets compilation configuration option by @sisco0 in #2593
- wxGUI: set window offset (OS panel) for single/multiple window mode by @tmszi in #2417
Python
- ctypes: Upgrade to ctypesgen version 1.1.1 by @nilason in #2598
- grass.gunittest: Remove deprecated 'U'-mode for open() by @nilason in #2673
- grass.jupyter: Add save PNG method to Map by @wenzeslaus in #2371
- grass.jupyter: Center notebooks around the package by @wenzeslaus in #2408
- grass.jupyter: Support pathlib.Path in TimeSeriesMap.save by @wenzeslaus in #2453
- grass.jupyter: fix bbox reprojection for InteractiveMap by @petrasovaa in #2501
- grass.jupyter: fix resolution handling for InteractiveMap by @petrasovaa in #2376
- grass.py: fix missing parameters in gettext.install() by @pesekon2 in #2539
- grass.pygrass: GridModule clean up temporary mapsets when exception occurs by @tmszi in #2614
- grass.pygrass: Reset back mapset search path after GridModule class instance finish by @tmszi in #2567
- grass.pygrass: Retrieve 3D geometries for 3D vector maps by @landam in #2914
- grass.pygrass: VisibleMapset: fix reading search path by @petrasovaa in #2584
- grass.pygrass: fix no-data rows in at tile borders by @petrasovaa in #2736
- grass.pygrass: replace deprecated numpy.bool with bool by @petrasovaa in #2949
- grass.pygrass: restore removed function and mark it as deprecated by @petrasovaa in #2859
- grass.script: Explain setting of debug level by @neteler in #2313
- grass.script: Fix ignored superquiet (--qq) parameter by @wenzeslaus in #2814
- grass.script: Make setup available without another import by @wenzeslaus in #2451
- grass.script: Remove shutil.which replacement and Python 2/3 unicode by @wenzeslaus in #2366
- grass.script: Revert raw string from #2827 to byte string by @nilason in #2830
- grass.script: find_file: translate more legacy elements by @ninsbl in #2881
- grass.script: replace deprecated use of pipes.quote() by @nilason in #2674
- grass.temporal: Add option for mapset check to AbstractMapDataset by @ninsbl in #2882
- grass.temporal: Do not fail when registering maps with missing range file by @ninsbl in #2382
- grass.temporal: Do not show empty range file message with default logging level by @petrasovaa in #2933
- grass.temporal: Fix typos in doc and comments by @wenzeslaus in #2352
Documentation and Messages
- doc: Add overview README file for notebooks by @neteler in #2416
- doc: Illustration images for r.series, r.neighbors, r.mfilter by @wenzeslaus in #2370
- doc: update grass_database text by @petrasovaa in #2922
- docs: Add a Gitter chat badge to README.md by @gitter-badger in #2540
- docs: Add formatted citation file (CITATION.cff) by @neteler in #2904
- docs: Add thanks to all contributors to main README.md by @neteler in #2947
- docs: Add viewport and page language for better SEO by @neteler in #2591
- docs: Convert REQUIREMENTS file from HTML to Markdown by @echoix in #2784
- docs: Don't show mobile TOC menu JS code on CLI man page by @tmszi in #2639
- docs: Fix date and time format retrieved from the module source dir by @tmszi in #2595
- docs: HTML header charset changed from ISO-8859-1 to UTF-8 by @landam in #2547
- docs: Indent examples with current style by @wenzeslaus in #2500
- docs: Minor cleanup of CHANGES file by @neteler in #2327
- docs: Remove HTMLParseError from build scripts by @wenzeslaus in #2524
- docs: Update submitting guidelines by @nilason in #2797
- docs: Use hamburger menu TOC for module pages on small screens by @tmszi in #2606
- man: Rename REQUIREMENTS.html to REQUIREMENTS.md (rename only) by @echoix in #2729
- man: allow register all addons keywords in main Keywords Index by @tmszi in #2529
- man: use relative path for core modules man HTML page by @tmszi in #2574
- manual: fix firedemo.sh URL by @neteler in #2566
- messages: Address minor spelling error in lib/vector - fixes #2803 by @veroandreo in #2804
Libraries and General Functionality
- TGIS: add spatial filter to STDS by @ninsbl in #2725
- lib/Vlib: Return all intersection points from Vect_line_get_intersections by @marisn in #2358
- lib/cairo: Add cairo status to error message by @wenzeslaus in #2378
- lib/cdhc: remove Cdhc_enormp() by @nilason in #2640
- lib/db: Fix formatting of MySQL error message by @wenzeslaus in #2549
- lib/diglib: fix integer overflow by @metzm in #2735
- lib/display: issue warning on GRASS_NOTIFY command failure by @nilason in #2705
- lib/gis: allow creation of temporary files outside the current mapset by @metzm in #1786
- lib/imagery: fix -Wfortify-source warning by @nilason in #2663
- lib/imagery: fix missing SONAME by @neteler in #2363
- lib/parser: Add missing closing div tag by @wenzeslaus in #2523
- lib/parser: Apply standards to generated script by @wenzeslaus in #2506
- lib/raster3d: fix -Wmisleading-indentation warning by @nilason in #2664
- lib/shapelib: upgrade from upstream by @nilason in #2694
- lib: Increase max size of SQL statements by @wenzeslaus in #1124
- libgis: Fix -Wempty-body warning by @nilason in #2755
- libgpde: fix error handing parameters by @BadAssassin in #2596
- libgproj: Use SRID for PJ object creation when possible by @HuidaeCho in #2394
- libiostream: fix -Werror=type-limits warnings by @nilason in #2799
- libproj: Use PJ_TYPE_BOUND_CRS only if Proj version >= 6 by @HuidaeCho in #2744
- libproj: fix area bbox for PROJ by @metzm in #2467
- libproj: fix longtitude estimation for PJ_AREA by @metzm in #2476
Startup, Initialization, and Environment
- init: Add mapset and CRS to no CRS needed error by @wenzeslaus in #2446
- init: Decrease verbosity of --exec by @wenzeslaus in #2457
- init: Fix missing parameters in gettext.install() by @pesekon2 in #2539
- init: Fix sudo message on Ubuntu by @susi in #2532
- init: Remove duplicate mapset cleaning code, use verbose by @wenzeslaus in #2455
- init: Use VACUUM for large, modified SQLite files only by @wenzeslaus in #2377
- init: print GRASS version to stdout not stderr by @petrasovaa in #2521
- startup: catch errors in build_modules_xml.py, grass.py by @neteler in #2686
Translations, Internationalization, and Localization
- L10n: Avoid using deprecated locale.getdefaultlocale() by @pesekon2 in #2550
- i18N: Translations update from OSGeo Weblate by @osgeoweblate in #2393
- i18N: Translations update from OSGeo Weblate by @osgeoweblate in #2427
- i18N: Translations update from OSGeo Weblate by @osgeoweblate in #2908
- i18N: Translations update from OSGeo Weblate by @osgeoweblate in #2943
- i18N: Translations update from OSGeo Weblate by @osgeoweblate in #2944
- i18N: messages translated using Weblate by @osgeoweblate in #2271
- i18n: Merge Transifex translations by @HuidaeCho in #2942
- i18n: Use 'PRId64' from C99, instead of macro PRI_OFF_T by @nilason in #2807
Windows
- win: nsis installer changed SID of grass82.py by @dnewcomb in #2605
- winGRASS: exclude pdal as compilation dependency by @hellik in #2883
Packaging, Configuration, Portability, and Compilation
- config: Create dynamic library of C++ libraries by @nilason in #2612
- configure: Improve OpenMP detection by @nilason in #2692
- configure: Support for libpng-config by @HuidaeCho in #2679
- configure: fix compilation --with-openmp in MS Windows by @hellik in #2887
- configure: fix un-synced configure file by @nilason in #2691
- configure: remove pdal cppflags by @nilason in #2749
- configure: use pkg-config for PDAL configuration by @nilason in #2851
- make: remove pycache directories with distclean by @nilason in #2354
- packaging: Use GRASS version for non-git builds by @sebastic in #2636
Docker
- Docker: Add a Dockerfile that allows building an image with GUI by @tmszi in #2689
- Docker: Add r.in.pdal test for Alpine image by @anikaweinmann in #2758
- docker: CI update for
set-output
command in alpine Dockerfile by @neteler in #2921 - docker: add C support for g.extension; enable PostgreSQL support in alpine Dockerfile by @neteler in #2909
- docker: cleanup alpine Dockerfile and drop Dockerfile_alpine_latest by @neteler in #2912
- docker: enable PROJ_NETWORK=ON and more cleanup by @neteler in #2822
- docker: reorganize ubuntu_wxgui for docker image creation by @neteler in #2764
- docker: update alpine Docker tag to v3.17 by @neteler in #2821
- docker: update of Debian image by @neteler in #2769
- docker: update of Ubuntu image by @neteler in #2771
- docker: update of Ubuntu image by @neteler in #2820
- docker: update outdated release branch names by @neteler in #2431
- docker: update simple.laz by @neteler in #2841
- docker: update to Ubuntu 22.04, update PDAL and laz-perf by @neteler in #2602
Continuous Integration, Tests, Code Quality, and Checks
- CI(deps): Update github/super-linter action to v5 by @renovate in #2917
- CI(deps): Update jidicula/clang-format-action action to v4.11.0 by @renovate in #2898
- CI: Add concurrency to reduce runs for subsequent pushes to PRs by @nilason in #2893
- CI: Add missing step id to release draft, pre-release, artifacts by @wenzeslaus in #2347
- CI: Add test run for release workflow by @wenzeslaus in #2398
- CI: Clean up OSGeo4W workflow scripts by @HuidaeCho in #2675
- CI: Compile r.example and v.example by @wenzeslaus in #2351
- CI: Remove compiler warning exceptions for GCC by @nilason in #2734
- CI: Run workflows on main and release branches, PRs, not tags by @wenzeslaus in #2348
- CI: Unique artifact name for Ubuntu tests by @wenzeslaus in #2409
- CI: Update docker/build-push-action action to v4 by @renovate in #2796
- CI: Update docker/setup-qemu-action action to v2 by @renovate in #2783
- CI: Update jidicula/clang-format-action action to v4.10.2 by @renovate in #2802
- CI: add -Wextra with a few exceptions by @nilason in #2801
- CI: add CI concurrency by @nilason in #2868
- CI: add ClangFormat check by @nilason in #2716
- CI: add macOS build by @nilason in #2661
- CI: chore(deps): update docker/build-push-action action to v3 by @renovate in #2776
- CI: chore(deps): update docker/login-action action to v2 by @renovate in #2777
- CI: chore(deps): update docker/metadata-action action to v4 by @renovate in #2779
- CI: chore(deps): update docker/setup-buildx-action action to v2 by @renovate in #2780
- CI: chore(deps): update jidicula/clang-format-action action to v4.10.1 by @renovate in #2774
- CI: do not fail macOS on -Wdeprecated-non-prototype by @nilason in #2889
- CI: enable Renovate bot for automated GHA configuration updates by @renovate in #2772
- CI: fix download url for OSGeo4W by @ninsbl in #2384
- CI: improve PR titles of renovate bot by @neteler in #2788
- CI: introduce setup-msys2@v2 setup action by @ninsbl in #2508
- CI: set -Werror on ubuntu test builds by @nilason in #2743
- CI: simplify Windows setup yaml file by @nilason in #2861
- CI: switch to ubuntu-22.04 image to avoid timeout by @neteler in #2730
- CI: update github/super-linter docker tag to v4 by @neteler in #2782
- checks: Add explicit conversion to int in wxpyimgview by @nilason in #2704
- checks: Add missing function prototypes by @nilason in #2727
- checks: Clang-Format, part 1 by @nilason in #2709
- checks: Clang-Format, part 2 by @nilason in #2710
- checks: Clang-Format, part 3 by @nilason in #2711
- checks: Clang-Format, part 4 by @nilason in #2712
- checks: Clang-Format, part 5 by @nilason in #2713
- checks: Clang-Format, part 6 by @nilason in #2714
- checks: Clang-Format, part 7 by @nilason in #2715
- checks: Fix '-Wformat-overflow=' compiler warnings by @nilason in #2700
- checks: Fix '-Wunused-parameter' compiler warnings by @nilason in #2770
- checks: Fix -Wextra-semi compiler warnings by @nilason in #2871
- checks: Fix -Wformat compiler warnings by @nilason in #2878
- checks: Fix -Wformat-pedantic compiler warnings by @nilason in #2872
- checks: Fix -Wgnu-pointer-arith compiler warnings by @nilason in #2875
- checks: Fix -Wimplicit-fallthrough warnings by @nilason in #2760
- checks: Fix -Winvalid-utf8 compiler warning by @nilason in #2873
- checks: Fix -Wmaybe-uninitialized warnings by @nilason in #2653
- checks: Fix -Wmissing-field-initializers warnings by @nilason in #2753
- checks: Fix -Woverflow compiler warnings by @nilason in #2879
- checks: Fix -Wparentheses warning by @nilason in #2652
- checks: Fix -Wpedantic compiler warnings by @nilason in #2876
- checks: Fix -Wsign-compare warnings by @nilason in #2761
- checks: Fix -Wsometimes-uninitialized compiler warnings by @nilason in #2165
- checks: Fix -Wsometimes-uninitialized warning in ximgview by @nilason in #2751
- checks: Fix -Wtype-limits warnings by @nilason in #2756
- checks: Fix -Wuninitialized compiler warnings by @nilason in #2164
- checks: Fix -Wunneeded-internal-declaration warning by @nilason in #2654
- checks: Fix -Wunused-but-set-variable compiler warnings, part 1 by @nilason in #2648
- checks: Fix -Wunused-but-set-variable compiler warnings, part 2 by @nilason in #2650
- checks: Fix -Wunused-but-set-variable warnings by @nilason in #2752
- checks: Fix -Wunused-function compiler warnings by @nilason in #2163
- checks: Fix -Wunused-result compiler warnings by @nilason in #2166
- checks: Fix -Wunused-variable warnings by @nilason in #2651
- checks: Fix Wstringop-overflow and -Warray-parameter compiler warnings by @nilason in #2733
- checks: Fix i.evapo.pm disabled code for smooth indetation by @wenzeslaus in #2579
- checks: Fix some more -Wstrict-prototypes compiler warnings by @nilason in #2870
- checks: Fix trailing whitespace and end-of-file errors by @nilason in #2785
- checks: Fix typos from automated spell checking by @neteler in #2862
- checks: Indent mask-related code by @wenzeslaus in #2389
- checks: Indent most of C code by @wenzeslaus in #2544
- checks: Modify Markdown files to pass Markdownlint by @nilason in #2762
- checks: Replace sprintf() with snprintf() in C++ code by @nilason in #2767
- checks: Suppress -Wempty-translation-unit compiler warnings by @nilason in #2874
- checks: Use of INFINITY and NAN instead of divisions by @neteler in #2681
- checks: pdal: suppress -Wunknown-pragmas warnings from PDAL 2.5.1 code by @nilason in #2846
- checks: pre-commit/ClangFormat: enable formatting all supported files by @nilason in #2787
- checks: pre-commit: add yaml file lint by @nilason in #2790
- ci: add -Wall to GCC C/C++ standards checks by @nilason in #2657
- ci: upgrade to GH Actions running on Node 16 by @nilason in #2634
- tests: Add gunittest helper file to .gitignore by @wenzeslaus in #2445
- tests: Add timeout to pytest by @wenzeslaus in #2499
- tests: Disable test of core.gcmd.recv_some by @wenzeslaus in #2826
Contributing and Management
- contributing: Add .clang-format by @nilason in #2272
- contributing: Add clang-format shell script by @nilason in #2732
- contributing: Add commit of #2785 to git-blame-ignore by @nilason in #2789
- contributing: Add commits for git blame to ignore by @nilason in #2719
- contributing: Add missing addons repo, headings by @wenzeslaus in #2349
- contributing: Add pre-commit hook file by @nilason in #2759
- contributing: Add separate section for OSGeo server uploads by @wenzeslaus in #2405
- contributing: Add step for update to next version number by @wenzeslaus in #2551
- contributing: Add submitting guidelines from GRASS Trac wiki by @nilason in #2765
- contributing: Beautify Open Collective link by @neteler in #2536
- contributing: Create tag message, add more details by @wenzeslaus in #2396
- contributing: Enforce that duplicate files are the same by @wenzeslaus in #2604
- contributing: Generate ChangeLog in release workflow by @wenzeslaus in #2402
- contributing: Generate release notes from git log output or GitHub API by @wenzeslaus in #2328
- contributing: Ignore Jupyter Notebook checkpoint directory in Git by @wenzeslaus in #2435
- contributing: Improve where doc is located by @wenzeslaus in #2535
- contributing: Link Open Collective contribute page by @wenzeslaus in #2939
- contributing: Make release procedure cleaner and more detailed by @wenzeslaus in #2346
- contributing: Remove cd steps, assume utils subdir by @wenzeslaus in #2401
- contributing: Simplify release procedure in howto_release.md by @neteler in #2329
- contributing: Skip non-versioned directories in last commit generator by @wenzeslaus in #2399
- contributing: Update VERSION file using commands by @wenzeslaus in #2331
- contributing: Update to Black 23.1.0 by @wenzeslaus in #2866
- contributing: Updates to infrastructure including grasslxd and jumphost by @neteler in #2375
- contributing: Use GNU indent on MacOS and BSD by @lbartoletti in #2267
- contributing: Use Markdown for install file by @wenzeslaus in #2543
- contributing: Validate Markdown files by @pesekon2 in #2557
- contributing: howto_release.md update OSGeo server names by @neteler in #2374
- contributing: release procedure updates (G83) by @neteler in #3032
Other Changes
- contributors: add missing ORCid by @pesekon2 in #2892
- contributors: edit Ivan Shmakov's email by @veroandreo in #2888
New Contributors
- @gitter-badger made their first contribution in #2540
- @sisco0 made their first contribution in #2593
- @BadAssassin made their first contribution in #2597
- @frafra made their first contribution in #2740
- @echoix made their first contribution in #2729
- @slichtzzz made their first contribution in #2869
- @firedragonironfist made their first contribution in #2865
- @andrewg-cse made their first contribution in #2534
- @jameshu15869 made their first contribution in #2906
Full Changelog: 8.2.0...8.3.0