Skip to content

GRASS GIS 8.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Jun 15:00

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

Startup, Initialization, and Environment

Translations, Internationalization, and Localization

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

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

New Contributors

Full Changelog: 8.2.0...8.3.0