Changes between Version 6 and Version 7 of Release/8.0.0-News


Ignore:
Timestamp:
Dec 16, 2021, 2:34:54 AM (3 years ago)
Author:
neteler
Comment:

Generated with: gh api repos/OSGeo/grass/releases/generate-notes -f tag_name="8.0.0" -f previous_tag_name=7.8.6 -f target_commitish=releasebranch_8_0 -q .body

Legend:

Unmodified
Added
Removed
Modified
  • Release/8.0.0-News

    v6 v7  
    4545The GRASS GIS 8.0.0 release provides more than [https://github.com/OSGeo/grass/compare/7.8.6...8.0.0 1,300 fixes and improvements] with respect to the release 7.8.6.
    4646
    47 Mention t.upgrade?
     47Mention t.upgrade here?
     48
     49==== New Contributors ====
     50
     51(in alphabetical GitHub user name order)
     52
     53 * @aaronsms made their first contribution in (PR:1514)
     54 * @agiudiceandrea made their first contribution in (PR:1336)
     55 * @aroche made their first contribution in (PR:288)
     56 * @attilaolah made their first contribution in (PR:1376)
     57 * @baharmon made their first contribution in (PR:518)
     58 * @bmwiedemann made their first contribution in (PR:251)
     59 * @byronbest made their first contribution in (PR:113)
     60 * @chaedri made their first contribution in (PR:1603)
     61 * @cwhite911 made their first contribution in (PR:1026)
     62 * @ggardet made their first contribution in (PR:565)
     63 * @griembauer made their first contribution in (PR:983)
     64 * @infrastation made their first contribution in (PR:972)
     65 * @jentjr made their first contribution in (PR:650)
     66 * @jidanni made their first contribution in (PR:208)
     67 * @KolesovDmitry made their first contribution in (PR:361)
     68 * @lbartoletti made their first contribution in (PR:301)
     69 * @lrntct made their first contribution in (PR:734)
     70 * @Lucifergene made their first contribution in (PR:1812)
     71 * @mankoff made their first contribution in (PR:91)
     72 * @MikaelUrankar made their first contribution in (PR:1936)
     73 * @mmacata made their first contribution in (PR:151)
     74 * @mwort made their first contribution in (PR:85)
     75 * @nobeeakon made their first contribution in (PR:1089)
     76 * @ocsmit made their first contribution in (PR:1431)
     77 * @shubhamshah14102 made their first contribution in (PR:1951)
     78 * @ShubhamSwati made their first contribution in (PR:1608)
     79 * @SunveerSingh made their first contribution in (PR:1464)
     80
    4881==== New modules ====
    4982
     
    6093(see also below for closed bugs)
    6194
     95TODO: re-order this section (perhaps some entries need to go elsewhere: major or new modules)
     96
     97 * G80:db.describe: Remove unused tdesc by @HuidaeCho in (PR:1426)
     98 * G80:db.in.ogr: Add gdal_config= and gdal_doo= by @HuidaeCho in (PR:1425)
     99 * G80:db.in.ogr: single quotes to double quotes by @HuidaeCho in (PR:1430)
     100 * G80:db.univar: Ignore rows with NULLs with -e by @wenzeslaus in (PR:1341)
     101 * G80:db.univar: numerical instability can lead to bug in calculations of stdev, etc by @mlennert in (PR:101)
     102 * G80:d.mon: fix get list of running monitors by @tmszi in (PR:1902)
     103 * G80:d.legend: Fix position of units and background by @wenzeslaus in (PR:1075)
     104 * G80:d.mon: Do not clear an existing output file on fatal error by @HuidaeCho in (PR:1452)
     105 * G80:d.mon fixes by @petrasovaa in (PR:125)
     106 * G80:d.polar: fix launch module (py3) and write output EPS file by @tmszi in (PR:1107)
     107 * G80:d.polar: test added by @neteler in (PR:1108)
     108 * G80:d.rast.arrow: Fix negative drainage directions by @HuidaeCho in (PR:777)
     109 * G80:d.rast.edit: fix launch wxGUI (py3/wxPy4) by @tmszi in (PR:1085)
     110 * G80:d.rast.edit: Remove 'wxversion' module by @tmszi in (PR:713)
     111 * G80:d.text: Remove unused variables by @HuidaeCho in (PR:1440)
     112 * G80:m.proj: replace checks in code by parser rules by @wenzeslaus in (PR:106)
     113 * G80:g.copy: Report failed copy using an error message by @wenzeslaus in (PR:1086)
     114 * G80:g.extension: #3902 multiple metadata entries by @anikaweinmann in (PR:138)
     115 * G80:g.extension: add branch option by @ninsbl in (PR:1130)
     116 * G80:g.extension: add '-j' flag which generates JSON file containing the download URLs of the official Addons by @tmszi in (PR:1009)
     117 * G80:g.extension: allow to install extensions from a fork of the official repo by @ninsbl in (PR:1177)
     118 * G80:g.extension: change to python3 by @anikaweinmann in (PR:83)
     119 * G80:g.extension: check if svn program is installed by @neteler in (PR:1145)
     120 * G80:g.extension: distinguish between extensions and modules by @metzm in (PR:582)
     121 * G80:g.extension: dont expand db modul class by @ninsbl in (PR:424)
     122 * G80:g.extension: fix get add-on module name on Win platform  by @tmszi in (PR:1143)
     123 * G80:g.extension: Fix installation from gitlab repositories by @tmszi in (PR:683)
     124 * G80:g.extension: fix module launch with compile '-i' or download '-d' flag by @tmszi in (PR:938)
     125 * G80:g.extension: fix parse PGM variable from Makefile by @tmszi in (PR:1181)
     126 * G80:g.extension: fix 'rate limit exceeded' http error during request json file (add-ons paths) from the official add-ons github server url by @tmszi in (PR:1106)
     127 * G80:g.extension: get branch from version by @ninsbl in (PR:1700)
     128 * G80:g.extension: ignore cruft __pycache__ files by @neteler in (PR:1496)
     129 * G80:g.extension: improve way how to parse module name from makefile by @tmszi in (PR:1142)
     130 * G80:g.extension: match module files on Windows by @ninsbl in (PR:1565)
     131 * G80:g.extension: only warn when non-essential files are missing by @wenzeslaus in (PR:164)
     132 * G80:g.extension: remove branch from Windows-function by @ninsbl in (PR:1151)
     133 * G80:g.extension: workaround to use grass7 addon repo by @neteler in (PR:1612)
     134 * G80:g.filename: Create dir in mapset only when asked by @wenzeslaus in (PR:1687)
     135 * G80:g.gui.iclass: replace removed dist_point_to_segment() by @nilason in (PR:645)
     136 * G80:g.gui.image2target: Fix wxPython Phoenix support by @nilason in (PR:396)
     137 * G80:g.gui.psmap: fixes for Python3 by @petrasovaa in (PR:133)
     138 * G80:g.gui.vdigit Snap selected lines/boundaries tool: Fix checking SnapLine function return value by @tmszi in (PR:506)
     139 * G80:g.parser: Add G_OPT_M_NPROCS by @HuidaeCho in (PR:1652)
     140 * G80:g.proj: fix reading input WKT by @metzm in (PR:1582)
     141 * G80:g.proj: fix segfault issue #1163 by @metzm in (PR:1170)
     142 * G80:g.proj: fix segfault when reading proj info from georef file by @petrasovaa in (PR:599)
     143 * G80:g.region: Add more detail into error messages by @wenzeslaus in (PR:1140)
     144 * G80:g.region: do not update WIND file when not needed by @petrasovaa in (PR:1627)
     145 * G80:g.rename: avoid buffer overflow by @metzm in (PR:1899)
     146 * G80:g.search.modules: without keywords, list all modules by @metzm in (PR:989)
     147 * G80:g.version: Fix February print by @HuidaeCho in (PR:366)
     148 * G80:g.version: strstr -> strchr by @landam in (PR:478)
     149 * G80:i.band: lazy np import by @landam in (PR:127)
     150 * G80:i.group: fit long names to fancy file listing by @nilason in (PR:1818)
     151 * G80:i.ortho.photo: Add optional correction for panorama cameras by @metzm in (PR:401)
     152 * G80:i.pansharpen: Fix encode string by @tmszi in (PR:745)
     153 * G80:i.pansharpen: grass.decode stdout by @ninsbl in (PR:416)
     154 * G80:i.tasscap: support for Worldview-2 added by @neteler in (PR:186)
    62155 * G80:i.vi: fix PVI formula (PR:1985)
     156 * G80:i.vi: fix check input 'red' param arg by @tmszi in (PR:1353)
     157 * G80:i.vi: fix the check for the existence of the 'redchan' variable by @tmszi in (PR:1378)
     158 * G80:i.vi: red band not required and GUI section modified by @YannChemin in (PR:179)
     159 * G80:i.vi: write out FCELL instead of DCELL by @neteler in (PR:236)
     160 * G80:i.zc by @metzm in (PR:142)
     161 * G80:r.blend: Quote map names in r.mapcalc expressions. by @marisn in (PR:277)
     162 * G80:r.carve manual: fix example for stream vector by @neteler in (PR:968)
     163 * G80:r.clump manual: screenshots added by @neteler in (PR:902)
     164 * G80:r.colors: add offset and scale by @metzm in (PR:954)
     165 * G80:r.compress: Reversing logic to fix Failure Reporting by @Lucifergene in (PR:1812)
     166 * G80:r.contour: fix an error message text by @infrastation in (PR:1014)
     167 * G80:r.external: add flag to read min/max from metadata by @metzm in (PR:1856)
     168 * G80:r.external: read "nan" as nan by @metzm in (PR:338)
     169 * G80:r.external: transfer_colormap added by @landam in (PR:337)
     170 * G80:r.external speed-up by @metzm in (PR:1305)
     171 * G80:r.geomorphon: add two more comparison modes by @infrastation in (PR:1096)
     172 * G80:r.geomorphon by @metzm in (PR:192)
     173 * G80:r.geomorphon: Fix an out-of-bounds read w/multires by @infrastation in (PR:995)
     174 * G80:r.geomorphon: fix landform category names by @infrastation in (PR:1421)
     175 * G80:r.geomorphon: Fix shape calculations by @infrastation in (PR:1040)
     176 * G80:r.geomorphon: implement a new "one-off" mode by @infrastation in (PR:1157)
     177 * G80:r.geomorphon misc cleanups by @infrastation in (PR:1045)
     178 * G80:r.geomorphon more cleanups by @infrastation in (PR:1093)
     179 * G80:r.geomorphon: remove multires-specific code by @infrastation in (PR:1570)
     180 * G80:r.geomorphon: Run grass_indent.sh on the source by @infrastation in (PR:1101)
     181 * G80:r.geomorphon: separate input from output by @infrastation in (PR:1052)
     182 * G80:r.geomorphon: Spell "flatness" correctly by @infrastation in (PR:982)
     183 * G80:r.geomorphon: translate a C comment into English by @infrastation in (PR:972)
     184 * G80:r.grow: Correctly handle shrinking of maps without NULL values by @marisn in (PR:343)
     185 * G80:r.grow.distance: add minimum and maximum distance options by @metzm in (PR:1453)
     186 * G80:r.grow.distance: update module description with value raster by @griembauer in (PR:983)
     187 * G80:r.horizon manual: explain negative values by @neteler in (PR:754)
     188 * G80:r.import and v.import: Use PID and node for tmp location by @wenzeslaus in (PR:653)
     189 * G80:r.import: do not reproject when projection matches (bug #547) by @petrasovaa in (PR:659)
     190 * G80:r.import extent=region bug fix by @anikaweinmann in (PR:404)
     191 * G80:r.import: fix calling r.import when use_temp_region is used by @petrasovaa in (PR:676)
     192 * G80:r.import manual: explain missing resampling methods by @neteler in (PR:1557)
     193 * G80:r.import: pass extent to r.in.gdal by @mmacata in (PR:291)
     194 * G80:r.import: use temp region for resolution=value by @wenzeslaus in (PR:197)
     195 * G80:r.in.wms: replace broken URLs with alternative WMS by @neteler in (PR:1635)
     196 * G80:r.in.wms: restore NASA GIBS by @agiudiceandrea in (PR:1756)
     197 * G80:r.in.pdal – a PDAL based replacement of r.in.lidar by @marisn in (PR:1200)
     198 * G80:r.in.pdal: info.cpp also needs PDALCPPFLAGS by @HuidaeCho in (PR:1768)
     199 * G80:r.in.pdal: use fabs for double values by @nilason in (PR:1752)
     200 * G80:r.in.wms BaseCapabilitiesTree: Fix init ElementTree class  by @tmszi in (PR:651)
     201 * G80:r.in.wms: enable CreateOptions for GDAL driver  by @neteler in (PR:1558)
     202 * G80:r.in.wms: Fix Access window out of range in RasterIO() error (raster tile size) by @tmszi in (PR:693)
     203 * G80:r.in.wms: gdal user:password support by @anikaweinmann in (PR:196)
     204 * G80:r.in.wms: message update by @jidanni in (PR:613)
     205 * G80:r.in.wms: write string not bytes to capabilities file by @ninsbl in (PR:195)
     206 * G80:r.kappa: better user msg; fix var by @neteler in (PR:341)
     207 * G80:r.kappa: fix omission typo by @neteler in (PR:433)
     208 * G80:r.kappa: maps[0] is the reference and maps[1] is the classified map by @mlennert in (PR:290)
     209 * G80:r.mapcalc.simple: screenshot added by @neteler in (PR:188)
     210 * G80:r.neighbors: add option for exponential weighting by @ninsbl in (PR:597)
     211 * G80:r.neighbors: add testsuite by @ninsbl in (PR:729)
     212 * G80:r.object.geometry: move from addons by @petrasovaa in (PR:1918)
     213 * G80:r.out.gdal manual: added COG example by @neteler in (PR:1554)
     214 * G80:r.out.gdal / v.out.ogr: fix xy export by @metzm in (PR:1564)
     215 * G80:r.pack/r.unpack: fix pack and unpack VRT raster map with tiled raster maps by @tmszi in (PR:1074)
     216 * G80:r.pack/r.unpack: fix packing/unpacking vrt map if some of tiled rasters doesn't have color table by @tmszi in (PR:1116)
     217 * G80:r.plane manual: example improved by @neteler in (PR:900)
     218 * G80:r.random: Add -s flag, remove -i flag, redo interface by @wenzeslaus in (PR:1054)
     219 * G80:r.random*/r.surf. * G80:manuals: examples and screenshots added by @neteler in (PR:1542)
     220 * G80:r.region: Vect_get_map_box() requires level 2 by @HuidaeCho in (PR:1404)
     221 * G80:r.report: add default units, change to full unit names by @petrasovaa in (PR:1666)
     222 * G80:r.resamp*, v.surf.rst: more resampling keywords added by @neteler in (PR:141)
     223 * G80:r.sim: dynamic allocation of walkers by @petrasovaa in (PR:228)
     224 * G80:r.sim / simlib: use nstack only when walkers output needed by @petrasovaa in (PR:332)
     225 * G80:r.sim.sediment: fix segfault, memory freeing was in wrong place by @petrasovaa in (PR:1094)
     226 * G80:r.sim.water: NC SPM example and other modernizations by @wenzeslaus in (PR:171)
     227 * G80:r.slope.aspect by @metzm in (PR:166)
     228 * G80:r.slope.aspect: Fix directions in comments by @HuidaeCho in (PR:110)
     229 * G80:r.slope.aspect: fix title and color table for -n flag by @petrasovaa in (PR:320)
     230 * G80:r.stats.zonal and v.vect.stats: Improve documentation and interface by @wenzeslaus in (PR:1114)
     231 * G80:r.stream.extract: Fix typos in the manual by @HuidaeCho in (PR:1352)
     232 * G80:r.sun: allow user to set solar constant by @petrasovaa in (PR:482)
     233 * G80:r.sun: fix copy paste error when using both lat and lon raster by @petrasovaa in (PR:92)
     234 * G80:r.sun: Fix parallel computation by @aaronsms in (PR:1514)
     235 * G80:r.terraflow: remove print "Free Memory" to stats file by @nilason in (PR:1306)
     236 * G80:r.topidx: fix bug with steep slopes by @petrasovaa in (PR:193)
     237 * G80:r.topidx: Rewrite Perl scripts in Python 3 by @HuidaeCho in (PR:766)
     238 * G80:r.topmodel reference: Korea => South Korea by @HuidaeCho in (PR:1534)
     239 * G80:r.to.vect: break line when value changes by @byronbest in (PR:113)
     240 * G80:r.univar: support large regions with more than 2 billion cells for extended stats by @metzm in (PR:672)
     241 * G80:r.viewshed: limit viewshed horizontally by specifying two angles by @petrasovaa in (PR:180)
     242 * G80:r.volume manual: example and screenshot added by @neteler in (PR:903)
     243 * G80:r.unpack: sys.stdout.write() cannot print bytes; convert f.read() to str by @HuidaeCho in (PR:577)
     244 * G80:r.watershed: Update the drainage figure by @HuidaeCho in (PR:603)
     245 * G80:r3.out.vtk: replace 'void *' with 'RASTER3D_Map *' for clarity by @nilason in (PR:1291)
     246 * G80:v.category: message fix by @jidanni in (PR:618)
     247 * G80:v.colors: Fix color inversion by @HuidaeCho in (PR:1478)
     248 * G80:v.colors: Implement rules from stdin by @HuidaeCho in (PR:1389)
     249 * G80:v.colors: raster= with use=attr by @HuidaeCho in (PR:1393)
     250 * G80:v.db.addtable: Overwrite newly created cat column (Fix #567) by @HuidaeCho in (PR:571)
     251 * G80:v.db.droprow: remove randomness from testsuite to fix failing tests by @petrasovaa in (PR:1824)
     252 * G80:v.db.droptable: check if map exists by @wenzeslaus in (PR:107)
     253 * G80:v.db.join: Use case insensitive comparison for columns by @wenzeslaus in (PR:1409)
     254 * G80:v.db.select: Add -e flag (escape newlines and backslashes) and -j flag (JSON output) by @HuidaeCho in (PR:476)
     255 * G80:v.db.select: Handle all formats through option, add CSV by @wenzeslaus in (PR:1121)
     256 * G80:v.db.select: Run grass_indent.sh on the source by @wenzeslaus in (PR:1138)
     257 * G80:v.db.update: Use case insensitive comparison for columns by @wenzeslaus in (PR:1413)
     258 * G80:v.decimate: copy tables only when topology is available by @metzm in (PR:331)
     259 * G80:v.digit: fix testing empty input by @petrasovaa in (PR:469)
     260 * G80:v.distance: Linear matrix becomes default, new -s flag for square matrix [API change] by @mlennert in (PR:601)
     261 * G80:v.edit: Add credits for extend tools by @HuidaeCho in (PR:446)
     262 * G80:v.edit: Change -t to -b in the manual by @HuidaeCho in (PR:471)
     263 * G80:v.generalize: remove_small is no longer available by @HuidaeCho in (PR:473)
     264 * G80:v.hull: use standard C boolean type by @nilason in (PR:1567)
     265 * G80:v.import: Add layer to the projection check by @wenzeslaus in (PR:1328)
     266 * G80:v.import by @metzm in (PR:119)
     267 * G80:v.import: Do not reproject if projections match by @marisn in (PR:845)
     268 * G80:v.import: fix gfs file for GDAL version smaller 2.4.1 by GML import by @anikaweinmann in (PR:386)
     269 * G80:v.in.ascii: include values into the message by @wenzeslaus in (PR:104)
     270 * G80:v.in.ascii: user likely expectes number of rows used by @wenzeslaus in (PR:108)
     271 * G80:v.info: fix printing UTM zone (#892) by @metzm in (PR:977)
     272 * G80:v.info manual: note on -c flag added by @neteler in (PR:198)
     273 * G80:v in ogr by @metzm in (PR:226)
     274 * G80:v.in.ogr by @metzm in (PR:227)
     275 * G80:v.in.ogr: fix usage of OGR_G_HasCurveGeometry() by @metzm in (PR:267)
     276 * G80:v.in.pdal: cast enum value to int by @nilason in (PR:1819)
     277 * G80:v.in.pdal: fix filtering by bbox by @petrasovaa in (PR:359)
     278 * G80:v.in.pdal: remove obsolete PCL functionality by @marisn in (PR:1907)
     279 * G80:v.in.wfs: add options to set user and password by @anikaweinmann in (PR:808)
     280 * G80:v.in.wfs manual: fix example by @neteler in (PR:809)
     281 * G80:v.kernel: add output raster history by @petrasovaa in (PR:111)
     282 * G80:v.kernel: fix inconsistent msg by @neteler in (PR:825)
     283 * G80:v.neighbors: add aggegate statistics on attribute colum [NEW FUNCTIONALITY] by @mlennert in (PR:534)
     284 * G80:v.net: fix for Python 3 by @petrasovaa in (PR:279)
     285 * G80:v.net.visibility: fix coordinates parameter by @agiudiceandrea in (PR:1336)
     286 * G80:v.out.ogr: export datetime attributes as datetime by @metzm in (PR:184)
     287 * G80:v.out.ogr: Remove a garbage character from warning by @HuidaeCho in (PR:1886)
     288 * G80:v.overlay by @metzm in (PR:102)
     289 * G80:v.patch: add details into error messages by @wenzeslaus in (PR:103)
     290 * G80:v.patch: Fix line categories when building topology by @HuidaeCho in (PR:374)
     291 * G80:v.patch: fix segmentation fault when DB table absent in one input map by @metzm in (PR:1492)
     292 * G80:v.patch: match map to column (fixes 6616daa) by @wenzeslaus in (PR:109)
     293 * G80:v.perturb: Require either explicit seed or generated seed by @wenzeslaus in (PR:1661)
     294 * G80:v.random: finished test in reference to #704 by @SunveerSingh in (PR:1464)
     295 * G80:v.random: Fix segfault as per bug #1024 by @marisn in (PR:1025)
     296 * G80:v.rast.stats: raise a warning when no categories found in raster map by @pesekon2 in (PR:1258)
     297 * G80:v.report: Add separator= option by @HuidaeCho in (PR:1412)
     298 * G80:v.report: Fix newline issue by @HuidaeCho in (PR:477)
     299 * G80:v.surf.bspline: fix method selection by @neteler in (PR:727)
     300 * G80:v.surf.idw: fix using potentially uninitialized ret value causing bogus warning by @petrasovaa in (PR:1541)
     301 * G80:v.surf.idw: indent with indent script by @petrasovaa in (PR:1540)
     302 * G80:v.surf.idw: less confusing error message by @neteler in (PR:1332)
     303 * G80:v.to.db: Add --overwrite to help and GUI by @HuidaeCho in (PR:807)
     304 * G80:v.to.db history support files by @HuidaeCho in (PR:486)
     305 * G80:v.to.db: Require --overwrite flag to overwrite existing columns by @HuidaeCho in (PR:487)
     306 * G80:v.to.db: Write history by @HuidaeCho in (PR:481)
     307 * G80:v.to.rast by @metzm in (PR:173)
     308 * G80:v.to.rast: fix where selection by @metzm in (PR:259)
     309 * G80:v.to.rast manual: update example to NC dataset by @neteler in (PR:1053)
     310 * G80:v.to.rast: Print the correct option name by @HuidaeCho in (PR:1351)
     311 * G80:v.unpack: sys.stdout.write() cannot print bytes; convert f.read() to str by @HuidaeCho in (PR:577)
     312 * G80:v.vect.stats: Add current mapset in msg, fixes for doc by @wenzeslaus in (PR:1137)
     313 * G80:v.what: Fix script outputs for -d (space after = or : instead of =) by @HuidaeCho in (PR:1584)
     314 * G80:v.what.rast: fix writing of map history by @HuidaeCho in (PR:584)
     315 * G80:v.what.rast: no features message wording, switched to be a warning by @landam in (PR:1323)
     316 * G80:t.info: add list of band names by @metzm in (PR:1862) and (PR:285)
     317 * G80:t.info: clarify 'dataset not found' error message by @landam in (PR:1473)
     318 * G80:t.list, t.rast.list: fix missing band_reference by @neteler in (PR:206)
     319 * G80:t.rast.export: use CWD as crossplatform default directory by @ninsbl in (PR:1817)
     320 * G80:t.register: strip newline from list of maps to avoid error by @petrasovaa in (PR:1295)
     321 * G80:t.remove: new implementation of flags by @lucadelu in (PR:1695)
     322 * G80:t.upgrade: added from addons by @neteler in (PR:1438) and by @landam (PR:1468)
     323 * G80:t.vect.algebra: modified html doc by @nobeeakon in (PR:1089)
     324 * G80:t.vect.export: GPKG support added by @neteler in (PR:129)
     325
     326
     327==== UNSORTED FIXME ====
     328
     329 * Added warning about region not being respected by @CarlosGrohmann in (PR:1857)
     330 * Add locale by @hwbllmnn in (PR:146)
     331 * Add missing add web services layer required package in the Dockerfile by @tmszi in (PR:303)
     332 * Add missing #include <stdlib.h> to display/d.where/main.c by @attilaolah in (PR:1377)
     333 * Add missing Temporal GUI Tools required package in the Dockerfile by @tmszi in (PR:312)
     334 * Add mod(x,y) function to r.mapcalc and r3.mapcalc doc by @agiudiceandrea in (PR:1617)
     335 * Add mswindows/crosscompile.sh by @HuidaeCho in (PR:269)
     336 * Add national land cover dataset color table by @baharmon in (PR:518)
     337 * Add new splash screen as decided in #1716 by @veroandreo in (PR:1803)
     338 * Add numpy and other Python pkgs to CI by @wenzeslaus in (PR:585)
     339 * Add python3-wxgtk deb package in the Dockerfile by @tmszi in (PR:243)
     340 * add python-grass.bat for Python initialization by @landam in (PR:436)
     341 * Add rename and delete of Location and Mapset in Datacatalog by @lindakladivova in (PR:771)
     342 * address digitizer backround map issue #467 by @petrasovaa in (PR:494)
     343 * Add soname on FreeBSD by @lbartoletti in (PR:301)
     344 * Add temporary files for Non-Interactive Display by @chaedri in (PR:1727)
     345 * add text snippet and how to add band references by @veroandreo in (PR:1887)
     346 * Add -Werror to "GCC C/C++ standards check" CI builds by @nilason in (PR:1804)
     347 * Add zsh history change by @nilason in (PR:975)
     348 * Add zsh terminal prompt support by @nilason in (PR:722)
     349 * Allow delete on multiple locations in data catalog by @lindakladivova in (PR:875)
     350 * allow larger maps in r.terraflow by @ninsbl in (PR:265)
     351 * Allow parsing long GISDBASE paths by @attilaolah in (PR:1376)
     352 * allow to overwrite command history by @ninsbl in (PR:272)
     353 * Allow to use a fixed random seed via SOURCE_DATE_EPOCH by @bmwiedemann in (PR:251)
     354 * Band references implementation by @landam in (PR:63)
     355 * Binder button by @chaedri in (PR:1628)
     356 * catalog: first load and display tree with locations for responsiveness, then load everything by @petrasovaa in (PR:1043)
     357 * catalog: use natural sort by @petrasovaa in (PR:1012)
     358 * change alpine docker to alpine version 3.12 by @anikaweinmann in (PR:711)
     359 * Change default color for rendering vectors (gray->blue) [news] by @wenzeslaus in (PR:1166)
     360 * changed natural earth dataset archive from zip to tarball by @baharmon in (PR:867)
     361 * Change is/is not to ==/!= for literal comparisons by @HuidaeCho in (PR:264)
     362 * Change local variable names to lowercase by @HuidaeCho in (PR:273)
     363 * change Python shebang to python3 by @neteler in (PR:75)
     364 * change Python shebang to python3 by @neteler in (PR:82)
     365 * change python to python3 by @neteler in (PR:98)
     366 * change sponsor link to opencollective by @veroandreo in (PR:1865)
     367 * Check for gislock and other issues when deleting/renaming/editing mapset and location in catalog by @lindakladivova in (PR:904)
     368 * Cleanup .swp files too by @sebastic in (PR:97)
     369 * Code quality fixes for grass package (lib/python) by @wenzeslaus in (PR:576)
     370 * config.guess + config.sub: updated by @neteler in (PR:1155)
     371 * configure, config.sub, config.guess: updated by @neteler in (PR:1585)
     372 * configure update by @neteler in (PR:89)
     373 * configure: upgrade to autoconf 2.69 by @nilason in (PR:1845)
     374 * configure: use pkg-config for FreeType 2 by @infrastation in (PR:1719)
     375 * CONTRIBUTING.md: intro added for newcomers by @neteler in (PR:1566)
     376 * copy libs into bin directory after running make distclean by @landam in (PR:172)
     377 * Cross compilation by @HuidaeCho in (PR:257)
     378 * crosscompile enhancements by @HuidaeCho in (PR:1947)
     379 * crosscompile: Fix python.exe search by @HuidaeCho in (PR:1945)
     380 * crosscompile: More enhancements by @HuidaeCho in (PR:1948)
     381 * crosscompile: Sorting env vars more logically by @HuidaeCho in (PR:1954)
     382 * crosscompile: Support for BusyBox for Windows by @HuidaeCho in (PR:1946)
     383 * Cross-platform version of date -Iseconds in configure by @HuidaeCho in (PR:568)
     384 * CRS management by @metzm in (PR:976)
     385 * ctypes: fix Callable for Python 3.10 by @neteler in (PR:1672)
     386 * ctypes: Fix ctypesgencore for Python 3 by @wenzeslaus in (PR:379)
     387 * ctypes: move directory out of python/grass by @nilason in (PR:1898)
     388 * Data catalog: double click on map from different location fails by @lindakladivova in (PR:886)
     389 * datacatalog: fix when no watchdog is present, fix pasting map by @petrasovaa in (PR:1099)
     390 * datum: add support for D_Rauenberg_1983 by @neteler in (PR:1331)
     391 * datum.table: added SIRGAS 1995 by @neteler in (PR:464)
     392 * datum.table: add RGFG95 by @neteler in (PR:813)
     393 * Define MIN() and MAX() correctly and exactly once. by @infrastation in (PR:1795)
     394 * delete ctypesgencore/parser/lextab.py by @neteler in (PR:95)
     395 * delete unused function toolboxes._encode_string() by @pesekon2 in (PR:234)
     396 * demolocation: update by @petrasovaa in (PR:1285)
     397 * disable module check since svn keywords are not maintained by git by @landam in (PR:117)
     398 * Distinguish mapsets by ownership and lock in Data tab by @lindakladivova in (PR:849)
     399 * Docstring improvements by @chaedri in (PR:1800)
     400 * Document r.external issues with r.null by @mankoff in (PR:91)
     401 * Do not install config.status by @bmwiedemann in (PR:263)
     402 * Do not show Flags: in help if there are no flags by @wenzeslaus in (PR:105)
     403 * Drop wx.ALIGN_CENTER_HORIZONTAL, wx.ALIGN_CENTER_VERTICAL and wx.ALIGN_RIGHT when wxEXPAND is used by @ggardet in (PR:565)
     404 * Duplicate entry of "output" keyword by @kikislater in (PR:1001)
     405 * Enable Ctypesgen parsing of non-utf8 files on macOS, fixes trac #3883 by @nilason in (PR:385)
     406 * env.bat.tmpl: Deal with blanks in OSGEO4W_ROOT by @jef-n in (PR:859)
     407 * Error message has appeared in the console tab/cmd after close any module dialog  by @tmszi in (PR:249)
     408 * Example notebooks by @chaedri in (PR:1787)
     409 * Extend keywords for null and mask modules by @wenzeslaus in (PR:239)
     410 * feat(misc): set NPROCS environment variable by @aaronsms in (PR:1734)
     411 * Fedora SPEC file: updated by @neteler in (PR:256)
     412 * fix #3882 by @petrasovaa in (PR:161)
     413 * fix 3D rendering in animation tool by @petrasovaa in (PR:293)
     414 * fix #411: closing Map Display and layer tree from different places by @petrasovaa in (PR:427)
     415 * Fix alpine docker by removing Python3 patch and PDAL by @anikaweinmann in (PR:373)
     416 * Fix an error when exporting csv file from g.gui.tplot by @lbartoletti in (PR:690)
     417 * fix band references assignment  by @landam in (PR:132)
     418 * Fix basic Flake8 warnings in scripts by @wenzeslaus in (PR:539)
     419 * Fix bug introduced in the issue #466 by @tmszi in (PR:500)
     420 * Fix Cairo for Windows by @nilason in (PR:1697)
     421 * Fix Cartographic Composer Add graphic tool (Line/Rectangle), Add Image/North Arrow dialog wx FloatSpin widget size by @tmszi in (PR:310)
     422 * Fix Cartographic Composer wxPython deprecation warning by @tmszi in (PR:309)
     423 * Fix check wxGUI Set vector output format native format dsn by @tmszi in (PR:450)
     424 * Fix compiler warnings, part 10 by @nilason in (PR:1395)
     425 * Fix compiler warnings, part 12 by @nilason in (PR:1406)
     426 * Fix compiler warnings, part 5 (rst/interpfl lib & v.surf.rst) by @nilason in (PR:1271)
     427 * Fix compiler warnings, part 9 by @nilason in (PR:1316)
     428 * Fix copy-to-clipboard key binding for console (trac#3008) by @nilason in (PR:393)
     429 * Fix dbmgr for Python3 by @petrasovaa in (PR:344)
     430 * Fix decoding stderr after render layer fail by @tmszi in (PR:407)
     431 * fix deprecated call warning for FutureCall by @petrasovaa in (PR:294)
     432 * fix deprecated wx.NewId() by @neteler in (PR:150)
     433 * Fix destroy open wxGUI Vector Network Analysis Tool dialog when wxGUI is closed by @tmszi in (PR:432)
     434 * fix double string encoding with EncodeString() by @pesekon2 in (PR:241)
     435 * Fixed gis parser json implementation by @huhabla in (PR:99)
     436 * Fixed the pygrass rpc server to avoid wrong restart warnings by @huhabla in (PR:100)
     437 * Fix failing vector digitizer on mac, trac#3487 by @nilason in (PR:456)
     438 * Fix fixed-width CJK formatting by @HuidaeCho in (PR:523)
     439 * Fix Flake8 errors in temporal modules by @wenzeslaus in (PR:573)
     440 * Fix flake8 pep8 errors by @neteler in (PR:986)
     441 * Fix g.extension -i (compile), -d (download) flag by @tmszi in (PR:496)
     442 * fix g.extension -l ValueError by @landam in (PR:1849)
     443 * fix g.extension test by @petrasovaa in (PR:1364)
     444 * Fix grass-session installation in alpine docker by @mmacata in (PR:516)
     445 * Fix grass-session installation in docker files by @neteler in (PR:517)
     446 * fix init_dbif() returned values better interpretation by @pesekon2 in (PR:1008)
     447 * fix Iterable import in pygrass/vector by @lrntct in (PR:734)
     448 * Fix linker flags on FreeBSD. by @MikaelUrankar in (PR:1936)
     449 * Fix link to startup script manual page by @veroandreo in (PR:1875)
     450 * Fix macOS gui bug for v.proj and r.proj on, addresses #3502 by @nilason in (PR:363)
     451 * Fix missing checkboxes in ListCtrl by @petrasovaa in (PR:204)
     452 * fix newid in psmap by @petrasovaa in (PR:154)
     453 * fix NULL values for very small areas address in v.rast.stats by @ninsbl in (PR:402)
     454 * Fix osgeo4w workflow by @agiudiceandrea in (PR:1757)
     455 * fix position of null cells by @ninsbl in (PR:389)
     456 * fix py3-numpy-dev package name by @neteler in (PR:112)
     457 * Fix r.fillnulls to run in python 3 by @mwort in (PR:85)
     458 * Fix set up sampling and analysis framework wizard relative import by @tmszi in (PR:409)
     459 * Fix show layer inside the layer subgroup by @tmszi in (PR:400)
     460 * Fix some Flake8 for pydispatch by @wenzeslaus in (PR:1808)
     461 * Fix some Flake8 warnings in grass package by @wenzeslaus in (PR:540)
     462 * Fix source code URL when addon path starts with root path by @HuidaeCho in (PR:1645)
     463 * Fix spelling errors. by @sebastic in (PR:1916)
     464 * Fix spelling errors. by @sebastic in (PR:561)
     465 * Fix spelling errors. by @sebastic in (PR:871)
     466 * Fix spelling errors. by @sebastic in (PR:992)
     467 * Fix spelling in comments esp. in GUI code by @wenzeslaus in (PR:1357)
     468 * Fix SyntaxError issues with Python 3. by @sebastic in (PR:549)
     469 * fix the renaming of wx.Event variables by @pesekon2 in (PR:128)
     470 * fix typo in databaseintro.html by @jentjr in (PR:650)
     471 * Fix typo in v.distance fatal msg by @wenzeslaus in (PR:163)
     472 * Fix unable to open file from python editor by @aroche in (PR:288)
     473 * fix usage of vector cats in constraint by @metzm in (PR:262)
     474 * Fix use wxGUI Raster Digitizer input raster map layer temporary region by @tmszi in (PR:470)
     475 * Fix valid location check, sync with other functions by @wenzeslaus in (PR:1777)
     476 * Fix v.in.pdal compilation on mac, #475 by @nilason in (PR:479)
     477 * Fix wxGUI Field calculator wx.ListBox widget choices argument by @tmszi in (PR:460)
     478 * Fix wxGUI g.gui.rlisetup config file open mode for write in text mode by @tmszi in (PR:410)
     479 * Fix wxGUI g.gui.vdigit update available vector maps after the frame is show by @tmszi in (PR:465)
     480 * Fix wxGUI Graphical Modeler About Dialog import by @tmszi in (PR:438)
     481 * Fix wxGUI Graphical Modeler decode string by @tmszi in (PR:441)
     482 * Fix wxGUI Graphical Modeler wx widget deprecation warning by @tmszi in (PR:442)
     483 * Fix wxGUI Histogramming Tool Plot xSpec, ySpec property value by @tmszi in (PR:422)
     484 * Fix wxGUI Histogramming Tool save text settings (font family/style/weight) into the file by @tmszi in (PR:421)
     485 * Fix wxGUI Import vector/raster dialog min width by @tmszi in (PR:492)
     486 * Fix wxGUI Layer Manager add layer into the empty layer group by @tmszi in (PR:413)
     487 * Fix wxGUI Layer Manager add vector map layer Set color table interactively menu item by @tmszi in (PR:472)
     488 * Fix wxGUI Layer Manager close the Layers NoteBook Display FlatNotebook page by @tmszi in (PR:411)
     489 * Fix wxGUI Manage color rules interactively (vector map) frame by @tmszi in (PR:429)
     490 * Fix wxGUI Manage color rules interactively (vector map) number of LoadTable method calls by @tmszi in (PR:444)
     491 * Fix wxGUI Manage color rules interactively (vector map) wx.CollapsiblePane widget layout by @tmszi in (PR:449)
     492 * Fix wxGUI Set vector output format load profile settings by @tmszi in (PR:451)
     493 * Fix wxGUI Set vector output format wx.Choice widget width by @tmszi in (PR:453)
     494 * Fix wxGUI Vector Network Analysis Tool close dialog by @tmszi in (PR:419)
     495 * Fix wxGUI Vector Network Analysis Tool ComboBox widget deprecation warning by @tmszi in (PR:418)
     496 * Fix wxGUI Vector Network Analysis Tool execute analysis by @tmszi in (PR:440)
     497 * Fix wxGUI Vector Network Analysis Tool FlatNotebook page small grey square artifact by @tmszi in (PR:425)
     498 * Fix wxGUI Vector Network Analysis Tool merge dicts by @tmszi in (PR:417)
     499 * Format YAML in GH workflows by @wenzeslaus in (PR:1367)
     500 * full index manual: add missing pages by @neteler in (PR:258)
     501 * GDAL/OGR import: check projection of input data by @metzm in (PR:317)
     502 * GDAL/OGR import: report XY location when comparing projections by @metzm in (PR:368)
     503 * geos-config: Rename --libs to --clibs (configure uses --clibs) by @HuidaeCho in (PR:177)
     504 * __getattr__ shortcut for calling GRASS display modules by @chaedri in (PR:1723)
     505 * get rid of wx.insertStringItem deprecation warnings by @pesekon2 in (PR:120)
     506 * GIS_H_DATE: switch to date -Iseconds format by @landam in (PR:485)
     507 * GIS_H_VERSION: use git hash by @metzm in (PR:325)
     508 * gislib/dox: Refine the command line parsing doc. by @infrastation in (PR:1010)
     509 * GitHub action CI: drop ubuntu-16.04 by @neteler in (PR:1254)
     510 * GitHub Action: Completion of security analysis with CodeQL by @mmacata in (PR:1300)
     511 * gitignore: Add testreport directory by @nilason in (PR:852)
     512 * Git: Un-ignore locale directory by @wenzeslaus in (PR:1512)
     513 * gmodeler: fix python export - main()  by @landam in (PR:336)
     514 * grass7 manual: document --config parameters by @neteler in (PR:532)
     515 * GRASS GIS 8.0 changes by @neteler in (PR:1597)
     516 * GRASS GIS Quickstart by @lindakladivova in (PR:1577)
     517 * grass.jupyter: add property filename to GrassRenderer by @petrasovaa in (PR:1846)
     518 * grass.jupyter: more flexible region handling for rendering by @petrasovaa in (PR:1871)
     519 * grass.py: Evaluate ^export lines only and expand variables in double/non-quoted values by @HuidaeCho in (PR:170)
     520 * grass.py: fix typo in info_text, svn -> dev by @landam in (PR:78)
     521 * grass.py: Match.__getitem__ is new from version 3.6, we need to use g… by @petrasovaa in (PR:253)
     522 * grass.py: used space as delimiter to get GRASS_VERSION_STRING by @ninsbl in (PR:405)
     523 * grass.sh: enforce Python 3 by @neteler in (PR:345)
     524 * grass startup: added support for google-chrome and chromium by @neteler in (PR:201)
     525 * GUI: do not fail on invalid RC file (empty) by @landam in (PR:185)
     526 * GUI: use %d instead of %s for integers by @HuidaeCho in (PR:554)
     527 * gunittest: CalledModuleError constructor accepts module, code, returncode, and errors by @HuidaeCho in (PR:1788)
     528 * gunittest: Deduplicate output decoding code by @wenzeslaus in (PR:1539)
     529 * gunittest docs: fix broken links by @neteler in (PR:934)
     530 * gunittest: Exclude broken tests by @wenzeslaus in (PR:1587)
     531 * gunittest: Fix stdout used instead of stderr by @wenzeslaus in (PR:1707)
     532 * gunittest: init super() to initialise 'errors' attribute by @nilason in (PR:1685)
     533 * gunittest: Non-zero return code on certian percetage of tests failing by @wenzeslaus in (PR:377)
     534 * gunittest: update module interface doctest by @nilason in (PR:1699)
     535 * iclass + iscatt: fixes for Python3 by @petrasovaa in (PR:316)
     536 * Ignore current errors from wxGUI, scripts, temporal by @wenzeslaus in (PR:537)
     537 * Ignore paths in CodeQL by @wenzeslaus in (PR:1778)
     538 * imagery/i.image.mosaic: fix encode, decode string by @tmszi in (PR:1035)
     539 * Imagery lib: Add notes to documentation about I_get_*2() functions by @marisn in (PR:1250)
     540 * Imagery: move signatures to subdirs by @marisn in (PR:1850)
     541 * images2gif: PILLOW_VERSION is obsolete by @petrasovaa in (PR:899)
     542 * Improve G_open|find _misc function documentation by @marisn in (PR:1760)
     543 * infrastructure doc: converted to MD by @neteler in (PR:715)
     544 * infrastructure.md: add latest updates by @neteler in (PR:863)
     545 * init: Add --tmp-mapset option by @wenzeslaus in (PR:313)
     546 * init: Apply Black to the init script by @wenzeslaus in (PR:1359)
     547 * init: Change the history file according to the current mapset for Bash by @wenzeslaus in (PR:930)
     548 * init: Clean up Flake8 config by @wenzeslaus in (PR:1508)
     549 * init: Create demolocation in grass.py, not wxGUI gis_set.py by @wenzeslaus in (PR:1208)
     550 * init: Default to Bash, fallback to sh by @wenzeslaus in (PR:1836)
     551 * init: ensure zsh environment variable SAVEHIST is set by @nilason in (PR:805)
     552 * init: Solve most of Flake8 issues in grass.py by @wenzeslaus in (PR:1536)
     553 * init: Start in last used mapset with --gui like --text by @wenzeslaus in (PR:767)
     554 * init: Start shell only with TTY by @wenzeslaus in (PR:768)
     555 * init: Update doc for non-interactive jobs by @wenzeslaus in (PR:1753)
     556 * init: Update mapset and simplify shell prompts by @wenzeslaus in (PR:923)
     557 * init: Use argparse instead of custom parsing for CLI by @wenzeslaus in (PR:1239)
     558 * install: check lowercased prefix by @nilason in (PR:949)
     559 * Integrate band references into portable signature files by @marisn in (PR:1501)
     560 * Interactive vector maps for Jupyter Notebooks by @chaedri in (PR:1710)
     561 * introduce docker multistage build to alpine image by @mmacata in (PR:276)
     562 * json parser: change + to @ for URLs by @neteler in (PR:175)
     563 * json parser: fix mapsets in tokenizing by @neteler in (PR:1252)
     564 * jupyter: Add virtual framebuffer X server dependency by @wenzeslaus in (PR:1827)
     565 * jupyter: Fix main notebook URL, note grass.jupyter is a preview by @wenzeslaus in (PR:1828)
     566 * Jupyter: Non-interactive display by @chaedri in (PR:1668)
     567 * jupyter: Render 3D images with m.nviz.image by @wenzeslaus in (PR:1831)
     568 * Keep module_items.xml in docker alpine by @mmacata in (PR:330)
     569 * keyword 'geometry' added by @neteler in (PR:940)
     570 * Lazy imports and work without import numpy by @wenzeslaus in (PR:511)
     571 * libsymbol: fix bad argument order by @nilason in (PR:1820)
     572 * Mac: converted compile instructions from RTF to markdown by @neteler in (PR:636)
     573 * macOS/install: do not install system level docs by @nilason in (PR:1909)
     574 * macOS: modernize app bundle info by @nilason in (PR:941)
     575 * macOS: use @rpath as dynamic linker by @nilason in (PR:981)
     576 * Mac ReadMe: stylistic update by @nilason in (PR:639)
     577 * Mac: Update app icon for hi-res support by @nilason in (PR:829)
     578 * make: Add support for Makefile variable DESTDIR by @nilason in (PR:1234)
     579 * Make band references optional to simplify generation of signatures by @marisn in (PR:1866)
     580 * Make Data tab the default in GUI by @lindakladivova in (PR:756)
     581 * make python script in gmodeler using items instead of iteritems by @pesekon2 in (PR:340)
     582 * manual: add 'plot' keyword by @neteler in (PR:1087)
     583 * manual: comment out SVN Date tag by @neteler in (PR:200)
     584 * manual: crosslinks and keywords added by @neteler in (PR:162)
     585 * manual: fix wrong input param in examples by @neteler in (PR:199)
     586 * manual: improved HTML page headers by @neteler in (PR:946)
     587 * manual: PROJ related links update by @neteler in (PR:268)
     588 * manual: put module name at first position by @neteler in (PR:248)
     589 * manual: revert further pages entry addition by @neteler in (PR:271)
     590 * manuals and docs: update broken URLS by @neteler in (PR:1003)
     591 * manual typo fix by @hellik in (PR:1268)
     592 * MapSwipe window has wrong title by @lindakladivova in (PR:1692)
     593 * misc: fix indentation for r.series and r.patch by @aaronsms in (PR:1772)
     594 * misc(r.slope.aspect): reindent C source files by @aaronsms in (PR:1765)
     595 * Misleading lock symbol icon in the in the Data tab toolbar by @lindakladivova in (PR:870)
     596 * mkhtml: enable path setting for footer html pages (topics.html...) on add-on manual page by @tmszi in (PR:1122)
     597 * more proofreading for r.geomorphon by @infrastation in (PR:991)
     598 * Move g.download.location to core, create grass.utils lib by @wenzeslaus in (PR:1715)
     599 * Move grass package content to directory named grass by @wenzeslaus in (PR:1356)
     600 * Move headers from include to include/grass by @wenzeslaus in (PR:1350)
     601 * mswindows: crosscompile under WSL by @HuidaeCho in (PR:1940)
     602 * mswindows: Update crosscompile.sh to 8.0 by @HuidaeCho in (PR:1876)
     603 * mswindows: Update crosscompile.sh to the master branch of MXE by @HuidaeCho in (PR:1939)
     604 * NC full sample dataset: new URL by @neteler in (PR:1463)
     605 * Needed version updates for GRASS GIS 7.9 by @neteler in (PR:77)
     606 * New color table: percentage of forest cover by @neteler in (PR:894)
     607 * New Python subpackage for working with locations and mapsets by @wenzeslaus in (PR:837)
     608 * Number of bands relevant only to strds by @landam in (PR:1447)
     609 * NVIZ: Fix a typo by @HuidaeCho in (PR:553)
     610 * NVIZ: Fix a typo (cont'ed) by @neteler in (PR:557)
     611 * open_stds: check for unknown band references by @landam in (PR:1844)
     612 * OSGeo4W BAT files review by @landam in (PR:437)
     613 * OSGeo4W workflow for GitHub Actions by @HuidaeCho in (PR:692)
     614 * os.newline should not be used when writing in text mode by @petrasovaa in (PR:387)
     615 * perlcritic: fix perlcritic errors by @ocsmit in (PR:1431)
     616 * postgres: Assign 1000 to TEXT field length by @HuidaeCho in (PR:412)
     617 * PS Driver: Write data to a tempfile before closing by @HuidaeCho in (PR:1451)
     618 * pygrass: Add update parameters method to Module by @wenzeslaus in (PR:1712)
     619 * pygrass: call centroid function when buffering areas by @ninsbl in (PR:1655)
     620 * pygrass: remove failing test as not useful by @petrasovaa in (PR:1411)
     621 * pygrass: Remove usage of bare except by @wenzeslaus in (PR:1544)
     622 * python gunittest: Add a new assertion for raster equivalence by @marisn in (PR:1148)
     623 * pythonlib: add env variables to all relevant functions in script lib by @petrasovaa in (PR:677)
     624 * pythonlib: allow wkt to be also string in create_location() by @petrasovaa in (PR:723)
     625 * pythonlib: Enable ambiguous variable name warning by @wenzeslaus in (PR:1538)
     626 * pythonlib: Enable bare except warning by @wenzeslaus in (PR:1549)
     627 * pythonlib: Enable escape sequence warning by @wenzeslaus in (PR:1529)
     628 * pythonlib: Enable unused var warning by @wenzeslaus in (PR:1509)
     629 * pythonlib: fix pygrass Module tests by making it picklable by @petrasovaa in (PR:1407)
     630 * pythonlib: Fix stylistic Flake8 warnings by @wenzeslaus in (PR:1486)
     631 * pythonlib/grassdb: on Windows we can't simply get file owner by @petrasovaa in (PR:945)
     632 * pythonlib/grassdb: replace unix only function for file owner name by @petrasovaa in (PR:896)
     633 * pythonlib: Reduce usage of bare except in script by @wenzeslaus in (PR:1543)
     634 * pythonlib: Remove star imports by @wenzeslaus in (PR:1546)
     635 * pythonlib: return None from run_command() by @wenzeslaus in (PR:165)
     636 * pythonlib: safer mechanism for switching dbs in create_location by @petrasovaa in (PR:804)
     637 * pythonlib: Use more specific language in CalledModuleError by @wenzeslaus in (PR:1525)
     638 * python scripting lib: fix run_command(error='status') not returning 0 by @petrasovaa in (PR:1839)
     639 * python/script/raster.py: Fix encode string by @tmszi in (PR:738)
     640 * Python scripts: remove UTF-8 coding line by @neteler in (PR:1461)
     641 * python verbosity docs: minor layout fixes by @neteler in (PR:1004)
     642 * Quick-fix for d.correlate.py by @NikosAlexandris in (PR:1149)
     643 * quick fix of g.extension on MS Windows by @landam in (PR:176)
     644 * rasterlib: Explain missing header file in get_cellhd by @wenzeslaus in (PR:933)
     645 * raster module memory: set new value globally by @neteler in (PR:922)
     646 * Raster Support for Interactive Jupyter maps with folium by @chaedri in (PR:1769)
     647 * Rast_log_colors: Another attempt to address r.colors -g/-a (#1480) by @HuidaeCho in (PR:1937)
     648 * Readd the ubuntu based Dockerfile by @hwbllmnn in (PR:143)
     649 * README: more CI status badges added by @neteler in (PR:764)
     650 * README refactoring by @pesekon2 in (PR:231)
     651 * Reduce Flake8 config to one file by @wenzeslaus in (PR:1807)
     652 * Reference CONTRIBUTING.md file in README by @wenzeslaus in (PR:283)
     653 * Reflect grassdb changes in catalog  by @petrasovaa in (PR:994)
     654 * Refs by S Gebbert added by @neteler in (PR:121)
     655 * register.py: allow registering from io objects by @ninsbl in (PR:1929)
     656 * Remove colouring of standard buttons by @nilason in (PR:744)
     657 * remove deprecated py 'PIL' module 'fromstring', 'tostring' method call by @tmszi in (PR:1223)
     658 * remove @# from GRASS_VERSION_STRING by @landam in (PR:528)
     659 * remove now unneeded Python 3 shebang trick by @neteler in (PR:90)
     660 * Remove __pycache__ directories before release. by @sebastic in (PR:182)
     661 * remove python3-3.8.1 patch by @mmacata in (PR:383)
     662 * Remove redundant encode string call in the error message string interpolation by @tmszi in (PR:308)
     663 * Removing map layer crashes wxGUI (trac.osgeo.org/grass/ticket/3607) by @petrasovaa in (PR:462)
     664 * Rename the master branch to main by @wenzeslaus in (PR:1806)
     665 * Rename tools directory to utils by @wenzeslaus in (PR:1348)
     666 * render: Fix .legrow file existence check by @tmszi in (PR:691)
     667 * replace deprecated inspect function by @petrasovaa in (PR:334)
     668 * replace obsolete time.clock() in Python 3.3 by @petrasovaa in (PR:244)
     669 * REQUIREMENTS.html: numerous URLs updated by @neteler in (PR:202)
     670 * scripts: Enable ambiguous variable name warning by @wenzeslaus in (PR:1515)
     671 * scripts: Enable bare except warning by @wenzeslaus in (PR:1517)
     672 * scripts: Enable import not at top warning by @wenzeslaus in (PR:1510)
     673 * scripts: Fix stylistic Flake8 warnings by @wenzeslaus in (PR:1487)
     674 * scripts: Remove unused vars or ignore in Flake8 by @wenzeslaus in (PR:1498)
     675 * scripts/r.plane/r.plane.py:fixed bare except by @ShubhamSwati in (PR:1608)
     676 * Session initiations functions for Jupyter Notebooks by @chaedri in (PR:1629)
     677 * Set locale to euc-kr only for Windows by @HuidaeCho in (PR:520)
     678 * several fixes related to font dialog by @petrasovaa in (PR:292)
     679 * simplify GRASS_EXECUTABLE handling in package.sh by @landam in (PR:445)
     680 * Simplify raster band reference management by @marisn in (PR:1272)
     681 * Small code fixes for d.legend and Cairo_Text by @wenzeslaus in (PR:1076)
     682 * Sort file lists by @bmwiedemann in (PR:247)
     683 * standardization of Markdown files by @pesekon2 in (PR:346)
     684 * Start in a demo/startup location by @lindakladivova in (PR:868)
     685 * Startup: Avoid a race condition by @HuidaeCho in (PR:548)
     686 * Stop ignoring .git folder for docker builds by @mmacata in (PR:1182)
     687 * Store list of databases in settings by @lindakladivova in (PR:858)
     688 * Support Korean (ko) language settings from g.gui for Windows by @HuidaeCho in (PR:519)
     689 * svn refs changed to git by @neteler in (PR:93)
     690 * Switch alpine docker to alpine 3.11 and compiled pdal by @mmacata in (PR:399)
     691 * switch environment: also change mapset by @metzm in (PR:286)
     692 * Switch to another mapset when in use (aka force remove lock) by @lindakladivova in (PR:906)
     693 * Switch to debian 10.1 as dockerfile base image (master) by @hwbllmnn in (PR:140)
     694 * Sync Korean translations by @HuidaeCho in (PR:556)
     695 * tcsh prompt: fix update with change of mapset by @nilason in (PR:765)
     696 * temporal: fix TGIS broken in 61b8d40 (#306) by @petrasovaa in (PR:504)
     697 * Test Module for Non-interactive display in Jupyter Notebooks by @chaedri in (PR:1739)
     698 * tests: Output more text and sort files by @wenzeslaus in (PR:1362)
     699 * testsuite example: info updated by @neteler in (PR:831)
     700 * testsuite: fix g.bands and i.band test by @neteler in (PR:1345)
     701 * testsuite: fix libgis/parser_json.c and r.fillnull by @neteler in (PR:1346)
     702 * testsuite: minor fixes by @neteler in (PR:855)
     703 * testsuite: r.blend quoting test by @neteler in (PR:347)
     704 * tools/mkhtml: fix src and src commits url in html addon module manual by @tmszi in (PR:987)
     705 * tools/mkhtml.py: fix keywords html pages paths if add-on html man page strored on the server by @tmszi in (PR:1165)
     706 * totools/mkhtml.py: fix replacing keywords (no keywords) html pages path if add-on html man page stored on the server by @tmszi in (PR:1172)
     707 * tplot/frame.py: fixes for Matplotlib 3.3+ by @neteler in (PR:1191)
     708 * Update db.drivers.html by @jidanni in (PR:212)
     709 * Update docs (#360) by @KolesovDmitry in (PR:361)
     710 * Updated translators.csv file by @lucadelu in (PR:1249)
     711 * Update from proj.4 to proj (g.version) by @kikislater in (PR:55)
     712 * Update g.access.html by @jidanni in (PR:209)
     713 * Update g.gisenv.html by @jidanni in (PR:219)
     714 * Update g.manual.html by @jidanni in (PR:207)
     715 * Update grass7.html by @jidanni in (PR:220)
     716 * Update helptext.html by @jidanni in (PR:614)
     717 * update how_release based on 7.8.6RC3 experience by @landam in (PR:1913)
     718 * Update i.eb.hsebal01.html by @jidanni in (PR:213)
     719 * Update i.evapo.pm.html by @jidanni in (PR:214)
     720 * Update i.smap.html by @jidanni in (PR:215)
     721 * Update Location Wizard: First page by @lindakladivova in (PR:493)
     722 * Update of travis configuration for Python 3 by @neteler in (PR:115)
     723 * Update PO files by @HuidaeCho in (PR:1361)
     724 * update Python 3 dependencies by @neteler in (PR:79)
     725 * Update r3.out.bin.html by @jidanni in (PR:216)
     726 * Update reference from proj.4 or proj4 to proj (g.version) by @kikislater in (PR:54)
     727 * Update r.in.gdal.html by @jidanni in (PR:621)
     728 * Update r.in.wms.py by @jidanni in (PR:616)
     729 * Update r.mask.html by @ecodiv in (PR:1861)
     730 * Update r.region.html by @jidanni in (PR:600)
     731 * Update r.series.html by @ecodiv in (PR:1246)
     732 * Updates made in the README.md file by @shubhamshah14102 in (PR:1951)
     733 * Update to Black 21.5b1 by @wenzeslaus in (PR:1605)
     734 * Update to upstream ctypesgen version by @nilason in (PR:1651)
     735 * update usage of map() function to Python 3 by @pesekon2 in (PR:114)
     736 * Update variables.html by @jidanni in (PR:218)
     737 * Update variables.html by @jidanni in (PR:222)
     738 * Update v.category.html by @jidanni in (PR:607)
     739 * Update v.db.addtable.html by @jidanni in (PR:211)
     740 * Update vectorintro.html by @jidanni in (PR:224)
     741 * Update v.edit.html by @jidanni in (PR:208)
     742 * Update v.edit.html by @jidanni in (PR:223)
     743 * Update v.extrude.html by @jidanni in (PR:210)
     744 * Update v.import.html by @jidanni in (PR:221)
     745 * Update v.lrs.label.html by @jidanni in (PR:217)
     746 * update wingrass installer to osgeo4w v2 + drop 32bit by @landam in (PR:1904)
     747 * Upgrade tgis db by @landam in (PR:306)
     748 * Use ${CC} instead of "cc" for linking on mac by @nilason in (PR:611)
     749 * use copy instead of git clone in Dockerfiles by @mmacata in (PR:151)
     750 * Use gs as alias for grass.script in doc by @wenzeslaus in (PR:282)
     751 * use proj 6.2.1 in apline Dockerfile by @mmacata in (PR:255)
     752 * Use .wxgui_history as history file for the gui (#962) by @susi in (PR:1917)
     753 * Using JSON for GUI settings by @petrasovaa in (PR:1015)
     754 * utils: Small fixes of Bash util scripts by @wenzeslaus in (PR:1363)
    63755
    64756==== GUI: Improvements in the Graphical User Interface ====
    65757
    66  * entire rewrite of GRASS GIS startup (PR:XXX)
    67  * wxGUI/...
     758 * **NEW: entire rewrite of GRASS GIS startup**
     759 * Added global dataset to download location in startup by @baharmon in (PR:544)
     760 * wxgui about: add link to github by @landam in (PR:131)
     761 * wxGUI/About: remove hardcoded white background for dark mode by @petrasovaa in (PR:1215)
     762 * wxGUI: add dark mode support for command output by @nilason in (PR:759)
     763 * wxGUI: add dark mode support for vector attribute data table by @nilason in (PR:793)
     764 * wxGUI: added install notranslation function by @marisn in (PR:156)
     765 * wxGUI: add env parameter in gcmd.py RunCommand by @petrasovaa in (PR:1113)
     766 * wxGUI: add missing giface, fixes error when emitting grassdbChanged signal by @petrasovaa in (PR:1139)
     767 * wxGUI: Add missing import from grass.app by @wenzeslaus in (PR:1358)
     768 * wxGUI: Add missing title params to frames by @wenzeslaus in (PR:1301)
     769 * wxGUI: Add new icons to data catalog for actions avaliable in context menu by @lindakladivova in (PR:811)
     770 * wxGUI: Add new icons to datacatalog for actions avaliable in context menu (continue) by @lindakladivova in (PR:830)
     771 * wxGUI: Add new location action to database node in Data tab by @lindakladivova in (PR:790)
     772 * wxGUI: Add new mapset action to data catalog by @lindakladivova in (PR:731)
     773 * wxGUI: address flake8 undefined variable by @petrasovaa in (PR:1325)
     774 * wxGUI Add web service layer: Fix dialog layout by @tmszi in (PR:627)
     775 * wxGUI AddWSDialog: Fix render WMTS layer with OGC:CRS84 coor system by @tmszi in (PR:674)
     776 * wxGUI AddWSDialog: Fix setting output layer name, after selecting another layer by @tmszi in (PR:667)
     777 * wxGUI AddWSDialog RenderWMSMgr: Fix render WMS jpeg source format by @tmszi in (PR:640)
     778 * wxGUI: Allow delete on multiple mapsets in data catalog by @lindakladivova in (PR:795)
     779 * wxGUI: always switch when creating new location/mapset by @petrasovaa in (PR:1229)
     780 * wxGUI: An action should be required before modifying other mapsets by @lindakladivova in (PR:848)
     781 * wxGUI animation: allow to use saved region instead of comp region by @petrasovaa in (PR:656)
     782 * wxGUI/animation: fix 3D animation by @petrasovaa in (PR:1551)
     783 * wxGUI/animation: fix deprecation warnings by @petrasovaa in (PR:149)
     784 * wxGUI/animation: fix https://trac.osgeo.org/grass/ticket/3894 and htt… by @petrasovaa in (PR:116)
     785 * wxGUI/animation: fix 'RuntimeError: dictionary changed size during iteration' by @tmszi in (PR:908)
     786 * wxGUI/animation: fix validation of extension of exported file by @tmszi in (PR:907)
     787 * wxGUI/animation: fix wxPyDeprecationWarning by @tmszi in (PR:854)
     788 * wxGUI/animation: fix wxPyDeprecationWarning by @tmszi in (PR:910)
     789 * wxGUI/animation: show error and proceed with temporal database mismatch by @petrasovaa in (PR:950)
     790 * wxGUI: Ask user about shell only when present by @wenzeslaus in (PR:1219)
     791 * wxGUI: avoid flush clipboard if not opened by @nilason in (PR:819)
     792 * wxGUI: avoid printing annoying wx debug message on startup by @petrasovaa in (PR:157)
     793 * wxGUI/catalog: do not expand mapset after filtering if was filtered out by @petrasovaa in (PR:763)
     794 * wxGUI/catalog: refactor frame.py to use DataCatalog panel from catalog.py by @petrasovaa in (PR:1030)
     795 * wxgui: catch also TypeError when importing ctypes, see #305 by @landam in (PR:324)
     796 * wxGUI: Changes in Layer Manager tabs order and labels by @lindakladivova in (PR:802)
     797 * wxGUI/colorrules: fix OnOK when preview is updated after window is de… by @petrasovaa in (PR:443)
     798 * wxGUI/composer: use integers instead of wx id to fix pickle error by @petrasovaa in (PR:641)
     799 * wxGUI/core: account for .post in wxPython 4.0.7.post2 by @wenzeslaus in (PR:246)
     800 * wxgui: Create grassdata automatically on the first GUI startup  by @lindakladivova in (PR:705)
     801 * wxGUI: create parallel wx.frame for Single Window layout development by @lindakladivova in (PR:1604)
     802 * wxGUI: dark theme for Python shell and editor by @petrasovaa in (PR:1220)
     803 * wxGUI datacatalog: Adapt tooltip 'Add new grass database' button by @lindakladivova in (PR:936)
     804 * wxGUI datacatalog: add direct editing of mapset and location name by @lindakladivova in (PR:920)
     805 * wxGUI/datacatalog: add icon for adding grassdb by @petrasovaa in (PR:769)
     806 * wxGUI datacatalog: Add multiple GRASS databases by @lindakladivova in (PR:761)
     807 * wxGUI/datacatalog: avoid ValueError when map name corrupted with multiple @ chars by @petrasovaa in (PR:966)
     808 * wxGUI/datacatalog: change ReloadTreeItems to use node-specific reloads by @petrasovaa in (PR:847)
     809 * wxGUI/Data catalog: distinguish label and name of nodes by @lindakladivova in (PR:783)
     810 * wxGUI/datacatalog: do not use all available cores for loading by @petrasovaa in (PR:1422)
     811 * wxGUI/datacatalog: don't expand the location tree node if the transformation dialog is closed by @tmszi in (PR:823)
     812 * wxGUI/datacatalog: enable lazy loading of maps by @petrasovaa in (PR:1434)
     813 * wxGUI/datacatalog: fix #1184 by @petrasovaa in (PR:1230)
     814 * wxGUI/datacatalog: Fix bad flag in reprojection dialog by @nilason in (PR:806)
     815 * wxGUI/datacatalog: fix display 3D raster by @tmszi in (PR:889)
     816 * wxGUI/datacatalog: fix error handling and add busy cursor, refresh as loading dbs by @petrasovaa in (PR:957)
     817 * wxGUI/datacatalog: fix incorrect entry invalid (broken) regular expression by @tmszi in (PR:1267)
     818 * wxGUI/datacatalog: fix setting output vector/raster format by @tmszi in (PR:1596)
     819 * wxGUI/datacatalog: fix switching mapset between different dbs by @petrasovaa in (PR:931)
     820 * wxGUI/datacatalog: fix unresponsive gui if too many maps in current mapset watched with watchdog are changing at once by @petrasovaa in (PR:1556)
     821 * wxGUI/datacatalog: flatten mapset-layer hierarchy, add icons for types, highlight current by @petrasovaa in (PR:742)
     822 * wxGUI datacatalog: merge LocationMapTree and DataCatalogTree by @lindakladivova in (PR:755)
     823 * wxGUI/datacatalog: move or copy location/mapset isn't allowed, show warning message dialog by @tmszi in (PR:822)
     824 * wxGUI/datacatalog: multiple grass databases context menu shows Delete locations by @lindakladivova in (PR:914)
     825 * wxGUI datacatalog: process of creating a new database by @lindakladivova in (PR:937)
     826 * wxGUI/datacatalog: remove unnecessary check and warning for dragging mapsets/locations by @petrasovaa in (PR:1303)
     827 * wxGUI/datacatalog: show warning message dialog if drag map them to the target location node in the tree by @tmszi in (PR:810)
     828 * wxGUI/datalog: fix crashing due to accessing GUI from other thread by @petrasovaa in (PR:1027)
     829 * wxGUI/dbmgr: fix calculate column values by @tmszi in (PR:1370)
     830 * wxGUI/dbmgr: fix clik on the 'Modify layer' button if vector map doesn't have any layers by @tmszi in (PR:1334)
     831 * wxGUI dbmgr: Fix dbmgr widgets layout on the wxMSW by @tmszi in (PR:637)
     832 * wxGUI/dbmgr: fix get statistics for character column type if it contains NULL value by @tmszi in (PR:1574)
     833 * wxGUI/dbmgr: fix hit 'Refresh' button if vector map doesn't have any layers by @tmszi in (PR:1371)
     834 * wxGUI/dbmgr: fix insert record for each category into table by @tmszi in (PR:1333)
     835 * wxGUI/dbmgr: Show proper error when table parsing failed by @wenzeslaus in (PR:1112)
     836 * wxGUI d.histogram: Set default font by @tmszi in (PR:695)
     837 * wxGUI: displaying infobar focused on first-time user by @lindakladivova in (PR:1078)
     838 * wxGUI: displaying infobar focused on first-time user (part 2) by @lindakladivova in (PR:1183)
     839 * wxGUI d.mon: Fix launch light-weight wx monitor without toolbars and statusbar by @tmszi in (PR:678)
     840 * wxGUI/d.mon: fix rendered image size according actual map display size by @tmszi in (PR:1064)
     841 * wxGUI: Do not reload the tree after canceled Delete in data catalog by @lindakladivova in (PR:789)
     842 * wxGUI: drop show preferences dialog as modal by @nilason in (PR:1132)
     843 * wxGUI: Each layertree has its own display toolbar by @lindakladivova in (PR:1785)
     844 * wxGUI: easier switching between locations (GRASS GIS 8) by @lindakladivova in (PR:1598)
     845 * wxGUI: Enable all Flake8 warnings by @wenzeslaus in (PR:1535)
     846 * wxGUI: Enable import-related warnings by @wenzeslaus in (PR:1523)
     847 * wxGUI: Enable lambda, escape, except, l warnings by @wenzeslaus in (PR:1518)
     848 * wxGUI: Enable multiple hash warning by @wenzeslaus in (PR:1516)
     849 * wxGUI: Enable unused var warning by @wenzeslaus in (PR:1502)
     850 * wxGUI: Exit after fatal lock errors by @HuidaeCho in (PR:1428)
     851 * wxGUI: fix 3D view wxPyDeprecationWarning, from https://trac.osgeo.or… by @petrasovaa in (PR:81)
     852 * wxGUI: fix another wx flag assertion error in DefaultFontDialog by @nilason in (PR:1545)
     853 * wxGUI: fix another wx flag assertion error in iclass by @petrasovaa in (PR:1471)
     854 * wxGUI: fix atexit error in debug mode by @nilason in (PR:772)
     855 * wxGUI: fix bad indentation by @nilason in (PR:784)
     856 * wxGUI: fix calling coordselect validator by @petrasovaa in (PR:1455)
     857 * wxGUI: fix closing map displays when used with workspaces, consolidat… by @petrasovaa in (PR:512)
     858 * wxGUI: fix cmd-c closing interactive colour table on mac by @nilason in (PR:1293)
     859 * wxGUI: fix deleting dict key while iterating overlays by @petrasovaa in (PR:1763)
     860 * wxGUI: fix deprecated wx.NewId by @petrasovaa in (PR:152)
     861 * wxGUI: fix d.histogram - save only after rendering done by @petrasovaa in (PR:235)
     862 * wxGUI: fix d.mon for py3 by @petrasovaa in (PR:122)
     863 * wxGUI: fix d.mon rendering #3896, caused by garbage collection of map… by @petrasovaa in (PR:174)
     864 * wxGUI: fix d.out.file command parsing with --overwrite by @petrasovaa in (PR:1284)
     865 * wxGUI: fix flake F401 (unused import) by @petrasovaa in (PR:1294)
     866 * wxGUI: fix for cases when validator is called automatically from wx.Dialog upon closing it with OK by @petrasovaa in (PR:1418)
     867 * wxGUI: fix GCP manager for py3 by @petrasovaa in (PR:245)
     868 * wxGUI: fix g.gui.vdigit on windows #530 by @petrasovaa in (PR:572)
     869 * wxGUI: fix importing data when new location was created by @petrasovaa in (PR:1416)
     870 * wxGUI: fix inconsistent layer sizes during rendering by @petrasovaa in (PR:552)
     871 * wxGUI: Fix key binding issues on mac by @nilason in (PR:818)
     872 * wxGUI: fix layout flag assert in wms dialog by @petrasovaa in (PR:1764)
     873 * wxGUI: Fix layout flags in vector field statistics dialog for wx 4.1.0 by @nilason in (PR:821)
     874 * wxGUI: fix layout flags needed for wxPython 4.1.0 by @petrasovaa in (PR:570)
     875 * wxGUI: fix menustrings generation and adjust flake8 by @petrasovaa in (PR:541)
     876 * wxGUI: fix parsing GDAL/OGR formats which contains a colon in a description by @landam in (PR:1226)
     877 * wxGUI: fix psmap from last change, remove redundant import by @petrasovaa in (PR:380)
     878 * wxGUI: fix query dialog #369 by @petrasovaa in (PR:390)
     879 * wxGUI: fix query dialog after recent changes by @petrasovaa in (PR:1266)
     880 * wxGUI: fix RunCommand to decode also empty string to return unicode by @petrasovaa in (PR:702)
     881 * wxGUI: fix settings when item added to settings but it doesn't exist yet locally by @petrasovaa in (PR:1811)
     882 * wxGUI: fix some flake8 issues by @petrasovaa in (PR:538)
     883 * wxGUI: fix wizard, https://trac.osgeo.org/grass/ticket/3981 by @petrasovaa in (PR:233)
     884 * wxGUI: fix WMS, includes changing widget because listtreectrl didn't … by @petrasovaa in (PR:242)
     885 * wxGUI: fix wx flag assertion error in SavedRegion Dialog (#1679) by @nilason in (PR:1680)
     886 * wxGUI: fix 'wxPyDeprecationWarning: Call to deprecated item. Use FindItem instead.' by @tmszi in (PR:1344)
     887 * wxGUI: fix wxPython 4.1.0 support for "About GRASS GIS" dialog by @nilason in (PR:901)
     888 * wxGUI: fix wxPython 4.1 support by @nilason in (PR:1161)
     889 * wxGUI/FlatNotebook: fix crash on mac and add support for dark mode using wxPython 4.1 by @nilason in (PR:856)
     890 * wxGUI/forms: Add giface to standalone forms and fix history in giface by @wenzeslaus in (PR:971)
     891 * wxGUI/forms: fix Python 3.8 integer warning by @petrasovaa in (PR:1302)
     892 * wxGUI/gcmd: fix read command stdout by @tmszi in (PR:1228)
     893 * wxGUI/gcp: adding the option to overwrite the result map by @tmszi in (PR:912)
     894 * wxGUI gcp: Allow choose map display web service layer as target map to display by @tmszi in (PR:654)
     895 * wxGUI/gcp: fix checking vector map existence in the group by @tmszi in (PR:680)
     896 * wxGUI/gcp: fix launch add vector map to group dialog by @tmszi in (PR:924)
     897 * wxGUI gcp: Fix show add vector map to group dialog by @tmszi in (PR:685)
     898 * wxGUI gcp GroupDialog: Fix StaticText widget existence check by @tmszi in (PR:647)
     899 * wxGUI/gcpmanager: g.gui.gcp: crash when closing; fix #430 by @petrasovaa in (PR:447)
     900 * wxGUI/g.extension: fix failure to uninstall addon by @nilason in (PR:1524)
     901 * wxGUI g.gui.animation: Fix wx.CheckBox widget deprecation warning by @tmszi in (PR:718)
     902 * wxGUI/g.gui.gcp: fix launch g.gui.gcp by @tmszi in (PR:824)
     903 * wxGUI/g.gui.iclass: fix copy vector features from vector map by @tmszi in (PR:1020)
     904 * wxGUI/g.gui.image2target: fix close window (dissociate the managed window from the AuiManager) by @tmszi in (PR:1038)
     905 * wxGUI/g.gui.image2target: fix show Settings dialog by @tmszi in (PR:1037)
     906 * wxGUI/g.gui.mapswipe: fix hit Apply button if first and second raster aren't chosen by @tmszi in (PR:1042)
     907 * wxGUI/g.gui.mapswipe: Fix wx.CheckListBox widget wxPyDeprecationWarning by @tmszi in (PR:773)
     908 * wxGUI/g.gui.psmap: add checking map frame exists if you add labels by @tmszi in (PR:1048)
     909 * wxGUI/g.gui.psmap: disable draw graphics tool on the preview page by @tmszi in (PR:1057)
     910 * wxGUI/g.gui.psmap: fix add legend error message by @tmszi in (PR:1041)
     911 * wxGUI/g.gui.psmap: fix double click on the map frame with vector map by @tmszi in (PR:1055)
     912 * wxGUI/g.gui.psmap: fix launch ps.map module dialog from the File menu by @tmszi in (PR:1058)
     913 * wxGUI/g.gui.psmap: fix move line object error message by @tmszi in (PR:1031)
     914 * wxGUI/g.gui.psmap: fix move point object error message by @tmszi in (PR:1033)
     915 * wxGUI/g.gui.psmap: fix preview orientation if page orientation is landscape by @tmszi in (PR:1056)
     916 * wxGUI/g.gui.psmap: fix resize line object by @tmszi in (PR:1032)
     917 * wxGUI/g.gui.rdigit: raster digitizer as standalone module by @tmszi in (PR:1051)
     918 * wxGUI g.gui.rlisetup: Fix get rectangle sample units size by @tmszi in (PR:633)
     919 * wxGUI/gselect: fix select widget for wxGUI 'd.vect' module by @tmszi in (PR:1195)
     920 * wxGUI/gui_core: enable/disable toolbar long help if toolbar exists by @tmszi in (PR:1922)
     921 * wxGUI/gui_core: fix preferences dialog rendered height on wxPython 4.1.1 by @tmszi in (PR:1825)
     922 * wxGUI/gui_core: fix 'Set image size' dialog rendered size on wxPython 4.1.1 by @tmszi in (PR:1890)
     923 * wxGUI/gui_core: fix trigger 'wx.EVT_CHOICE' event if you set widget selection programatically  by @tmszi in (PR:1580)
     924 * wxGUI/import: check all layers by default by @petrasovaa in (PR:1018)
     925 * wxGUI ImportDialog: Improve output map name existence validation by @tmszi in (PR:675)
     926 * wxGUI/import_export: fix output map overwriting if global overwrite setting is allowed by @tmszi in (PR:1029)
     927 * wxGUI/import_export: fix validation input map name (overwrite flag) by @tmszi in (PR:1209)
     928 * wxGUI: IndexError after right click on 'GRASS Locations in...' in the Data tab by @lindakladivova in (PR:736)
     929 * wxGUI/infobar: attempt to fix #1213 by @petrasovaa in (PR:1214)
     930 * wxGUI/infobar: fix infobar creation with wxPython 4.1 by @petrasovaa in (PR:1202)
     931 * wxGUI/lmgr: add layer menu items for check/uncheck selected layers by @tmszi in (PR:1905)
     932 * wxGUI/lmgr: adjusts the position of the layer context option button (if opacity label is appended into layer name) by @tmszi in (PR:1458)
     933 * wxGUI/lmgr: fix add group layer during vector map editing by @tmszi in (PR:1109)
     934 * wxGUI lmgr: Fix cancel save workspace dialog by @tmszi in (PR:628)
     935 * wxGUI/lmgr: fix get layer name by @tmszi in (PR:1066)
     936 * wxGUI lmgr: Fix position of bitmap image button overlaid web service map layer name  by @tmszi in (PR:669)
     937 * wxGUI/lmgr: fix Python Shell 'help()' function and intro text by @tmszi in (PR:1894)
     938 * wxGUI lmgr: Fix remove both selected parent/children group layer by @tmszi in (PR:642)
     939 * wxGUI/lmgr: fix return 'Layer' class str value if map layer name is None by @tmszi in (PR:820)
     940 * wxGUI/lmgr: prevent the scrollbar from scrolling up when a layer item is checked or unchecked (set focus on the layer item) by @tmszi in (PR:1896)
     941 * wxGUI location wizard: EPSG page by @lindakladivova in (PR:670)
     942 * wxGUI location wizard: First page by @lindakladivova in (PR:646)
     943 * wxGUI/location_wizard: fix column sorting of ListCtrl widget by @tmszi in (PR:1117)
     944 * Wx gui location wizard map picture removed by @lindakladivova in (PR:657)
     945 * wxGUI locdownload: Fix missing flush method by @tmszi in (PR:634)
     946 * wxGUI loc wizard: Correct errors according to flake 8 and add some description by @lindakladivova in (PR:728)
     947 * wxGUI/locwizard: fix flags for wxPython 4.1 by @petrasovaa in (PR:1330)
     948 * wxGUI/locwizard: fix more flags for wxPython 4.1 by @nilason in (PR:1343)
     949 * wxGUI loc wizard: fix title layout, bug introduced in changes for wx 4.1 by @petrasovaa in (PR:661)
     950 * wxGUI loc wizard: Improve new location's CRS method selection page by @lindakladivova in (PR:721)
     951 * wxGUI/locwizard: remove redundant message by @petrasovaa in (PR:1016)
     952 * wxGUI/LocWiz: remove unneeded +ellps proj4string tag by @nilason in (PR:1550)
     953 * wxGUI: Make Display related toolbars part of Display tab by @lindakladivova in (PR:1321)
     954 * wxGUI/mapdisp: Always respect user-set background color in Map Display by @wenzeslaus in (PR:1167)
     955 * wxGUI/mapdisp: fix double click on the overlays in the 3D view by @tmszi in (PR:872)
     956 * wxGUI/mapdisp: fix launch light-weight wx monitor without toolbars and statusbar by @tmszi in (PR:1903)
     957 * wxGUI/mapdisplay: register context menu items, addresses #1691 by @petrasovaa in (PR:1704)
     958 * wxGUI/mapdisp: Overlay properties in context menu by @wenzeslaus in (PR:1077)
     959 * wxGUI/mapswipe: call dialog Uninit only when dialog was actually created by @petrasovaa in (PR:836)
     960 * wxGUI/mapswipe: fix saving image to file by @petrasovaa in (PR:1725)
     961 * wxGUI/MapSwipe: Show comp. extent option in statusbar does not work #1714 by @lindakladivova in (PR:1717)
     962 * wxGUI/mapwin: add map overlays 'at' parameter arg validation by @tmszi in (PR:1069)
     963 * wxGUI/mapwin: check if 'BufferedMapWindow' instance exist before calling '_runUpdateMap()' method by @tmszi in (PR:1456)
     964 * wxGUI/mapwin: fix correct horizontal raster legend position after apply new legend setting by @tmszi in (PR:1080)
     965 * wxGUI mapwin: Fix Pointer tool double left click on a map canvas by @tmszi in (PR:529)
     966 * wxGUI/mapwin: fix saving the position of overlays after changing their position with the mouse pointer tool by @tmszi in (PR:817)
     967 * wxGUI mapwin: Fix show/hide vdigit toolbar by @tmszi in (PR:578)
     968 * wxGUI/mapwin: fix showing overlays module properties dialog from the map display context menu by @tmszi in (PR:1079)
     969 * wxGUI Module dialog: Fix enable scrolling for the Basic top module style (fix bug introduced in the issue #480) by @tmszi in (PR:503)
     970 * wxGUI: module search GUI improved by @petrasovaa in (PR:1194)
     971 * wxGUI: more suitable color for infobar on Windows by @lindakladivova in (PR:1504)
     972 * wxGUI: new design for GNotebooks by @lindakladivova in (PR:1801)
     973 * wxGUI: NewDisplay button moved to LMToolsToolbar by @lindakladivova in (PR:1783)
     974 * wxGUI: NewIdRef was added only in wxPython 4.0.3. Fix import for <4.0.3 by @marisn in (PR:155)
     975 * wxGUI: New management icons for vector and raster data import by @lindakladivova in (PR:1204)
     976 * wxGUI: New, simplified, unified window titles by @wenzeslaus in (PR:1216)
     977 * wxGUI/nviz: fix failed map centring on mac with pre-wx4.1 by @nilason in (PR:895)
     978 * wxGUI/nviz: fix relative import from 'wxnviz' module by @tmszi in (PR:887)
     979 * wxGUI/nviz: fix reopening 3D by reloading layers by @petrasovaa in (PR:953)
     980 * wxGUI/nviz: fix update list of surface in vector page during delete constant surface by @tmszi in (PR:881)
     981 * wxGUI/nviz: SetMaskColour causes problems on macos with wx 4.1.0 by @petrasovaa in (PR:787)
     982 * wxGUI: one row for lmgr toolbar after adding 3D view tab by @lindakladivova in (PR:1485)
     983 * wxGUI preferences: Fix load epsg codes by @tmszi in (PR:545)
     984 * wxGUI/prompt: support dark themes by @petrasovaa in (PR:1217)
     985 * wxGUI/prompt: update autocomplete map list when there is a change in db by @petrasovaa in (PR:1573)
     986 * wxGUI/psmap: fix retrieval of projection information by @tmszi in (PR:1310)
     987 * wxGUI/psmap: properly isolate region setting from the rest of GUI by @petrasovaa in (PR:1127)
     988 * wxGUI/pyedit: add quit toolbar tool by @tmszi in (PR:1022)
     989 * wxGUI/pyedit: add recent files history menu by @tmszi in (PR:1021)
     990 * wxGUI/PyShell: check for wxPython version by @nilason in (PR:1160)
     991 * wxGUI/rdigit: fix for Python3 by @petrasovaa in (PR:254)
     992 * wxGUI rdigit: Fix show save dialog by @tmszi in (PR:594)
     993 * wxGUI rdigit: Update list of available raster map layers, when map layers tree changed by @tmszi in (PR:707)
     994 * wxGUI: refactor changing mapset through file menu and catalog with signals by @petrasovaa in (PR:919)
     995 * wxGUI: refactoring: build display status bar based on wx.StatusBar widget by @lindakladivova in (PR:1646)
     996 * wxGUI: refactoring: build GUI tools' status bars based on wx.StatusBar widget by @lindakladivova in (PR:1689)
     997 * wxGUI refactoring: New WorkspaceManager class by @lindakladivova in (PR:1437)
     998 * wxGUI: Remove calls of unicode function which don't work in Python 3 by @wenzeslaus in (PR:1111)
     999 * wxGUI: remove deprecated methods from MapDisplay by @petrasovaa in (PR:1729)
     1000 * wxGUI: remove legacy initialization of image handlers by @petrasovaa in (PR:153)
     1001 * wxGUI: Remove python2 specific sys.stderr encoding handling. Fixes #3921 by @marisn in (PR:167)
     1002 * wxGUI: Remove user mapset from demolocation by @lindakladivova in (PR:1173)
     1003 * wxGUI: remove Version and copyright from menu as redundant by @petrasovaa in (PR:1264)
     1004 * wxGUI: replace deprecated wx.Yield by @petrasovaa in (PR:160)
     1005 * wxGUI: Replace getchildren and getiterator from ElementTree by @wenzeslaus in (PR:1120)
     1006 * wxGUI: replace obsolete wx.BitmapFromImage by @petrasovaa in (PR:230)
     1007 * wxGUI/rlisetup: dissociate the managed window from the manager ('wx.aui.AuiManager' instance) before destroy wizard window by @tmszi in (PR:1196)
     1008 * wxGUI r.li.setup: Show message dialog if removed config file isn't selected from the list by @tmszi in (PR:631)
     1009 * wxGUI/Save display to file dialog: add wxPython 4.1 support by @nilason in (PR:1175)
     1010 * wxGUI: SaveToFile() missing 1 required positional argument by @lindakladivova in (PR:1637)
     1011 * wxGUI/settings: fix updating nested dict when reading settings file by @petrasovaa in (PR:1823)
     1012 * wxGUI: Show line numbers in the Python editor (pyedit and gmodeler) by @wenzeslaus in (PR:284)
     1013 * wxGUI: Show the world map in Demolocation immediately after startup by @lindakladivova in (PR:1070)
     1014 * wxGUI/Single-Window: arrange a startup GUI by @lindakladivova in (PR:1775)
     1015 * wxGUI/Single-Window: Ensure display tab to be visible when added by @lindakladivova in (PR:1830)
     1016 * wxGUI: Single-Window GUI: arrangement of basic widgets by @lindakladivova in (PR:1621)
     1017 * wxGUI: Single-Window GUI: Integrate new map display wx.Panels into a AuiNotebook center pane #1735 by @lindakladivova in (PR:1732)
     1018 * wxGUI/Single-Window: New change page event for AuiNotebook by @lindakladivova in (PR:1780)
     1019 * wxGUI: small refactoring of mapframe by @petrasovaa in (PR:1669)
     1020 * wxGUI/splashscreen: use standard one, try to show it before main app, increase timeout by @petrasovaa in (PR:1718)
     1021 * wxGUI: Split widget initialization from notebook logic by @lindakladivova in (PR:1591)
     1022 * wxGUI/startup: fix terminate location download dialog download thread by @tmszi in (PR:832)
     1023 * wxgui: startup GUI automatic detection of grassdata: make case independent #644 by @lindakladivova in (PR:664)
     1024 * wxGUI: startup screen removed by @lindakladivova in (PR:1400)
     1025 * wxGUI/tplot: add option to show simple regression model line by @tmszi in (PR:1207)
     1026 * wxGUI/tplot: fix export csv file by @tmszi in (PR:1206)
     1027 * wxGUI/tplot: fix x, y coordinates validation by @tmszi in (PR:1199)
     1028 * wxGUI/treemodel: fix removing children of root by @petrasovaa in (PR:775)
     1029 * wxGUI/treemodel: refactor TreeModel to allow more flexible Node classes. by @petrasovaa in (PR:797)
     1030 * wxGUI/treemodel: revert weakref as it doesn't work with deepcopy by @petrasovaa in (PR:782)
     1031 * wxGUI/treemodel: used weakref to fix deleting of nodes by @petrasovaa in (PR:778)
     1032 * wxGUI: update Slovakia 3D precipitation voxel sample dataset URL by @nilason in (PR:1292)
     1033 * wxgui: Use correct (widget) with for word wrapping of warnings and errors by @marisn in (PR:490)
     1034 * wxGUI: use default output font dialog for macOS and wxPython >=4.0.6 by @nilason in (PR:760)
     1035 * wxGUI: Use system colours to enable dark mode support by @nilason in (PR:751)
     1036 * wxGUI/vdigit: fix close settings dialog (if no vector map has been selected) by @tmszi in (PR:1394)
     1037 * wxGUI/vdigit: fix 'Copy categories/features' editing tool if you select only one feature by @tmszi in (PR:1816)
     1038 * wxGUI/vdigit: fix double click on the line/boundary after activate 'Edit selected line/boundary' editing tool by @tmszi in (PR:1814)
     1039 * wxGUI/vdigit: fix double click on the line/boundary after activate 'Move selected vertex' editing tool and then switch to 'Edit selected line/boundary' editing tool by @tmszi in (PR:1815)
     1040 * wxGUI vdigit: Fix Undo/Redo tool event  by @tmszi in (PR:586)
     1041 * wxGUI vdigit: Fix wx.CheckBox widget deprecation warning by @tmszi in (PR:700)
     1042 * wxGUI/vdigit: show error message dialog if no vector map is open for editing, after activate 'Z bulk-labeling of 3D lines' tool by @tmszi in (PR:1877)
     1043 * wxGUI vdigit: Update list of available vector map layers, when map layers tree changed by @tmszi in (PR:708)
     1044 * wxGUI/vdigit: use 'FloatSpin' widget, which allows you to set the decimal snapping threshold value by @tmszi in (PR:1882)
     1045 * wxGUI vnet: Fix ctypes c_char_p arg type (bytes object) by @tmszi in (PR:687)
     1046 * wxGUI/vnet: fix removing page, wx layout assert error, missing giface by @petrasovaa in (PR:1822)
     1047 * wxGUI/vselect: fix delete row from selected features list by @tmszi in (PR:1231)
     1048 * wxGUI/vselect: fix show error message if selected map layer type is raster by @tmszi in (PR:1059)
     1049 * wxGUI: Workspace save fails with SbManager has no IsShown by @lindakladivova in (PR:1665)
     1050 * wxGUI WSPropertiesDialog: Fix close dialog by @tmszi in (PR:684)
     1051 * wxGUI WSPropertiesDialog: Fix render new selected web service map layer in the map canvas by @tmszi in (PR:668)
     1052 * wxGUI WSPropertiesDialog: Fix select layer if the web service map layer properties dialog is open by @tmszi in (PR:666)
     1053 * wxGUI WSPropertiesDialog: Fix show web service map layer properties dialog by @tmszi in (PR:665)
     1054 * wxGUI/wxpyimgview: Fix launch wxpyimgview by @tmszi in (PR:735)
     1055 * wxGUI/xml: update GUI tools toolbox items by @tmszi in (PR:1050)
     1056 * wx.Menu.Append: remove text argument by @landam in (PR:335)
     1057 * wxnviz: fix for HiDPI monitors with scaling set, fix decoding by @petrasovaa in (PR:307)
     1058 * wxplot: add giface to write log correctly by @petrasovaa in (PR:428)
     1059 * wxplot: use wxpython plotting instead of our old copy, adjust to use … by @petrasovaa in (PR:229)
    681060
    691061==== Python scripting ====
    701062
     1063 * PEP8 fixes by @neteler in (PR:1317)
    711064 * ...
    721065
     1066==== Binder ====
     1067 * Added additional GRASS info to example_notebook by @chaedri in (PR:1686)
     1068 * Added Binder setup files by @chaedri in (PR:1603)
     1069
    731070==== Projection support ====
    741071
     1072 * PROJ6+ + WKT2 support by @metzm in (PR:118), (PR:183), (PR:1240)
     1073
     1074==== GDAL support ====
     1075
    751076 * ...
    761077
    77 ==== GDAL support ====
     1078==== Database support ====
     1079
     1080 * n/a
     1081
     1082==== Library changes ====
     1083
     1084 * libgis parser: Add angle brackets to a single option/flag rule by @HuidaeCho in (PR:1399)
     1085 * libgis parser: Show error for option file by @wenzeslaus in (PR:1433)
     1086 * libgis parser: Use #-space-% to allow writing PEP8-compliant Python code by @wenzeslaus in (PR:1287)
     1087 * libgis parser: Add a standard option for nprocs= (G_OPT_M_NPROCS) by @HuidaeCho in (PR:1644)
     1088 * libgis: add missing return keyword to G__make_mapset_element_misc() by @nilason in (PR:1751)
     1089 * libgis: add test for invalid value to parser by @metzm in (PR:1459)
     1090 * libgis: Advancing va_list manually after calling ovprintf() by @HuidaeCho in (PR:725)
     1091 * libgis: Distinguish dirs and objects in dir creation by @wenzeslaus in (PR:1681)
     1092 * libgis: More clear comments for aprintf by @HuidaeCho in (PR:726)
     1093 * libgis parser: an empty string is not an answer by @metzm in (PR:958)
     1094 * libgis: Use the full string length in strncmp() calls. by @infrastation in (PR:1060)
     1095 * lib/init: fix run py script with CRLF line terminators ('grass --exec file_with_CRLF.py') by @tmszi in (PR:860)
     1096 * lib/init/grass.py: Updated bash history setting from 3000 to unlimite… by @cwhite911 in (PR:1026)
     1097 * lib/init: set HISTSIZE to empty string for unlimited size by @nilason in (PR:1526)
     1098 * libproj: added alias for ITRF92 by @neteler in (PR:1460)
     1099 * libproj: change warning to debug message by @neteler in (PR:1337)
     1100 * libproj: fix crs modification with PROJ6+ by @metzm in (PR:1007)
     1101 * libproj: fix for PROJ6+ to get the ll equivalent of a CRS by @metzm in (PR:939)
     1102 * libproj: fix lookup mechanism for datum grids with all versions of PROJ by @metzm in (PR:252)
     1103 * libproj: fix results for ll equivalents by @metzm in (PR:1444)
     1104 * libproj: fix test for PJ_TYPE_BOUND_CRS by @metzm in (PR:1013)
     1105 * libproj: fix treatment of proj extension in wkt by @metzm in (PR:187)
     1106 * libpython: Add helper library for benchmarking by @wenzeslaus in (PR:1670)
     1107 * libpython: Add plot nprocs to benchmark CLI by @wenzeslaus in (PR:1761)
     1108 * libpython: Avoid race condition when reading region in use_temp_region() by @wenzeslaus in (PR:638)
     1109 * libpython: explain verbosity levels by @neteler in (PR:998)
     1110 * libpython: relax requirements for band names by @metzm in (PR:1081)
     1111 * libpython: Resolve path to mapset in setup.init by @wenzeslaus in (PR:1829)
     1112 * libpython: Save and load benchmark results by @wenzeslaus in (PR:1711)
     1113 * libpython/script: fix tests by @petrasovaa in (PR:1381)
     1114 * libpython: Support non-parallel runs better by @wenzeslaus in (PR:1733)
     1115 * libraster: add strerror(errno) to write failures by @metzm in (PR:1722)
     1116 * libraster by @metzm in (PR:463)
     1117 * libraster: change Rast_legal_bandref() return value to bool by @nilason in (PR:1897)
     1118 * libraster: fix Rast_legal_bandref() by @metzm in (PR:1796)
     1119 * libraster / gdal.c: add recent GDAL dlls by @ninsbl in (PR:1874)
     1120 * Lib: Speed up listing a lot of mapsets by 20%. by @marisn in (PR:281)
     1121
     1122==== JSON /  REST support ====
    781123
    791124 * ...
    801125
    81 ==== Database support ====
    82 
    83  * n/a
    84 
    85 ==== Library changes ====
     1126==== Code quality ====
     1127
     1128 * Add list of commits for git blame to ignore by @wenzeslaus in (PR:1391)
     1129 * Apply Black to all scripts by @wenzeslaus in (PR:1347)
     1130 * Apply Black to doc utils in man by @wenzeslaus in (PR:1366)
     1131 * Apply Black to grass package, use Python 3 style everywhere by @wenzeslaus in (PR:1382)
     1132 * Apply Black to helpers, examples, doc, and others by @wenzeslaus in (PR:1386)
     1133 * Apply Black to locale by @wenzeslaus in (PR:1513)
     1134 * Apply Black to Python utils by @wenzeslaus in (PR:1365)
     1135 * Apply Black to temporal modules by @wenzeslaus in (PR:1388)
     1136 * Apply Black to tests by @wenzeslaus in (PR:1387)
     1137 * Apply Black to wxGUI by @wenzeslaus in (PR:1527)
     1138 * Apply Mega-Linter fixes to GH workflow scripts by @wenzeslaus in (PR:1369)
     1139 * Flake8 fixes for docs and others by @wenzeslaus in (PR:1511)
     1140 * Flake8 fixes for utils and man by @wenzeslaus in (PR:1379)
     1141 * flake8: fix F401 (unused import) and F821 (undefined name) in scripts and lib by @petrasovaa in (PR:1314)
     1142
     1143
     1144==== Unit tests / CI ====
     1145
     1146 * Add C and C++ versions to CI by @wenzeslaus in (PR:596)
     1147 * Add CentOS build check to CI by @wenzeslaus in (PR:604)
     1148 * Add GitHub Action to build, run tests, and Python static code analysis by @wenzeslaus in (PR:525)
     1149 * Add github workflow for docker build and push by @mmacata in (PR:1790)
     1150 * Add label to new GitHub issue by @nilason in (PR:527)
     1151 * CI: Add Flake8 check for grass.py by @wenzeslaus in (PR:1311)
     1152 * CI: Add GH Super Linter for a subset of secondary files by @wenzeslaus in (PR:752)
     1153 * CI: Add matplotlib to apt deps by @wenzeslaus in (PR:1703)
     1154 * CI: add PDAL support by @neteler in (PR:1638)
     1155 * CI: add proj-bin to have cs2cs for tests by @petrasovaa in (PR:1410)
     1156 * CI: Do not run Docker job on forks by @wenzeslaus in (PR:1915)
     1157 * CI: Enable Perl in Super-Linter by @wenzeslaus in (PR:1493)
     1158 * CI: Fix ifs for jobs and rename master to main by @wenzeslaus in (PR:1813)
     1159 * CI: Handpick C/C++ version combos for GCC tests by @wenzeslaus in (PR:1288)
     1160 * CI: Make test report available as artifact by @wenzeslaus in (PR:1290)
     1161 * CI: Make test report available even on failure by @wenzeslaus in (PR:1702)
     1162 * CI: Print version info for Ubuntu and CentOS runs by @wenzeslaus in (PR:1832)
     1163 * CI: Remove duplication in Ubuntu workflow by @wenzeslaus in (PR:1749)
     1164 * CI: Remove notifications comming from Travis CI by @wenzeslaus in (PR:663)
     1165 * CI: Run Docker for all release branches by @wenzeslaus in (PR:1975)
     1166 * CI: Switch Travis to Ubuntu 20.04 (focal) by @wenzeslaus in (PR:1384)
     1167 * CI: Update Flake8 by @wenzeslaus in (PR:1932)
     1168 * CI: Update setting env vars, use 20.04, C gnu17 by @wenzeslaus in (PR:1092)
     1169 * CI: Use a specific Flake8 version by @wenzeslaus in (PR:626)
     1170 * CI: Use matrix and increase versions for Flake8 by @wenzeslaus in (PR:1309)
     1171
     1172==== User Manuals - Documentation ====
     1173
     1174 * Add CONTRIBUTING file with a standard contributor Git how-to by @wenzeslaus in (PR:237)
     1175 * howto_release converted to MD incl cleanup by @neteler in (PR:96)
     1176 * G80:r.cost manual: explain multiple directions by @metzm in (PR:846)
     1177
     1178==== Portability ====
     1179
     1180 * Apply more osgeo4w patches by @ninsbl in (PR:1921)
     1181 * Apply patches from OSGeo4W upstreams by @ninsbl in (PR:1880)
     1182 * gdal.c: add .so/.dll for GDAL 3.0 by @rouault in (PR:191)
     1183
     1184==== Docker support ====
     1185
     1186 * Docker images are now built for the 8.0 branch
     1187 * Alpine dockerfile: removed PDAL by @neteler in (PR:455)
     1188 * Alpine dockerfile: update python3 patch and add pdal package by @mmacata in (PR:378)
     1189 * Alpine docker image: added subversion package for g.extension by @neteler in (PR:261)
     1190 * Patch python instead of grass for alpine docker by @mmacata in (PR:304)
     1191 * added singularity file by @lucadelu in (PR:181)
     1192 * Docker alpine image patch to work with py3.8 by @mmacata in (PR:278)
     1193 * docker: Alpine latest (stable) added by @neteler in (PR:275)
     1194 * docker alpine: removed gisinit revision workaround by @neteler in (PR:280)
     1195 * Dockerfile_alpine: fix broken pip six installation by @neteler in (PR:1568)
     1196 * Dockerfile_alpine: fix broken pip six installation by @neteler in (PR:1581)
     1197 * Dockerfile_alpine_wxgui: drop file by @neteler in (PR:1372)
     1198 * Dockerfile: fix broken lib link by @neteler in (PR:1625)
     1199 * Dockerfile READMEs added by @neteler in (PR:147)
     1200 * Dockerfiles: fix broken grass-session tests by @neteler in (PR:1623)
     1201 * Dockerfiles: install git before build by @mmacata in (PR:990)
     1202 * Dockerfiles moved into distro specific subdirs by @neteler in (PR:148)
     1203 * Dockerfiles: remove workaround for grass-session by @neteler in (PR:1624)
     1204 * Dockerfile Ubuntu/Debian: another link fix by @neteler in (PR:1626)
     1205 * Dockerfile with Python 3, PDAL, grass-session, Ubuntu based by @neteler in (PR:134)
     1206 * docker: fix GRASS lib path detection by @neteler in (PR:883)
     1207 * docker: fix README.md names by @neteler in (PR:984)
     1208 * docker: image with Ubuntu 19:10 by @neteler in (PR:260)
     1209 * docker: update Ubuntu based images by @neteler in (PR:1180)
     1210 * docker: version matrix added by @neteler in (PR:606)
     1211
     1212
     1213==== Message Translations ====
     1214
     1215 * i18N: sync from Transifex (https://www.transifex.com/grass-gis/grass7/dashboard/) (PR:xxx)
     1216 * i18N: restore translations by @neteler in (PR:1011)
     1217 * i18n: sync from Transifex by @HuidaeCho in (PR:1326)
     1218 * i18n: Sync from Transifex by @HuidaeCho in (PR:1465)
     1219 * i18n: Sync from Transifex by @HuidaeCho in (PR:1519)
     1220 * i18N: sync from Transifex by @neteler in (PR:1153)
     1221 * i18N: sync from Transifex by @neteler in (PR:124)
     1222 * i18N: sync from Transifex by @neteler in (PR:158)
     1223 * i18N: sync from Transifex by @neteler in (PR:169)
     1224 * i18N: sync from Transifex by @neteler in (PR:559)
     1225 * i18N: sync from Transifex by @neteler in (PR:697)
     1226 * i18N: sync from Transifex by @neteler in (PR:87)
     1227 * i18n: Transifex sync by @HuidaeCho in (PR:1592)
     1228 * i18n: Transifex sync by @HuidaeCho in (PR:1676)
     1229 * i18n: Translation update of Latvian language by @marisn in (PR:865)
     1230
     1231==== Packaging ====
    861232
    871233 * ...
    881234
    89 ==== JSON /  REST support ====
    90 
    91  * ...
    92 
    93 ==== Code quality ====
    94 
    95  * ...
    96 
    97 ==== Unit tests / CI ====
    98 
    99  * ...
    100 
    101 ==== User Manuals - Documentation ====
    102 
    103  * ...
    104 
    105 ==== Portability ====
    106 
    107  * ...
    108 
    109 ==== Docker support ====
    110 
    111  * Docker images are now built for the 8.0 branch
    112  * ...
    113 
    114 ==== Message Translations ====
    115 
    116  * i18N: sync from Transifex (https://www.transifex.com/grass-gis/grass7/dashboard/) (PR:xxx)
    117 
    118 ==== Packaging ====
    119 
    120  * ...
     1235==== !GitHub related ====
     1236
     1237 * Issues are now on GitHub by @wenzeslaus in (PR:315)
    1211238
    1221239=== New Addons since GRASS 7.8.7 ===