The GRASS 8.5.0 release provides more than 2570 improvements and fixes with respect to the release 8.4.2. The release includes the refreshed branding from "GRASS GIS" to "GRASS" and a new logo.
Highlights
- New grass.tools Python API to call GRASS tools as Python functions, with direct NumPy array and raster pack I/O
- Completely new documentation rewritten in Markdown and rendered with MkDocs
- Parallelization added to r.mapcalc, r.texture, r.horizon (raster mode), and v.surf.rst cross-validation, with the nprocs parameter extended to r.blend, r.grow, r.mapcalc.simple, and i.image.mosaic
- Added JSON output across dozens of tools (g.list, g.region, r.info, r.univar, r.stats, r.report, v.info, v.what, v.db.connect, and many more)
- New r.smooth.edgepreserve tool for edge-preserving raster smoothing
- v.class and d.vect.thematic: "discontinuities" algorithm fixed and reenabled
- Expanded grass.jupyter: query button and drawing of simple geometries in InteractiveMap, interactive computational region updates, parallelization in TimeSeriesMap and SeriesMap, and a save() method for Map3D
- Multiple masks per mapset, driven internally via the
GRASS_MASKenvironment variable, with a new r.mask.status tool for reporting mask state, respected by r.mask - RegionManager and MaskManager context managers in grass.script for scoped region and mask changes
- GUI improvements: projects can be added directly in the Data Catalog, column statistics can be computed on SQL-filtered or interactively selected rows in the attribute table manager, the Python editor is now dockable, the command history panel supports copying commands, and the Graphical Modeler variable syntax changed from
%variableto%{variable} - Conda package now available as an installation option
- CMake support for building GRASS and addons, alongside the existing Autotools build, including native Windows builds with the MSVC compiler
- Fixed more than 500 security issues reported by Coverity Scan
- Updated requirements: GDAL 3.7+, PROJ 9.0+, C++17, Autoconf 2.72, Python 3.10+, and the CBLAS and LAPACKE C interface for BLAS and LAPACK
- Local macOS builds: A new script to easily build a binary (useful for building for Intel architecture, see #4946)
New Addon Tools
- i.hyper (toolset): Hyperspectral data processing — import, preprocessing, visualization, and export
- i.sam2: Image segmentation using SAMGeo with text prompts
- r.buildvrt.gdal: Build GDAL Virtual Rasters (VRT) over GRASS raster maps
- r.colors.qml: Apply the style (color, category) from a QML file
- r.colors.toqml: Export GRASS raster colors and category labels to a QGIS .qml style file
- r.curvenumber: SCS curve number lookup from land cover, hydrologic soil group, hydrologic condition, and antecedent runoff
- r.earthworks: Terrain modeling with cut and fill operations
- r.gravity.terrain: Calculate gravity terrain corrections
- r.hand: Height Above Nearest Drainage (HAND) analysis and flood inundation mapping
- r.hydrobasin: Delineate large numbers of watersheds with a memory-efficient OpenMP parallel algorithm
- r.in.vect: Import an external vector layer as a raster layer
- r.lfp: Compute longest flow paths with a memory-efficient OpenMP parallel algorithm
- r.manning: Convert a land cover raster to a Manning's roughness coefficient raster
- r.maxent.setup: Install Maxent into the addon directory (helper for r.maxent.predict and r.maxent.train)
- r.runoff: Compute runoff depth, volume, and peak discharge using the SCS Curve Number method
- r.slopeunits (toolset): Create, clean, and calculate metrics for slope units
- r.stone: Stone rockfall analysis tool
- r.timeofconcentration: Compute time of concentration using the Kirpich equation
- r.windfetch: Compute wind fetch, the length of water over which wind blows without obstruction
- t.stac (toolset): Explore and ingest SpatioTemporal Asset Catalogs (STAC)
- v.surf.rst.cv: Cross-validation to optimize v.surf.rst tension and smoothing parameters
Monthly Financial Supporters
OpenPlains Inc., Luis Bojórquez, Mark Pearson
New: To contribute to GRASS financially, use NumFOCUS.
What's Changed
Tools
- d.frame: Fix bare except clause by @arohanajit in #4597
- d.mon: Fix SIM115 linter warnings by using context managers for file operations by @arohanajit in #5015
- d.rast.edit: Fixed E722 in d.rast.edit/ by @arohanajit in #4568
- d.rast.edit: Use raster mask, not uppercase MASK by @wenzeslaus in #5001
- d.shade: Added flag to respect null values by @cwhite911 in #6715
- d.vect.chart: fix -l legend output format by @Abhi-d-gr8 in #6927
- d.vect: Fix typo in documentation example by @chaedri in #5876
- db.columns: Add JSON support by @NishantBansal2003 in #6042
- db.columns: added format=list and format=csv by @gulshan-123 in #6971
- db.columns: added support for
-eto print more column information by @gulshan-123 in #6933 - db.connect: Add JSON support by @NishantBansal2003 in #6059
- db.connect: Add test file by @NishantBansal2003 in #6052
- db.describe: add JSON support by @kritibirda in #4021
- db.describe: fix illegal memory access report by @kritibirda in #4202
- db.in.ogr: Fix SIM115: Use context managers for file operations by @arohanajit in #5537
- db.out.ogr: Removed unused variable by @arohanajit in #4617
- db.select: Adding JSON and CSV support by @gulshan-123 in #6728
- Code quality improvements by @ShubhamDesai #5450 #6471 #6206 #4795 #5488 #3927 #3923 #4041 #5604 #3979 #6177 #3922 #3980 #3918 #3878 #3852 #4260 #6138 #5996 #4056 #6498 #6048 #6045 #4359 #6342 #4219 #5566 #4079 #4022 #3958 #5222 #4388 #4093 #6466 #4299 #5489 #3973 #3974 #4023 #4153 #4060 #6504 #4685 #6108 #4307 #4004 #4816 #4151 #6107 #5491 #4433 #5396 #6147 #6336 #4532 #6149 #4150 #5203 #6011 #6427 #6279 #4098 #4088 #6277 #5904 #6424 #4087 #4005 #6064 #3966 #6368 #3970 #6507 #4434 #5517 #4752 #4141 #4114 #4006 #5564 #4065 #4094 #6326 #4524 #6271 #6370 #6439 #6312 #4463 #6207 #4415 #5608 #6425
- Fix resource leak issues by @ShubhamDesai in #4959 #5513 #5033 #5273 #4496 #5276 #6202 #5512 #4966 #4868 #5371 #4664 #5079 #6467 #4464 #4678 #4819 #4869 #4369 #6470 #4505 #5261 #6359 #6385 #5449 #6358 #5301 #4605 #6224 #5014 #4677 #5397 #5496 #5029 #4861 #4817 #5910 #5143 #4663 #6505 #5400 #4993 #5130 #4687 #4607 #5576 #4867 #5455 #4734 #4497 #5260 #4423 #4625 #5972 #6222 #4771 #5448 #5129 #6423 #6176 #4422 #4955 #4729 #5012 #5961 #5303 #5515 #4506 #5967 #5964 #6209 #4508 #5275 #4735 #4991 #4820 #4753 #5144 #4457 #6360 #5611 #5274 #4320 #5028 #4498 #4965 #4802 #4461 #4957 #6221 #4730 #4389 #5379
Note that while we tried to represent all the changes here, with the number of changes, some need to be hidden and starting from this point, GitHub interface requires us to have a mixture of PR links and numbers. Besides GitHub's commit comparison link, you can also view the full changelog attached to the release.
Show more
np.arrayrange alias with np.arange by @arohanajit in #4629
noqa exception by @arohanajit in #4803
range option by @echoix in #4154
datetime_to_grass_datetime_string() by @echoix in #4840
t.rast.* by @arohanajit in #5172
Graphical User Interface
- EPSG code source: replace epsg.io with spatialreference.org by @neteler in https://github.com/OSGeo/grass/pull/4535
- Included Mapvalidator in forms.py to check valid raster output names by @bluedotblue in https://github.com/OSGeo/grass/pull/6433
- add functions for disabling processing events about mapset content changes in datacatalog by @petrasovaa in https://github.com/OSGeo/grass/pull/6369
- do not remove parameter value on dialog update event by @landam in https://github.com/OSGeo/grass/pull/5760
- fix ColumnSorterMixin regression by @rohannallamadge in https://github.com/OSGeo/grass/pull/4310
- fix crashing due to File menu translation issues by @petrasovaa in https://github.com/OSGeo/grass/pull/4513
- fix for Python3.13 by @petrasovaa in https://github.com/OSGeo/grass/pull/4653
- fix hiding input/output fields from import dialogs on Windows by @petrasovaa in https://github.com/OSGeo/grass/pull/6309
- fix verbose checkbox behavior in tool dialogs by @petrasovaa in https://github.com/OSGeo/grass/pull/4257
- gmodeler fix adding tool by @landam in https://github.com/OSGeo/grass/pull/4309
- in data catalog don't use restrictions, add project instead of database by @petrasovaa in https://github.com/OSGeo/grass/pull/6405
- make Python editor dockable by @landam in https://github.com/OSGeo/grass/pull/5733
- prepare for markdown documentation by @petrasovaa in https://github.com/OSGeo/grass/pull/5066
- propagate previously defined where option value by @landam in https://github.com/OSGeo/grass/pull/5747
- gui(core.layerlist): Fix returning active layers in GetSelectedLayers() by @echoix in https://github.com/OSGeo/grass/pull/4913
- gui(nviz): Type hinting to the nviz library wrapper and various related improvements by @echoix in https://github.com/OSGeo/grass/pull/4899
- gui(nviz.wxnviz): Add simple type hints not needing any imports by @echoix in https://github.com/OSGeo/grass/pull/4880
- gui(web_services): Fix not all arguments converted during string formatting by @echoix in https://github.com/OSGeo/grass/pull/5136
- Add Copy command feature on right-click to GUI History panel by @aniket2405 in https://github.com/OSGeo/grass/pull/4927
- Add fix for wxGUI Data import Python error by @ww2406 in https://github.com/OSGeo/grass/pull/4504
- Add type hints to bound WizardEvent handlers by @echoix in https://github.com/OSGeo/grass/pull/4891
- Add types for lmgr constructor argument of GLWindow (3D) and MapPanel (2D) by @echoix in https://github.com/OSGeo/grass/pull/4877
- Early exit from functions or loops by @echoix in https://github.com/OSGeo/grass/pull/4916
- Fix SIM115 and FLY002 linting issues in iclass frame module by @arohanajit in #5200
- Fix possibly indexing None in psmap.utils.convertRGB by @echoix in https://github.com/OSGeo/grass/pull/4875
- Fix possibly unbound variables in psmap.utils.BBoxAfterRotation by @echoix in https://github.com/OSGeo/grass/pull/4873
Show more
- Fix typos and formatting of docstring parameters by @echoix in https://github.com/OSGeo/grass/pull/4912
- Fix using formatting for a string that does not have any interpolated variables in core.menutree by @echoix in https://github.com/OSGeo/grass/pull/4874
- Handle GRASS_INFO_END in line in gui/wxpython/core/gcmd.py by @echoix in https://github.com/OSGeo/grass/pull/4876
- Happy new year 2025 by @neteler in https://github.com/OSGeo/grass/pull/4920
- Solve a recursion error in gui/wxpython/lmgr/giface.py by @echoix in https://github.com/OSGeo/grass/pull/4514
- Use comprehensions when initializing lists, dicts, and sets by @echoix in https://github.com/OSGeo/grass/pull/4914
- Use context manager for opening files and temporary files by @echoix in https://github.com/OSGeo/grass/pull/4917
- add README.md and LICENSE.TXT for icons by @neteler in https://github.com/OSGeo/grass/pull/5387
- fix editing categories in vdigit by @petrasovaa in https://github.com/OSGeo/grass/pull/6265
- fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5262
- fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5369
- replace python imp library with importlib for python 3.12 by @petrasovaa in https://github.com/OSGeo/grass/pull/4201
- update logo by @petrasovaa in https://github.com/OSGeo/grass/pull/5577
- use correct index for EnableLongHelp() by @nilason in https://github.com/OSGeo/grass/pull/4106
- datacatalog: Replace lambda expression with named Function to fix E731 by @arohanajit in #4377
- datacatalog: fix adding newly created project into projects tree only once by @tmszi in https://github.com/OSGeo/grass/pull/6453
- dbmgr: calculate column statistics for SQL filtered or interactively selected rows by @tmszi in https://github.com/OSGeo/grass/pull/6161
- dbmgr: fix Edit selected record dialog date column type TextCtrl widget validator/hint by @tmszi in https://github.com/OSGeo/grass/pull/6165
- gconsole: avoid infinite GUI-in-GUI loops when running python scripts with no required params by @pesekon2 in https://github.com/OSGeo/grass/pull/5603
- gmodeler: change syntax of variables (%variable -> %{variable}) by @pesekon2 in https://github.com/OSGeo/grass/pull/5737
- gmodeler: dialogs code refactoring by @pesekon2 in https://github.com/OSGeo/grass/pull/3816
- gmodeler: fix adding data from menu by @pesekon2 in https://github.com/OSGeo/grass/pull/3881
- gmodeler: fix conflicting flags in 'Create relation' dialog by @pesekon2 in https://github.com/OSGeo/grass/pull/3865
- gmodeler: fix setToolBar failing on macOS by @pesekon2 in https://github.com/OSGeo/grass/pull/5298
- gmodeler: refactor - create model_convert.py by @pesekon2 in https://github.com/OSGeo/grass/pull/5693
- gmodeler: refactor - create model_items.py by @pesekon2 in https://github.com/OSGeo/grass/pull/5698
- gmodeler: refactor - move ModelParamDialog to dialogs.py by @landam in https://github.com/OSGeo/grass/pull/5715
- gselect: fix choosing name of attribute column from the wxGUI select widget of the db.dropcolumn module by @tmszi in https://github.com/OSGeo/grass/pull/6607
- history: Order commands by time and optimize node refresh by @lindakarlovska in https://github.com/OSGeo/grass/pull/3896
- history: fix the run of a special cmds only once by @tmszi in https://github.com/OSGeo/grass/pull/4322
- main_window: fix displaying save workspace dialog before close workspace action by @tmszi in https://github.com/OSGeo/grass/pull/6387
- mapswipe: fix map image flickering if position is changed by sash by @tmszi in https://github.com/OSGeo/grass/pull/3832
- mapwin: disable auto-rendering map completely (resize Map Display window event etc.) by @tmszi in https://github.com/OSGeo/grass/pull/2018
- nviz: fix imports by @petrasovaa in https://github.com/OSGeo/grass/pull/4592
- nviz: fix missing imports by @petrasovaa in https://github.com/OSGeo/grass/pull/4611
- pydit: fix showing recent files submenu by @tmszi in https://github.com/OSGeo/grass/pull/6683
- vdigit: fix map window focus after starting edits by @tmszi in https://github.com/OSGeo/grass/pull/2525
- Add specific exception handling in vdigit/mapwindow.py by @arohanajit in #4952
- Added TypeError to lmgr/ by @arohanajit in #4537
- FIxed F841 in colorrules.py by @arohanajit in #4490
- FIxed bare except in photo2image/ by @arohanajit in #4582
- Fix E722 Warnings by Specifying Exception Types in dbmgr/ by @arohanajit in #4382
- Fix E722 do not use bare 'except' warnings in
gui_core/by @arohanajit in #4396 - Fix F405 error by explicitly importing required modules in iscatt/ by @arohanajit in #4426
- Fix PGH004: Add specific rule code F401 to noqa comment by @arohanajit in #5167
- Fix PTH208 use pathlib Path instead of os module by @arohanajit in #5461
- Fix PTH208/SIM115: Use Path.iterdir and context managers in image2target by @arohanajit in #5462
- Fix PTH208: Use pathlib for directory operations in psmap module by @arohanajit in #5464
- Fix PTH208: Use pathlib in rlisetup by @arohanajit in #5466
- Fix SIM115 by using context managers for file operations in mapdisp by @arohanajit in #5366
- Fix SIM115: Improve temporary file handling in modules component by @arohanajit in #5406
- Fix SIM115: Use context manager for file operations in psmap module by @arohanajit in #5465
- Fix SIM115: Use context managers for file operations in gui_core by @arohanajit in #5146
- Fix SIM115: Use context managers for file operations in photo2image by @arohanajit in #5463
- Fix Unchecked return value in main.c by @ShubhamDesai in #5204
- Fix bare except in graphics.py by @arohanajit in #4808
- Fix flake8 F403, F405, F821 and F841 errors in statistics.py by @arohanajit in #4934
- Fix flake8 e722 bare except warnings by @arohanajit in #4929
- Fix uninitialized variables in DOutFile() method by @lindakarlovska in https://github.com/OSGeo/grass/pull/5650
- Fix various typos in comments, strings, and methods by @echoix in https://github.com/OSGeo/grass/pull/4710
- Fixed E266 - extra '#' for comments in gui_core/ by @arohanajit in #4393
- Fixed E266 in nviz/ by @arohanajit in #4547
- Fixed E722 in frame.py by @arohanajit in #4440
- Fixed E722 in ii2t_gis_set.py by @arohanajit in #4417
- Fixed E722 in modules/ by @arohanajit in #4546
- Fixed E722: bare 'except' in iscatt/ by @arohanajit in #4427
- Fixed F405 in nviz/ by @arohanajit in #4567
- Fixed F405 in psmap/ by @arohanajit in #4541
- Fixed F841 and E266 in lmgr/ by @arohanajit in #4439
- Fixed F841 in dialogs.py, frame.py by @arohanajit in #4431
- Fixed F841 in ii2t_manager.py by @arohanajit in #4418
- Fixed F841 in iscatt/ by @arohanajit in #4432
- Fixed F841 in mapwindow.py by @arohanajit in #4538
- Fixed F841 in modules/ by @arohanajit in #4528
- Fixed F841 in photo2image/ by @arohanajit in #4573
- Fixed F841 in psmap/ by @arohanajit in #4574
- Fixed F841 in tools.py by @arohanajit in #4539
- Fixed F841 in vnet/ by @arohanajit in #4543
- Fixed F841 is iscatt/core_c.py by @arohanajit in #4430
- Fixed PEP8 error in startup/ by @arohanajit in #4770
- Fixed PEP8 errors in web_services/ by @arohanajit in #4706
- Fixed PEP8 errors in wxplot/ by @arohanajit in #4699
- Fixed PTH208 and SIM115 errors in core/ by @arohanajit in #5016
- Fixed bare 'except' for psmap/ by @arohanajit in #4623
- Fixed bare 'except' in nviz/ by @arohanajit in #4613
- Fixed bare except in mapdisp/main.py by @arohanajit in #5006
- Fixed bare except in mapwin/ by @arohanajit in #5010
- Fixed flake8 E722: bare 'except' in wxpython/gcp/ by @arohanajit in #4392
- Fixed modules import to correct libraries by @arohanajit in #4698
- Fixed ruff error
PTH208in datacatalog/ by @arohanajit in #5046 - Fixed star imports in wxdigit.py by @arohanajit in #4973
- Fixed star imports in wxdisplay.py by @arohanajit in #4974
- Fixed unused 'wizard' variable - F841 in image2target/ by @arohanajit in #4400
- Fixed unused variable F841 by @arohanajit in #4542
- Fixed unused variable and bare 'except' in frame.py by @arohanajit in #4655
- Fixes UTM hemisphere selection in location wizard by @saket0187 in https://github.com/OSGeo/grass/pull/6824
- Improve exception handling specificity in location wizard by @arohanajit in #4953
- Make Define new GRASS project wizard resizable by @dehydrated-bear in https://github.com/OSGeo/grass/pull/6846
- Refactored try-except block to be more robust in dialogs.py by @arohanajit in #4383
- Removed PEP8 errors from rlisetup/ by @arohanajit in #4693
- Removed star imports in digit.py by @arohanajit in #4692
- Removed unused variable from rdigit/ by @arohanajit in #4683
- Removed unused variable in location_wizard/dialogs.py by @arohanajit in #4773
- Removed unused variable in mapdisp/statusbar.py by @arohanajit in #4774
- Removed unused variables in vdigit/ by @arohanajit in #4728
- Reverted unused variable fix in wxgui/ by @arohanajit in #4595
- Specified imports in iclass/frame.py to fix F403 by @arohanajit in #4772
- Update 'ScriptError' to be correctly imported from
grass.exceptionsby @arohanajit in #5045 - Update link to the Natural Earth sample dataset by @ecodiv in https://github.com/OSGeo/grass/pull/4223
- Updated exception handling to fix AttributeNotFound error by @arohanajit in #4961
- Use r.mask.status to get info about mask by @wenzeslaus in https://github.com/OSGeo/grass/pull/4519
- avoid creating nested list of errors (Graphical modeler) by @landam in https://github.com/OSGeo/grass/pull/5700
- fix URL of gismentors.zip data file by @neteler in https://github.com/OSGeo/grass/pull/6193
- fix adding and removing from history for new mapset by @petrasovaa in https://github.com/OSGeo/grass/pull/4228
- fix mapCreated signal handling by @petrasovaa in https://github.com/OSGeo/grass/pull/4174
- update menu creation explanations by @neteler in https://github.com/OSGeo/grass/pull/3920
- use context manager for deleting file content in _setRevertCapFiles (SIM115) by @arohanajit in #5555
- use context manager for file append in writeData() (SIM115) by @arohanajit in #5554
- vnet: Fix SIM115: Use context manager for file operations in vnet_data.py by @arohanajit in #6016
- wxplot: Fix SIM115: Use context manager for file operations in profile.py by @arohanajit in #6026
Python
- pygrass.vector.table.DBlinks - improve error messages by @pesekon2 in https://github.com/OSGeo/grass/pull/5745
- ctypesgen: Add 'bool' to ctypes type map, needed for C23 by @nilason in https://github.com/OSGeo/grass/pull/5621
- ctypesgen: Add /Zc:preprocessor flag for MSVC compiler in ctypesgen preprocessor by @dudaka in https://github.com/OSGeo/grass/pull/6371
- ctypesgen: Fix ctypesgen build issues on Windows by @dudaka in https://github.com/OSGeo/grass/pull/6307
- ctypesgen: add MSVC compiler support to ctypesgen parser by @dudaka in https://github.com/OSGeo/grass/pull/6276
- grass.app: Add internal CLI with argparse subcommands by @wenzeslaus in https://github.com/OSGeo/grass/pull/5590
- grass.app: Add mapset create subcommand by @wenzeslaus in https://github.com/OSGeo/grass/pull/6462
- grass.app: Add project create subcommand by @wenzeslaus in https://github.com/OSGeo/grass/pull/6441
- grass.app: Always set path to script addons by @wenzeslaus in https://github.com/OSGeo/grass/pull/6639
- grass.app: Do env var setup in RuntimePaths by @wenzeslaus in https://github.com/OSGeo/grass/pull/6482
- grass.app: Move ISIS integration to the library by @wenzeslaus in https://github.com/OSGeo/grass/pull/4169
- grass.app: Move lock to mapset subcommand by @wenzeslaus in https://github.com/OSGeo/grass/pull/6437
- grass.app: Move mapset locking to library by @wenzeslaus in https://github.com/OSGeo/grass/pull/4158
- grass.app: Refactor PATH setup in grass init script and grass.script.setup by @wenzeslaus in https://github.com/OSGeo/grass/pull/3694
- grass.app: Separate env modification from path retrieval by @wenzeslaus in https://github.com/OSGeo/grass/pull/6469
- grass.app: Use None as default value, hide os.environ by @wenzeslaus in https://github.com/OSGeo/grass/pull/6101
- grass.app: Use env in the lock program call by @wenzeslaus in https://github.com/OSGeo/grass/pull/5970
- grass.app: Use sys.executable as a GRASS_PYTHON default by @wenzeslaus in https://github.com/OSGeo/grass/pull/5441
- grass.benchmark: Compute speedup and enable plotting speedup/efficiency by @cyliang368 in https://github.com/OSGeo/grass/pull/3835
- grass.exceptions: Do not translate exception text by @wenzeslaus in https://github.com/OSGeo/grass/pull/6362
- grass.exceptions: make CalledModuleError pickleable for multiprocessing by @petrasovaa in https://github.com/OSGeo/grass/pull/6275
- grass.gunittest: Add typing annotations to code that isn’t from unittest by @echoix in https://github.com/OSGeo/grass/pull/6230
- grass.gunittest: Allow floating point for
--min-successargument by @echoix in https://github.com/OSGeo/grass/pull/5278 - grass.gunittest: Avoid printing errors twice by @wenzeslaus in https://github.com/OSGeo/grass/pull/6414
- grass.gunittest: Exclude test files with tests ran with pytest by @echoix in https://github.com/OSGeo/grass/pull/6523
- grass.gunittest: Fix SIM115 using context managers to open files by @echoix in https://github.com/OSGeo/grass/pull/4338
- grass.tools: Migration guide from run_command by @wenzeslaus in https://github.com/OSGeo/grass/pull/6862
Show more
- grass.gunittest: Fix parsing exclusion from config file on Windows by @echoix in https://github.com/OSGeo/grass/pull/4324
- grass.gunittest: Fix typo in function
TestCase.assertVectorsNoAreaDifference()for_compute_vector_xorby @echoix in https://github.com/OSGeo/grass/pull/6125 - grass.gunittest: Inherit more from unittest classes by @echoix in https://github.com/OSGeo/grass/pull/6256
- grass.gunittest: Remove Python2-only
-ttinterpreter option by @echoix in https://github.com/OSGeo/grass/pull/6194 - grass.gunittest: Solve ResourceWarning in gs.parser() coming from sys.stdout by @echoix in https://github.com/OSGeo/grass/pull/6196
- grass.gunittest: Sync with unittest from Python 3.9 by @echoix in https://github.com/OSGeo/grass/pull/6200
- grass.gunittest: Use context manager for Popen calls in gunittest by @echoix in https://github.com/OSGeo/grass/pull/6198
- grass.gunittest: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5637
- grass.jupyter: Add LayerControl to InteractiveMap by default by @chaedri in https://github.com/OSGeo/grass/pull/3880
- grass.jupyter: Add Parallelization to TimeSeriesMap and SeriesMap by @29riyasaxena in https://github.com/OSGeo/grass/pull/4097
- grass.jupyter: Add Query Button to InteractiveMap by @29riyasaxena in https://github.com/OSGeo/grass/pull/3793
- grass.jupyter: Add documentation of InteractiveMap Features and Parallelization in jupyter_tutorial.ipynb by @29riyasaxena in https://github.com/OSGeo/grass/pull/4164
- grass.jupyter: Add save() method to Map3D for saving images by @Aterg264 in https://github.com/OSGeo/grass/pull/5494
- grass.jupyter: Allow Users to view/update computational region by @29riyasaxena in https://github.com/OSGeo/grass/pull/3838
- grass.jupyter: Allow users to draw simple geometries and save it as vector by @29riyasaxena in https://github.com/OSGeo/grass/pull/4003
- grass.jupyter: Clarify InteractiveMap documentation by @petrasovaa in https://github.com/OSGeo/grass/pull/4243
- grass.jupyter: Create BaseSeriesMap to remove redundancies in SeriesMap and TimeSeriesMap by @29riyasaxena in https://github.com/OSGeo/grass/pull/3468
- grass.jupyter: Ensure width and height in InteractiveMap are integers by @cwhite911 in https://github.com/OSGeo/grass/pull/4221
- grass.jupyter: Fix session tests on Windows by @echoix in https://github.com/OSGeo/grass/pull/4368
- grass.jupyter: Modify Descriptions by @29riyasaxena in https://github.com/OSGeo/grass/pull/4159
- grass.jupyter: Use grass.tools for running and attributes in Map by @wenzeslaus in https://github.com/OSGeo/grass/pull/6314
- grass.jupyter: fix TimeSeriesMap layer rendering by @petrasovaa in https://github.com/OSGeo/grass/pull/5632
- grass.jupyter: fix interactivemap tests by @petrasovaa in https://github.com/OSGeo/grass/pull/4379
- grass.jupyter: fix setting region interactively in latlon projects by @petrasovaa in https://github.com/OSGeo/grass/pull/6301
- grass.jupyter: importing display function from IPython.display by @Aterg264 in https://github.com/OSGeo/grass/pull/5325
- grass.jupyter: move save() to BaseSeriesMap class to reduce redundancy by @petrasovaa in https://github.com/OSGeo/grass/pull/4378
- grass.jupyter: rewrite
get_regionandget_location_proj_stringfunctions in utils.py by @ayushjariyal in https://github.com/OSGeo/grass/pull/6950 - grass.jupyter: use json output format in timeseriesmap by @gulshan-123 in https://github.com/OSGeo/grass/pull/7004
- grass.py: Standardize naming: use "GRASS" instead of "GRASS GIS" by @lindakarlovska in https://github.com/OSGeo/grass/pull/5645
- grass.pydispatch: Apply code changes from upstream pydispatcher repo by @echoix in https://github.com/OSGeo/grass/pull/4033
- grass.pygrass: Fixed E402 in pygrass/utils by @arohanajit in #4759
- grass.pygrass: Fixed E402 in vector/ by @arohanajit in #4715
- grass.pygrass: Remove Vector.write() 2nd positional argument deprecated in 7.2 by @echoix in https://github.com/OSGeo/grass/pull/6231
- grass.pygrass: Set r.mapcalc nprocs in ParallelModuleQueue example by @wenzeslaus in https://github.com/OSGeo/grass/pull/6583
- grass.pygrass: Set r.mapcalc threads in GridModule by @wenzeslaus in https://github.com/OSGeo/grass/pull/6581
- grass.pygrass: fix estimating width/height when number of processes not specified by @petrasovaa in https://github.com/OSGeo/grass/pull/6591
- grass.pygrass: remove unused arg in ctypes.CFUNCTYPE by @mshukuno in https://github.com/OSGeo/grass/pull/4113
- grass.script.core: Use a context manager for opening files (SIM115) to solve some ResourceWarnings by @echoix in https://github.com/OSGeo/grass/pull/4559
- grass.script.core: Use context manager for Popen call in call() function by @echoix in https://github.com/OSGeo/grass/pull/6199
- grass.script.utils: Add type hints to KeyValue class and parse_key_val function by @echoix in https://github.com/OSGeo/grass/pull/4904
- grass.script.utils: Add type hints to some functions by @echoix in https://github.com/OSGeo/grass/pull/4879
- grass.script.vector_db_select: use v.db.select CSV output for safer parsing by @petrasovaa in https://github.com/OSGeo/grass/pull/6022
- grass.script: Add locking to init by @wenzeslaus in https://github.com/OSGeo/grass/pull/5591
- grass.script: Add more parameters to handle_errors by @wenzeslaus in https://github.com/OSGeo/grass/pull/5875
- grass.script: Add nprocs to raster.mapcalc function by @wenzeslaus in https://github.com/OSGeo/grass/pull/6580
- grass.script: Add pack to create_project by @wenzeslaus in https://github.com/OSGeo/grass/pull/6415
- grass.script: Add separate function to sort through run_command style parameters by @wenzeslaus in https://github.com/OSGeo/grass/pull/5582
- grass.script: Allow a leading dash in flags parameter by @wenzeslaus in https://github.com/OSGeo/grass/pull/5952
- grass.script: Allow init to modify only specified environment by @wenzeslaus in https://github.com/OSGeo/grass/pull/3438
- grass.script: Always use env for shutil.which by @wenzeslaus in https://github.com/OSGeo/grass/pull/5717
- grass.script: Do not change dir to create XY project by @wenzeslaus in https://github.com/OSGeo/grass/pull/5918
- grass.script: Fallback to print when g.message fails by @wenzeslaus in https://github.com/OSGeo/grass/pull/5849
- grass.script: Fix formatting inconsistencies in MaskManager docstring by @saurabh12nxf in https://github.com/OSGeo/grass/pull/6894
- grass.script: Fixed E722 in v.what.strds by @arohanajit in #4530
- grass.script: KeyValue raise AttributeError when expected by @lrntct in https://github.com/OSGeo/grass/pull/5885
- grass.script: More carefully setup env in create_project by @wenzeslaus in https://github.com/OSGeo/grass/pull/5854
- grass.script: Pass env to debug_level by @wenzeslaus in https://github.com/OSGeo/grass/pull/5920
- grass.script: Pass environment to message functions by @wenzeslaus in https://github.com/OSGeo/grass/pull/4630
- grass.script: Raise, not fatal in create_project by @wenzeslaus in https://github.com/OSGeo/grass/pull/6413
- grass.script: Remove PATH modification, fix GUI scripts in get_commands by @wenzeslaus in https://github.com/OSGeo/grass/pull/5971
- grass.script: Remove build vars from setup.py by @wenzeslaus in https://github.com/OSGeo/grass/pull/6391
- grass.script: Reveal the failed type passed to decode by @wenzeslaus in https://github.com/OSGeo/grass/pull/5581
- grass.script: Use description parameter in create_project by @wenzeslaus in https://github.com/OSGeo/grass/pull/6440
- grass.script: Use text=True by default for subprocesses by @wenzeslaus in https://github.com/OSGeo/grass/pull/5881
- grass.script: add Activate and Deactivate methods to RegionManager and MaskManager by @petrasovaa in https://github.com/OSGeo/grass/pull/6268
- grass.script: deprecate vector_what encoding parameter by @petrasovaa in https://github.com/OSGeo/grass/pull/5913
- grass.script: expose named_colors by @nilason in https://github.com/OSGeo/grass/pull/4825
- grass.script: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5638
- grass.script: new RegionManager context manager by @petrasovaa in https://github.com/OSGeo/grass/pull/5628
- grass.temporal.abstract_space_time_dataset: Use Path.read_text() to load SQL template files by @echoix in https://github.com/OSGeo/grass/pull/4335
- grass.temporal.core: Replace open file + read with pathlib.Path's read_text() by @echoix in https://github.com/OSGeo/grass/pull/4233
- grass.temporal.datetime_math: Return a TypedDict from compute_datetime_delta by @echoix in https://github.com/OSGeo/grass/pull/4700
- grass.temporal.stds_export: Use pathlib Path.read_text and Path.write_text by @echoix in https://github.com/OSGeo/grass/pull/4293
- grass.temporal.stds_import: Use pathlib Path.read_text and Path.write_text for proj string by @echoix in https://github.com/OSGeo/grass/pull/4236
- grass.temporal: Remove expected failures for tests fixed by #4328 by @echoix in https://github.com/OSGeo/grass/pull/4364
- grass.temporal: Simple typing annotations by @echoix in https://github.com/OSGeo/grass/pull/4641
- grass.temporal: Use r.mapcalc nprocs=1 in parallel code by @wenzeslaus in https://github.com/OSGeo/grass/pull/6582
- grass.temporal: add explicit timestamp converter and adapters for sqlite3 and Python >= 3.12 by @ninsbl in https://github.com/OSGeo/grass/pull/6692
- grass.temporal: allow change of mapset in a single script by @lrntct in https://github.com/OSGeo/grass/pull/5735
- grass.temporal: fix error handling by @petrasovaa in https://github.com/OSGeo/grass/pull/5631
- grass.temporal: fix regression in printing metadata by @petrasovaa in https://github.com/OSGeo/grass/pull/4328
- grass.temporal: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5635
- grass.tools: Add API to access tools as functions by @wenzeslaus in https://github.com/OSGeo/grass/pull/2923
- grass.tools: Add NumPy arrays IO to Tools by @wenzeslaus in https://github.com/OSGeo/grass/pull/5878
- grass.tools: Add Tools API to generated tools doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/6015
- grass.tools: Add raster pack files IO to Tools by @wenzeslaus in https://github.com/OSGeo/grass/pull/5877
- grass.tools: Improve the Tools object doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/6144
- grass.tools: Rename tool name parameter by @wenzeslaus in https://github.com/OSGeo/grass/pull/6143
- grass.tools: Return None with no stdout by @wenzeslaus in https://github.com/OSGeo/grass/pull/6278
- grass.tools: Use Tools in v.dissolve by @wenzeslaus in https://github.com/OSGeo/grass/pull/6148
- grass.tools: Use new ToolError, not CalledModuleError by @wenzeslaus in https://github.com/OSGeo/grass/pull/6366
- grass.tools: add iter to result object to streamline reading into pandas dataframe by @petrasovaa in https://github.com/OSGeo/grass/pull/6311
- grass.utils: Fix typo in download.py response header variable names by @sakirr05 in https://github.com/OSGeo/grass/pull/6897
- Add typing to RPC server and Messenger by @echoix in https://github.com/OSGeo/grass/pull/4639
- Early exit from functions or loops by @echoix in https://github.com/OSGeo/grass/pull/4910
- Fix format string mismatch in group_to_dict warning by @sakirr05 in https://github.com/OSGeo/grass/pull/6899
- Fix typos and formatting of docstring parameters by @echoix in https://github.com/OSGeo/grass/pull/4907
- Partial reverts to still have empty lists in certain situations, solve #5013 by @echoix in https://github.com/OSGeo/grass/pull/5018
- Use a context manager for opening files (SIM115) to solve some ResourceWarnings by @echoix in https://github.com/OSGeo/grass/pull/4224
- Use comprehensions when initializing lists and dicts by @echoix in https://github.com/OSGeo/grass/pull/4909
- Use context manager for subprocesses and opening files by @echoix in https://github.com/OSGeo/grass/pull/4908
- Various remaining pyrefact refactorings by @echoix in https://github.com/OSGeo/grass/pull/4911
gs.messagedoesn't support an empty string by @echoix in https://github.com/OSGeo/grass/pull/5370- resolve osgeo.gdal exception warnings by @petrasovaa in https://github.com/OSGeo/grass/pull/6340
- Add missing docstring summary lines to fix D402 errors by @arohanajit in #5378
- utils: fix checking server response content type/disposition header to allow to download ZIP file. by @tmszi in https://github.com/OSGeo/grass/pull/4658
Documentation and Messages
- Add title field to frontmatter and remove H1 headings by @saket0187 in https://github.com/OSGeo/grass/pull/6906
- Fixes missing Parameter tabs in documentation by @saket0187 in https://github.com/OSGeo/grass/pull/6864
- Add Markdown files by @wenzeslaus in https://github.com/OSGeo/grass/pull/5057
- Add NumFOCUS to README by @petrasovaa in https://github.com/OSGeo/grass/pull/5786
- Convert HTML to Markdown by @wenzeslaus in https://github.com/OSGeo/grass/pull/5064
- Enable Markdown doc compilation by @wenzeslaus in https://github.com/OSGeo/grass/pull/5048
- Enable MathJax rendering for equations in MkDocs documentation by @gulshan-123 in https://github.com/OSGeo/grass/pull/6703
- Fix Flake8 issues in example files by @arohanajit in #4353
- Fix jupyter.Map3D documentation by @RemoteCMeijer in https://github.com/OSGeo/grass/pull/5912
- Fix parson lib test first keyword by @wenzeslaus in https://github.com/OSGeo/grass/pull/5060
- Generate zero, not type in Python examples by @wenzeslaus in https://github.com/OSGeo/grass/pull/5855
- Hide only general and misc keywords in index by @wenzeslaus in https://github.com/OSGeo/grass/pull/5056
- Ignore F401 in dialogs.py by @arohanajit in #4488
- Improve jupyter notebook documentation by @petrasovaa in https://github.com/OSGeo/grass/pull/5452
- Redefine r.mapcalc build deps for color table thumbnails by @wenzeslaus in https://github.com/OSGeo/grass/pull/5098
- Remove URL param from standard options doc generator by @echoix in https://github.com/OSGeo/grass/pull/6034
- Remove extra space by @wenzeslaus in https://github.com/OSGeo/grass/pull/5059
- Replace grass.script by grass.tools by @wenzeslaus in https://github.com/OSGeo/grass/pull/6111
- Reword text to be less verbose in r.geomorphon by @gregorywaynepower in https://github.com/OSGeo/grass/pull/5034
- Updated citation file CITATION.cff by @baharmon in https://github.com/OSGeo/grass/pull/6039
- Use CRS instead of SRS by @wenzeslaus in https://github.com/OSGeo/grass/pull/6264
- Use lowercase for 2D raster mask by @wenzeslaus in https://github.com/OSGeo/grass/pull/4401 https://github.com/OSGeo/grass/pull/4495 https://github.com/OSGeo/grass/pull/5000 https://github.com/OSGeo/grass/pull/5009 https://github.com/OSGeo/grass/pull/4529
Show more
- add Nix documentation by @imincik in https://github.com/OSGeo/grass/pull/3990
- add missing newline between generated synopsis and description heading by @petrasovaa in https://github.com/OSGeo/grass/pull/5330
- be more explicit about 2D vs 3D region resolution by @lrntct in https://github.com/OSGeo/grass/pull/5817
- better way to communicate deprecated flags after adding JSON by @petrasovaa in https://github.com/OSGeo/grass/pull/5837
- enable PDAL in binder and fix and unify init calls by @petrasovaa in https://github.com/OSGeo/grass/pull/5453
- fix grammatical issues in GRASS database documentation by @pahalsrivastava in https://github.com/OSGeo/grass/pull/6874
- fix links in github PR template by @petrasovaa in https://github.com/OSGeo/grass/pull/5980
- fix links in python intro by @petrasovaa in https://github.com/OSGeo/grass/pull/6861
- fix missing images in md files by @petrasovaa in https://github.com/OSGeo/grass/pull/5374
- fix spelling errors by @sebastic in https://github.com/OSGeo/grass/pull/3900
- fix typo and add bold weight to first mention of important terms in r.geomorphon manual page by @gregorywaynepower in https://github.com/OSGeo/grass/pull/4831
- fix various issues in html pages in preparation for markdown by @petrasovaa in https://github.com/OSGeo/grass/pull/5053
- help_loc_structure -> help_project_structure by @pesekon2 in https://github.com/OSGeo/grass/pull/3910
- i.atcorr: update man page to fix numbering of AVIRIS bands and make style consistent by @YannChemin in https://github.com/OSGeo/grass/pull/4445
- improve index page and navigation by @petrasovaa in https://github.com/OSGeo/grass/pull/5487
- improve python intro by @petrasovaa in https://github.com/OSGeo/grass/pull/5526
- json examples for r.describe and r/r3/v.colors.out by @petrasovaa in https://github.com/OSGeo/grass/pull/5963
- missing import in jupyter doc by @petrasovaa in https://github.com/OSGeo/grass/pull/6409
- new documentation of projects and mapsets by @petrasovaa in https://github.com/OSGeo/grass/pull/6392
- remove GIS from several raster tools' documentation by @dnewcomb in https://github.com/OSGeo/grass/pull/5684
- remove GIS from several raster tools' documentation, pt2 by @dnewcomb in https://github.com/OSGeo/grass/pull/5697
- revise main README.md by @petrasovaa in https://github.com/OSGeo/grass/pull/5755
- update markdown file by @jayneel-shah18 in https://github.com/OSGeo/grass/pull/5457
- use the correct release tarball, which includes generated content by @nilason in https://github.com/OSGeo/grass/pull/6665
- Adapt docstrings of pydispatch.saferef for good-looking Sphinx rendering by @echoix in https://github.com/OSGeo/grass/pull/5819
- Add "see also" boxes with cross-refs in grass.script.core docstrings by @echoix in https://github.com/OSGeo/grass/pull/5873
- Add Python to the generated Markdown tool doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/5490
- Add Sphinx-based Python doc to the user doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/5306
- Add canonical URL to Python API doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/5308
- Add captions to Markdown manual gallery by @wenzeslaus in https://github.com/OSGeo/grass/pull/5250
- Add contributing doc to main doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/5451
- Add format to example even when not required by @wenzeslaus in https://github.com/OSGeo/grass/pull/5845
- Add mkdocs social meta tags by @cwhite911 in https://github.com/OSGeo/grass/pull/5168
- Add proxy settings to Markdown build by @wenzeslaus in https://github.com/OSGeo/grass/pull/5236
- Add support for addon keywords to Markdown by @wenzeslaus in https://github.com/OSGeo/grass/pull/5175
- Added GRASS mono font to md-code-font-family by @cwhite911 in https://github.com/OSGeo/grass/pull/5720
- Added GRASS social account links and icons to footer by @cwhite911 in https://github.com/OSGeo/grass/pull/5213
- Added NSF funding to docs footer by @cwhite911 in https://github.com/OSGeo/grass/pull/5528
- Added command to serve mkdocs locally by @cwhite911 in https://github.com/OSGeo/grass/pull/5089
- Added material mkdocs tags plugin by @cwhite911 in https://github.com/OSGeo/grass/pull/5153
- Added mkdocs feature content.tabs.link by @cwhite911 in https://github.com/OSGeo/grass/pull/5277
- Added site_author, social card bgcolor, and improved nav controls mkdocs configuration by @cwhite911 in https://github.com/OSGeo/grass/pull/5230
- Added sphinx-sitemap generation to python and updated workflow by @cwhite911 in https://github.com/OSGeo/grass/pull/5331
- Adjust more code-blocks syntax and inside example sections in docstrings by @echoix in https://github.com/OSGeo/grass/pull/5862
- Build Markdown addon index using core index tooling by @wenzeslaus in https://github.com/OSGeo/grass/pull/5310
- Changed GRASS GIS to GRASS by @Pratikshya-Regmi in https://github.com/OSGeo/grass/pull/5673
- Changed instances of 'GRASS GIS' by @NeelGhoshal in https://github.com/OSGeo/grass/pull/5674
- Configure intersphinx to reference Python's and NumPy's docs by @echoix in https://github.com/OSGeo/grass/pull/5861
- Convert docstrings to use note and warning admonitions by @echoix in https://github.com/OSGeo/grass/pull/5820
- Converted mapcalc operators, functions, and data types references to tables by @cwhite911 in https://github.com/OSGeo/grass/pull/5979
- Fix Doxygen warnings due to invalid docstring syntax or missing tags (part 2) by @echoix in https://github.com/OSGeo/grass/pull/6129
- Fix Doxygen warnings due to invalid docstring syntax or missing tags by @echoix in https://github.com/OSGeo/grass/pull/6097
- Fix basic graphical index issues in Markdown by @wenzeslaus in https://github.com/OSGeo/grass/pull/5459
- Fix docstring syntax for return values by @echoix in https://github.com/OSGeo/grass/pull/5812
- Fix indenting of code blocks in docstrings by @echoix in https://github.com/OSGeo/grass/pull/5827
- Fix r.mask Markdown links by @wenzeslaus in https://github.com/OSGeo/grass/pull/5315
- Fix reStructuredText admonitions syntax (notes, warnings, error boxes) by @echoix in https://github.com/OSGeo/grass/pull/5797
- Fix typo in r.water.outlet docs by @echoix in https://github.com/OSGeo/grass/pull/5997
- Fix unescaped substitutions and emphasis, various typos or simple issues by @echoix in https://github.com/OSGeo/grass/pull/5826
- Fixed E721 in gunittest/ by @arohanajit in #4549
- Fixed broken tutorials link in README by @saket0187 in https://github.com/OSGeo/grass/pull/6719
- Fixed mkdocs GitHub stats issue #5237 by @cwhite911 in https://github.com/OSGeo/grass/pull/5326
- Fixed mkdocs fg-footer color by @cwhite911 in https://github.com/OSGeo/grass/pull/5620
- Fixes issues in docstrings related to parameter list rendering by @echoix in https://github.com/OSGeo/grass/pull/5818
- Format raised exceptions docstrings and cross-references by @echoix in https://github.com/OSGeo/grass/pull/5872
- Freezing mkdocs dependencies by @cwhite911 in https://github.com/OSGeo/grass/pull/5648
- Generate manual from markdown using mkdocs by @landam in https://github.com/OSGeo/grass/pull/3849
- HTML to Markdown lua filters by @cwhite911 in https://github.com/OSGeo/grass/pull/5054
- Ignore auto-generated .rst files for python lib docs by @echoix in https://github.com/OSGeo/grass/pull/5860
- Improved styling of search suggestion and added search sharing by @cwhite911 in https://github.com/OSGeo/grass/pull/5905
- Link to addons repo for addons by @wenzeslaus in https://github.com/OSGeo/grass/pull/5319
- Merge MkDocs and Sphinx sitemaps into single manual sitemap by @cwhite911 in https://github.com/OSGeo/grass/pull/5355
- MkDocs index and nav redesign by @cwhite911 in https://github.com/OSGeo/grass/pull/5207
- Organized mkdocs file and nav by @cwhite911 in https://github.com/OSGeo/grass/pull/5096
- RFC on C++17 minimum standard support by @nilason in https://github.com/OSGeo/grass/pull/4566
- Refactor, enhance and uniformize ogsf docstrings by @echoix in https://github.com/OSGeo/grass/pull/6130
- Remove Keywords section from generated doc by @wenzeslaus in https://github.com/OSGeo/grass/pull/5444
- Remove old footer links from MkDocs site by @wenzeslaus in https://github.com/OSGeo/grass/pull/5427
- Removed trailing slash from mkdocs github edit and view urls for addons by @cwhite911 in https://github.com/OSGeo/grass/pull/5220
- Render todo boxes, other code blocks formatting and label syntax by @echoix in https://github.com/OSGeo/grass/pull/5836
- Replace keywords index by MkDocs tags by @wenzeslaus in https://github.com/OSGeo/grass/pull/5446
- Replace table by sections for standard parser options by @wenzeslaus in https://github.com/OSGeo/grass/pull/5235
- Separate topics from keywords by 2nd tags plugin by @wenzeslaus in https://github.com/OSGeo/grass/pull/5472
- Show grass.tools with arrays before grass.script.array by @wenzeslaus in https://github.com/OSGeo/grass/pull/6313
- Standardize naming: use "GRASS" instead of "GRASS GIS" by @lindakarlovska in https://github.com/OSGeo/grass/pull/5644
- Synchronize MkDocs styles with brand by @cwhite911 in https://github.com/OSGeo/grass/pull/5586
- Tell MkDocs about pages linked from other pages by @wenzeslaus in https://github.com/OSGeo/grass/pull/5332
- Trim and left strip blocks in mkdocs output by @echoix in https://github.com/OSGeo/grass/pull/5692
- Unify tool index wording by @wenzeslaus in https://github.com/OSGeo/grass/pull/5447
- Update contributing docs to refer to
ruff formatby @echoix in https://github.com/OSGeo/grass/pull/5027 - Update mkdocs edit on github to work with addons by @cwhite911 in https://github.com/OSGeo/grass/pull/5164
- Updating mkdocs styling by @cwhite911 in https://github.com/OSGeo/grass/pull/5119
- Use Documentation instead of Reference Manual by @wenzeslaus in https://github.com/OSGeo/grass/pull/5525
- Use GRASS, tools, and no generic headers by @wenzeslaus in https://github.com/OSGeo/grass/pull/5471
- Use SPDX license ID for new files by @nilason in https://github.com/OSGeo/grass/pull/6001
- Use YAML list for keywords in front matter by @wenzeslaus in https://github.com/OSGeo/grass/pull/5320
- Use backticks as literal in Sphinx by @wenzeslaus in https://github.com/OSGeo/grass/pull/6399
- Use keywords property in MkDocs, not separate tags by @wenzeslaus in https://github.com/OSGeo/grass/pull/5318
- Use meta page info from HTML in Markdown by @wenzeslaus in https://github.com/OSGeo/grass/pull/5169
- Use more crossrefs in grass.script.core by @echoix in https://github.com/OSGeo/grass/pull/5868
- Various docstring fixes related to parameter markup by @echoix in https://github.com/OSGeo/grass/pull/5869
- Vlib/build.c - improve syntax in Vect__build_downgrade docstring by @pesekon2 in https://github.com/OSGeo/grass/pull/5723
- add Intro: Graphical User Interface by @neteler in https://github.com/OSGeo/grass/pull/4746
- add README.md to doc/development/rfc/ by @neteler in https://github.com/OSGeo/grass/pull/4316
- add guidelines for writing a meaningful pull request by @neteler in https://github.com/OSGeo/grass/pull/4197
- add intro text to imageryintro.html by @neteler in https://github.com/OSGeo/grass/pull/4536
- add miscellaneous tools to full index (markdown) by @landam in https://github.com/OSGeo/grass/pull/5761
- add missing comma in pygrass_modules.rst by @pesekon2 in https://github.com/OSGeo/grass/pull/6139
- adding new logo to docs by @cwhite911 in https://github.com/OSGeo/grass/pull/5612
- convert Python API docs to Sphinx Material theme by @cwhite911 in https://github.com/OSGeo/grass/pull/5617
- convert headings to title case in r.example.md by @ArthPatel1502 in https://github.com/OSGeo/grass/pull/6690
- delete unused, outdated files by @pesekon2 in https://github.com/OSGeo/grass/pull/3851
- enable btree2/kdtree lib doxygen file for Programmer's manual by @neteler in https://github.com/OSGeo/grass/pull/4786
- fix GRASS logo image size by @tmszi in https://github.com/OSGeo/grass/pull/5662
- fix an article before XML (a -> an) by @pesekon2 in https://github.com/OSGeo/grass/pull/5753
- fix broken HTML by @neteler in https://github.com/OSGeo/grass/pull/4720
- fix building markdown documentation by @petrasovaa in https://github.com/OSGeo/grass/pull/5100
- fix code snippet languages by @petrasovaa in https://github.com/OSGeo/grass/pull/5095
- fix line-length by @petrasovaa in https://github.com/OSGeo/grass/pull/5174
- fix markdown documentation of GUI tools by @petrasovaa in https://github.com/OSGeo/grass/pull/5086
- fix markdown image syntax in imagery, display, misc, ps tools and scripts by @petrasovaa in https://github.com/OSGeo/grass/pull/5094
- fix markdown image syntax in raster tools by @petrasovaa in https://github.com/OSGeo/grass/pull/5092
- fix markdown image syntax in vector tools by @petrasovaa in https://github.com/OSGeo/grass/pull/5093
- fix markdown linting issues heading-increment and no-duplicate-heading by @petrasovaa in https://github.com/OSGeo/grass/pull/5116
- fix missed MD051/link-fragments by @petrasovaa in https://github.com/OSGeo/grass/pull/5147
- fix missing image in imageryintro.md by @petrasovaa in https://github.com/OSGeo/grass/pull/5176
- fix no-alt-text by @petrasovaa in https://github.com/OSGeo/grass/pull/5154
- fix no-emphasis-as-heading in markdown files by @petrasovaa in https://github.com/OSGeo/grass/pull/5140
- fix no-inline-html (span tag only) by @petrasovaa in https://github.com/OSGeo/grass/pull/5148
- fix parameter types for mapset in pygrass docstrings by @pesekon2 in https://github.com/OSGeo/grass/pull/6171
- fix remaining issues with html dictionary tag replacement by @petrasovaa in https://github.com/OSGeo/grass/pull/5165
- fix remaining no-inline-html by @petrasovaa in https://github.com/OSGeo/grass/pull/5149
- fix spelling of the word 'restaurant' ('resturant', 'resturnat') by @pesekon2 in https://github.com/OSGeo/grass/pull/5754
- fix testing default value in parser by @petrasovaa in https://github.com/OSGeo/grass/pull/6304
- fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5346
- fix typos found via codespell in scripts by @luzpaz in https://github.com/OSGeo/grass/pull/5474
- fix typos in Python doc by @luzpaz in https://github.com/OSGeo/grass/pull/5636
- fix typos in include by @luzpaz in https://github.com/OSGeo/grass/pull/5473
- fix typos in man/ directory by @luzpaz in https://github.com/OSGeo/grass/pull/5256
- fix typos in pygrass by @luzpaz in https://github.com/OSGeo/grass/pull/5708
- fixed E265 from image2target/ by @arohanajit in #4399
- fixing no-inline-html liniting error, part 1 by @petrasovaa in https://github.com/OSGeo/grass/pull/5120
- g.proj - update the meaning of -p by @pesekon2 in https://github.com/OSGeo/grass/pull/5726
- gconsole - fix wrong parameter in docstring by @pesekon2 in https://github.com/OSGeo/grass/pull/5716
- grass.pygrass.vector.table: fix typo (table exist -> table exists) by @pesekon2 in https://github.com/OSGeo/grass/pull/5703
- i.albedo and r.li manual HTML fixes by @neteler in https://github.com/OSGeo/grass/pull/4654
- minor fixes to g.gisenv, i.atcorr, v.centroids, v.overlay, v.type by @neteler in https://github.com/OSGeo/grass/pull/4484
- mkdocs edit and view on github by @cwhite911 in https://github.com/OSGeo/grass/pull/5114
- move Programmer's manual creation to INSTALL.md by @neteler in https://github.com/OSGeo/grass/pull/4336
- pygrass.vector.abstract: fix syntax in Info.open() docstring by @pesekon2 in https://github.com/OSGeo/grass/pull/5724
- pygrass.vector.table - add missing get_path imports by @pesekon2 in https://github.com/OSGeo/grass/pull/5676
- remove trunk from paths by @pesekon2 in https://github.com/OSGeo/grass/pull/4932
- replace instances of GRASS GIS with GRASS in rasterintro and temporalintro docs by @gregorywaynepower in https://github.com/OSGeo/grass/pull/5977
- restructuralize examples - move all of them into a dedicated dir by @pesekon2 in https://github.com/OSGeo/grass/pull/4815
- script to convert HTML manual pages to markdown by @neteler in https://github.com/OSGeo/grass/pull/4620
- update Programmer's Manual's GIS lib (string) section by @nilason in https://github.com/OSGeo/grass/pull/4333
- update and cleanup of infrastructure.md by @neteler in https://github.com/OSGeo/grass/pull/4294
- update figure description for r.neighbors by @agiudiceandrea in https://github.com/OSGeo/grass/pull/6744
- update outdated trac URLs to GitHub by @neteler in https://github.com/OSGeo/grass/pull/4317
- update requirements guide by @emmanuel-ferdman in https://github.com/OSGeo/grass/pull/4718
- v.buffer.html minor edits by @dhdeangelis in https://github.com/OSGeo/grass/pull/4744
- v.build manual typo fix by @dhdeangelis in https://github.com/OSGeo/grass/pull/4604
- v.class.html fix typo, plus minor edit by @dhdeangelis in https://github.com/OSGeo/grass/pull/4762
- v.kernel.html minor edits by @dhdeangelis in https://github.com/OSGeo/grass/pull/4788
- v.mkgrid.html fix manual typos by @dhdeangelis in https://github.com/OSGeo/grass/pull/4724
- v.net.salesman.html fix manual typos by @dhdeangelis in https://github.com/OSGeo/grass/pull/4737
- v.net.timetable.html fix manual typo by @dhdeangelis in https://github.com/OSGeo/grass/pull/4732
- v.out.postgis.html fix manual typos by @dhdeangelis in https://github.com/OSGeo/grass/pull/4717
- v.outlier.html fix typos by @dhdeangelis in https://github.com/OSGeo/grass/pull/4610
- v.rectify.html fix typos by @dhdeangelis in https://github.com/OSGeo/grass/pull/4619
- v.surf.bspline.html fix typo and minor touches by @dhdeangelis in https://github.com/OSGeo/grass/pull/4776
- v.to.3d.html minor edits by @dhdeangelis in https://github.com/OSGeo/grass/pull/4787
- v.to.db.html fix manual typo by @dhdeangelis in https://github.com/OSGeo/grass/pull/4615
- docs: various updates and text fixes in HTML for MD conversion by @neteler in https://github.com/OSGeo/grass/pull/4837
- Ignore UNUSED attribute macros on parameters for doxygen docs by @echoix in https://github.com/OSGeo/grass/pull/6128
- Remove FileType argument types in parser standard options arguments by @echoix in https://github.com/OSGeo/grass/pull/5561
- Upgrade Doxyfile config files with doxygen 1.9.1 by @echoix in https://github.com/OSGeo/grass/pull/6093
- Use a context manager for opening files by @echoix in https://github.com/OSGeo/grass/pull/4291
- Use context manager when opening image file by @echoix in https://github.com/OSGeo/grass/pull/5560
- fix KeyError: 'MDDIR' in man/build_md.py by @neteler in https://github.com/OSGeo/grass/pull/4739
- HTML updates in lib/db and db manual pages and README files by @neteler in https://github.com/OSGeo/grass/pull/4751
- db.in.ogr add column type detection for CSV by @neteler in https://github.com/OSGeo/grass/pull/4883
- fix broken HTML tags by @neteler in https://github.com/OSGeo/grass/pull/4757
- fix more broken HTML tags by @neteler in https://github.com/OSGeo/grass/pull/4765
- fix more broken HTML tags by @neteler in https://github.com/OSGeo/grass/pull/4781
- markdown support fixes and HTML fixes by @neteler in https://github.com/OSGeo/grass/pull/4807
- mention raster semantic labels and multiple http/https fixes by @neteler in https://github.com/OSGeo/grass/pull/4591
- multi-tools lack short descriptions by @neteler in https://github.com/OSGeo/grass/pull/5041
- Uniformize NumPy spelling and URLs by @echoix in https://github.com/OSGeo/grass/pull/4846
- Fixed incorrect URL replacement in view source button by @saket0187 in https://github.com/OSGeo/grass/pull/6745
- doc: Migrate notebooks to grass.tools API (#7360) by @wenzeslaus
- doc: Move grass.tools to second tab for tools (#7352) by @wenzeslaus
- docs: add doxygen 'since' tag for API added with 8.5 (#7371) by @nilason
Libraries and General Functionality
- grass_proj: use OSRIsSame to compare CRSs by @metzm in https://github.com/OSGeo/grass/pull/6579
- lib/arraystats: re-enable "Discont" algorithm by @nilason in https://github.com/OSGeo/grass/pull/5529
- lib/cairodriver: Fix unchecked return value from library by @ShubhamDesai in #5565
- lib/cdhc: Cdhc_alnfac, fix bound condition by @lbartoletti in https://github.com/OSGeo/grass/pull/3873
- lib/cdhc: Fixed uninitialized variable warnings in Cdhc_dmax by @ShubhamDesai in #3995
- lib/db: Fix copy into fixed size buffer issue in SQLite driver by @ShubhamDesai in #4255
- lib/db: remove deprecated implementation of db_get_login() and replace it with that of db_get_login2() by @ymdatta in #4302
- lib/db: remove deprecated implementation of db_set_login() and replace it with that of db_set_login2() by @ymdatta in #4308
- lib/display: D_show_conversions() %.1f to %g where values likely to be smaller than 0.0 by @HamishB in https://github.com/OSGeo/grass/pull/4263
- lib/display: Fix Copy Buffer Size issue in tran_colr.c by @ShubhamDesai in #4851
- lib/driver: Fix Copy Buffer size issues in font2.c by @ShubhamDesai in #6208
- lib/external/parson: complete the wrapping of parson by @nilason in https://github.com/OSGeo/grass/pull/6434
- lib/external/parson: hide parson symbols on linkage by @nilason in https://github.com/OSGeo/grass/pull/6432
- lib/gis: Add a helper function to determine the number of threads for OpenMP by @cyliang368 in https://github.com/OSGeo/grass/pull/3929
- lib/gis: Add portable G_strlcat function by @nilason in https://github.com/OSGeo/grass/pull/4304
- lib/gis: Add portable G_strlcpy function by @lbartoletti in https://github.com/OSGeo/grass/pull/4101
- lib/gis: Fix Dereference after NULL check issue in parser_wps.c by @ShubhamDesai in #6426
- lib/gis: Fix Dereference after null check issue in parser.c by @ShubhamDesai in #6334
- lib/gis: Fix Uninitialized Variable Issue in error.c by @ShubhamDesai in #6203
- lib/gis: Fix out of scope memory access error in file_name function call by @ymdatta in #4650
- lib/gis: Fix uninitialized variable issue in env.c by @ShubhamDesai in #3892
- lib/gis: Refactor va_list usage in debug module by @ymdatta in #4702
- lib: more robust signed polygon size by @metzm in #7366
Show more
- lib/gis: Update lz4 library to latest upstream version (v1.10.0) by @ymdatta in #4666
- lib/gis: add support for PCRE by @nilason in https://github.com/OSGeo/grass/pull/5159
- lib/gis: fix potential buffer overflow issues by @nilason in https://github.com/OSGeo/grass/pull/5216
- lib/gis: fix potential integer overflow issues by @nilason in https://github.com/OSGeo/grass/pull/5217
- lib/gis: fix source typo by @luzpaz in https://github.com/OSGeo/grass/pull/5224
- lib/gis: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5363
- lib/gis: markdown parser lowercase and extension fixes by @neteler in https://github.com/OSGeo/grass/pull/4740
- lib/gis: match prototype with declaration for G_strlcat and G_strlcpy by @nilason in https://github.com/OSGeo/grass/pull/4332
- lib/gis: modernize getl2() by @neteler in https://github.com/OSGeo/grass/pull/3850
- lib/gis: user_config.c: Fix CWE 398 by @lbartoletti in https://github.com/OSGeo/grass/pull/3874
- lib/gmath: Fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5704
- lib/gmath: properly guard BLAS and LAPACK dependent code by @nilason in https://github.com/OSGeo/grass/pull/4346
- lib/gmath: rename ATLAS_wrapper to CBLAS_wrapper by @nilason in https://github.com/OSGeo/grass/pull/4351
- lib/gmath: use C interface to BLAS and LAPACK libraries by @nilason in https://github.com/OSGeo/grass/pull/4247
- lib/gpde: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5706
- lib/imagery: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5707
- lib/imagery: use context manager for file writes in tests (SIM115) by @arohanajit in #5556
- lib/init: add GRASS_CONFIG_DIR environment variable by @imincik in https://github.com/OSGeo/grass/pull/3899
- lib/init: remove old database image by @cwhite911 in https://github.com/OSGeo/grass/pull/5171
- lib/iostream: Remove redundant template parameters by @wenzeslaus in https://github.com/OSGeo/grass/pull/4586
- lib/linkm: Change non-returning internal function types to void by @ymdatta in #4318
- lib/ogsf: Dereference after null check in gvl2.c by @ShubhamDesai in #4588
- lib/ogsf: Fix Resouce Leak issue in gs3.c by @ShubhamDesai in #5410
- lib/ogsf: fix possible overflow errors in gsd_surf.c by @ymdatta in #4635
- lib/ogsf: fix possible overflow errors in gsd_wire.c by @ymdatta in #4636
- lib/ogsf: fix possible overflow errors in gvld.c by @ymdatta in #4637
- lib/ogsf: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5362
- lib/ogsf: free linked list of geopoint objects in gp3.c by @nilason in https://github.com/OSGeo/grass/pull/5205
- lib/parser: Escape special characters in --json by @wenzeslaus in https://github.com/OSGeo/grass/pull/6310
- lib/parser: Separate Markdown code from reStructuredText by @wenzeslaus in https://github.com/OSGeo/grass/pull/5240
- lib/parser: Use None as default for overwrite by @wenzeslaus in https://github.com/OSGeo/grass/pull/6076
- lib/parser: Use the first allowed values in example by @wenzeslaus in https://github.com/OSGeo/grass/pull/6079
- lib/pngdriver: Fix unchecked return value in read_ppm.c by @ShubhamDesai in #6013
- lib/raster: Add bad line to reclass header error by @wenzeslaus in https://github.com/OSGeo/grass/pull/6339
- lib/raster: Add larger buffers, error messages to reclass header reader by @wenzeslaus in https://github.com/OSGeo/grass/pull/6341
- lib/raster: Update JSON structure in Rast_print_json_colors by @NishantBansal2003 in https://github.com/OSGeo/grass/pull/6539
- lib/raster: always pass stack-based buffers by @nilason in https://github.com/OSGeo/grass/pull/6428
- lib/shapelib: sync upstream with shapelib 1.6.0 and GDAL 3.9.2 by @nilason in https://github.com/OSGeo/grass/pull/4395
- lib/vector/Vlib: Fix Unchecked return value from library in snap.c by @ShubhamDesai in #6343
- lib/vector/Vlib: Fix Uninitialized Variable issue in buffer2.c by @ShubhamDesai in #6174
- lib/vector/Vlib: Fix copy into buffer size issue in color_read.c by @ShubhamDesai in #4462
- lib/vector/Vlib: Fix out-of-scope memory access by @ymdatta in #4667
- lib/vector/Vlib: always write out topo files in update mode by @metzm in https://github.com/OSGeo/grass/pull/3459
- lib/vector/Vlib: fix segfault introduced with #5038 by @metzm in https://github.com/OSGeo/grass/pull/5109
- lib/vector/Vlib: free allocated field_info and dbColumn objects (net_build.c) by @nilason in https://github.com/OSGeo/grass/pull/5112
- lib/vector: Replaced strcpy with G_strlcpy in diglib by @ShubhamDesai in #4149
- lib/vector: fix always true if-condition in Vect_point_buffer2() by @nilason in https://github.com/OSGeo/grass/pull/4115
- lib/vector: fix typos by @luzpaz in https://github.com/OSGeo/grass/pull/5423
- lib/vector: new functions for setting trim of GEOS WKT output by @nilason in https://github.com/OSGeo/grass/pull/4123
- lib/vector: remove writing trailing spaces in ASCII format by @petrasovaa in https://github.com/OSGeo/grass/pull/6260
- lib: Accept more newline styles in G_getl (#3853) by @wenzeslaus in https://github.com/OSGeo/grass/pull/3853
- lib: Add new SRTM_percent color table by @cmbarton in https://github.com/OSGeo/grass/pull/4608
- lib: Add wrapper for JSON output handling by @saket0187 in https://github.com/OSGeo/grass/pull/6979
- lib: Change default zone value from -1 to 0 by @wenzeslaus in https://github.com/OSGeo/grass/pull/6431
- lib: Fix Copy into fixed buffer size issues in table.c by @ShubhamDesai in #6330
- lib: Fix safeRef regression after removing
__cmp__in https://github.com/OSGeo/grass/pull/4684 by @echoix in https://github.com/OSGeo/grass/pull/4896 - lib: Fix uninitialized variable 'encoding' in parser_interface.c by @ShubhamDesai in #3975
- lib: Fix uninitialized variable issue in shapiroe.c by @ShubhamDesai in #3994
- lib: Replaced cmp method with compensating methods for Python3 functionality by @arohanajit in #4684
- lib: add G_OPT_T_SUFFIX as standard parser option by @ninsbl in https://github.com/OSGeo/grass/pull/6966
- lib: add grass JSON API by @NishantBansal2003 in https://github.com/OSGeo/grass/pull/4801
- lib: deprecate G_snprintf() and replace with C99 snprintf() by @nilason in https://github.com/OSGeo/grass/pull/4189
- lib: fix missing prototypes by @nilason in https://github.com/OSGeo/grass/pull/4191
- libgis: G__usage_markdown() include tool label in metadata if defined by @landam in https://github.com/OSGeo/grass/pull/5677
- libgis: define new standardised option
G_OPT_M_SEEDby @NishantBansal2003 in https://github.com/OSGeo/grass/pull/5281 - libparson: use the parser wrapper functions everywhere by @petrasovaa in https://github.com/OSGeo/grass/pull/6403
- library: Add imagery Python library module to grass.script by @ninsbl in https://github.com/OSGeo/grass/pull/3756
- libvector/neta: fix memory leaks by @nilason in #3618 #3619
- raster/raster3d: Initialize Cell_head structure contents before using it in r3.in.lidar, r.in.lidar, r.in.pdal, r.in.xyz by @ymdatta in #4390
- rasterlib: Rast_print_json_colors() added (taken from r.colors.out) by @NishantBansal2003 in https://github.com/OSGeo/grass/pull/4665
- Fix resource leak issues by @ShubhamDesai in #5372 #5606 #5495 #5155 #5133 #6173 #5915 #6044 #6043 #5999 #5607 #6351 #4612 #4954 #5415 #4533 #5414 #5038 #5080 #4960 #4507 #5078 #4627 #4661 #5077 #6041 #5908 #5380 #4606 #4992 #6274 #4775 #4796 #6102 #5968 #4458 #5132 #5032 #6354 #6288 #6169 #6069 #4977 #4626 #6063 #4754 #5407 #5398 #4821 #5076 #4858 #6273 #6382 #5151
Startup, Initialization, and Environment
- Add retries and timeout to mapset locking by @wenzeslaus in https://github.com/OSGeo/grass/pull/5443
- Add typing annotations where appropriate by @echoix in https://github.com/OSGeo/grass/pull/5482
- Apply isort to imports by @echoix in https://github.com/OSGeo/grass/pull/5478
- Enable subcommands for the main grass command by @wenzeslaus in https://github.com/OSGeo/grass/pull/6442
- Fix F401 Linter Warnings by Replacing Wildcard Imports with Explicit Imports in init.py by @arohanajit in #4647
- Fix SyntaxWarning: invalid escape sequence in grass.py by @dudaka in https://github.com/OSGeo/grass/pull/6239
- Rename often shadowed internal helper function
f()tofw()by @echoix in https://github.com/OSGeo/grass/pull/5480 - Simply import grass, try harder if it fails by @wenzeslaus in https://github.com/OSGeo/grass/pull/6393
- Update ASCII art from GRASS GIS to GRASS by @echoix in https://github.com/OSGeo/grass/pull/5694
- Use context managers for opening files by @echoix in https://github.com/OSGeo/grass/pull/5479
- Use mask, not MASK in shell prompt by @wenzeslaus in https://github.com/OSGeo/grass/pull/5003
- Use pathlib Path.read_text for readfile in the main executable by @echoix in https://github.com/OSGeo/grass/pull/4234
- Use pathlib Path.write_text for writefile in the main executable by @echoix in https://github.com/OSGeo/grass/pull/4235
- Change Location to Project in first-time user messages by @ecodiv in https://github.com/OSGeo/grass/pull/4193
Translations, Internationalization, and Localization
- Replace strings constructed by parts with complete strings by @echoix in #5938
- fix translations and duplicate messsages in po files by @neteler in #4722 #4859
- Use context manager for opening files in locale/grass_po_stats by @echoix in #6192
- Multiple translations update from OSGeo Weblate by @osgeoweblate
Windows
- Fix comment in msvc/fcntl.h by @HuidaeCho in https://github.com/OSGeo/grass/pull/5991
- Move msvc/gettimeofday.c to msvc/sys by @HuidaeCho in https://github.com/OSGeo/grass/pull/6110
- Use the same M_PI_4 value to avoid redefinition warnings by @HuidaeCho in https://github.com/OSGeo/grass/pull/5771
- Add Jupyter dependencies to GRASS daily builds by @lindakarlovska in https://github.com/OSGeo/grass/pull/6289
- Apply OSGeo4W patches for PostgreSQL by @echoix in https://github.com/OSGeo/grass/pull/4996
- Do not pause in .bat and fix executable name in test on Windows by @echoix in https://github.com/OSGeo/grass/pull/5624
- Merge msvc/open.c and msvc/creat.c into msvc/fcntl.c by @HuidaeCho in https://github.com/OSGeo/grass/pull/5201
- Update NSIS standalone installer: Unicode, High-DPI, GRASS GIS to GRASS, typo by @echoix in https://github.com/OSGeo/grass/pull/5685
- Wrapper header files for MSVC by @HuidaeCho in https://github.com/OSGeo/grass/pull/5194
- Add aliases S_IRUSR and S_IWUSR for _S_IREAD and _S_IWRITE by @echoix in https://github.com/OSGeo/grass/pull/5957
- Trim trailing whitespace in R batch files by @echoix in https://github.com/OSGeo/grass/pull/4790
- patch from OSGeo4W applied by @landam in https://github.com/OSGeo/grass/pull/4121
macOS
- update default dependencies by @nilason in https://github.com/OSGeo/grass/pull/5622 https://github.com/OSGeo/grass/pull/6258
- use conda in stead of mamba to install deps by @nilason in https://github.com/OSGeo/grass/pull/5626
- build with POSIX Threads support by @nilason in #7365
- update to latest libLAS by @nilason in #7367
Packaging, Configuration, Portability, and Compilation
CMake support is based on original work by Rashad Kanavath in 2020 (#289), following up with substantial contributions by Huidae Cho, Nicklas Larsson, Markus Neteler, Loïc Bartoletti, Aaron Saw, Mahesh Maddineni, Kandel Nelson, Edouard Choinière, Corey White and Matthias Kuhn. See Changelog for details.
- Add colortables and other files to addon doc by @wenzeslaus in #5316
- Allow separate build of Markdown and HTML keywords by @wenzeslaus in #5177
- Fix %lu *printf format string to %zu for size_t by @HuidaeCho in #5799
- Fix basic gallery build issues for Markdown by @wenzeslaus in #5247
- Remove BLAS and LAPACK from config by @wenzeslaus in #5101
- Replace Python glob1 by glob in doc build code by @wenzeslaus in #6472
- Skip updating non-existing fontcap on install when cross-compiling by @HuidaeCho in #6896
- correctly report detected LFS state at the end of configure run by @marisn in #6537
- define more typical HAVE_PTHREAD if pthreads library can be used by @marisn in #6479
- fix g.extension test by @petrasovaa in #5102
- move config.h.in customizations to configure.ac by @marisn in #6509
- refactor grass.py in preparation for FHS by @nilason in #5933
- Don't set executable bit on mkdocs.py. (#7325) by @sebastic
Show more
- Updated .gitignore paths to ignore python environments and vscode settings by @cwhite911 in #5081
- Fix file existence checks for cross-compilation by @HuidaeCho in #6895
- build external libraries first by @nilason in #4671
- drop support for PROJ's old
proj_api.hAPI by @nilason in #6693 - fix default variable name for blas and lapack by @nilason in #4343
- fix detection of AGL framework for macOS by @nilason in #6588
- remove HAVE_PROJ_H macro by @nilason in #6714
- require GDAL version 3.7+ by @nilason in #6671
- update to and require use of autoconf 2.72 by @nilason in #6533
- update to latest config.guess and config.sub by @echoix in #4161
- date DB.make for markdown support by @landam in #4742
- pass GDAL include dirs to proj by @parona-source in #6631
- Add Nix files for creating development environment and the package by @imincik in #3889 #5671 #4540 #4196 #5672 #4017 #5550 #3924
- Update Vagrantfile to Ubuntu 24.04 by @landam in #3836
- Update min Python version to 3.10 by @wenzeslaus in #6477
- add macOS app bundle creation script by @nilason in #4946
- build Windows with libopenblas by @nilason in #4716
- rename macos/app dir to macos/files by @nilason in #4936 #4935
Docker
- Add liblapacke-dev package to Ubuntu builds by @echoix in #4371
- Address build warnings in Ubuntu Dockerfile by @ninsbl in #4090
- Change Debian base image to 12.5-slim by @echoix in #6373
- Do not ignore certain git folder for docker build by @mmacata in #4827
- Downgrade PDAL to 2.7.1 in ubuntu_wxgui by @echoix in #3946
- Enable cache for Docker builds by @echoix in #3821
- Fix git clone path in Dockerfile for gdal-grass by @echoix in #5111
- Fixing CFLAG for configuration on Apple ARM M1/2/3 by @pwt-cd in #5055
- Remove scikit-learn from Alpine test by @wenzeslaus in #6394
- Remove unused demolocation test by @wenzeslaus in #6395
- Revert failing cleaning steps in Ubuntu Dockerfile by @echoix in #3830
- Sort package lists and configure options in Dockerfiles by @echoix in #4373
- Update Ubuntu to 24.04 by @ninsbl in #6410
- Use debian:bookworm-slim image, with date suffix instead of debian:stable by @echoix in #3807
- Use only native Python API, set only necessary variables by @neteler in #3819 #3822
- add package to docker image to be able to run gui by @benaloha in #5476
- build GUI from ubuntu using build-args by @ninsbl in #6800
- build gdal-grass by @nilason in #5106 #5115 #5117 #5108
- compile core Ubuntu 24.04 dependencies from source by @ninsbl in #6481
- copy module_items.xml for g.search.modules by @ninsbl in #6578
- define GISBASE for Alpine by @landam and @nilason in #4130 #5137
- fix missing libraries in ubuntu wxgui Dockerfile by @neteler in #4268
- fix various syntax warnings by @neteler in #5481
- re-structure build stages for Ubuntu with and without GUI to optimize caching by @ninsbl in #6534
Contributing and Management
- AI usage policy by @petrasovaa in #6941
- Improve release procedure and increase automation by @wenzeslaus in #3829 #3837 #3795 #3823 #3883 #2963 #3824 #3891 #3876
- Optimize text in release procedure by @neteler in #3882
- add more gitignores and remove accidentally added DS_Store by @petrasovaa in #4995
- update style guide by @petrasovaa in #3790 #3875 #4312 #4207 #5219
New Contributors
- Riya Saxena (@29riyasaxena) made their first contribution in https://github.com/OSGeo/grass/pull/3468
- Chung-Yuan Liang (@cyliang368) made their first contribution in #3786
- Ivan Mincik (@imincik) made their first contribution in https://github.com/OSGeo/grass/pull/3889
- @HamishB made their first contribution in https://github.com/OSGeo/grass/pull/4263
- Arohan Ajit (@arohanajit) made their first contribution in https://github.com/OSGeo/grass/pull/4303
- Rohan (@rohannallamadge) made their first contribution in https://github.com/OSGeo/grass/pull/4310
- Hernán De Angelis (@dhdeangelis) made their first contribution in #4411
- @ww2406 made their first contribution in https://github.com/OSGeo/grass/pull/4504
- Nishant Bansal (@NishantBansal2003) made their first contribution in https://github.com/OSGeo/grass/pull/4590
- Shreshth Malik (@Shreshth-Malik) made their first contribution in #4482
- Emmanuel Ferdman (@emmanuel-ferdman) made their first contribution in https://github.com/OSGeo/grass/pull/4718
- Aniket Shaha (@aniket2405) made their first contribution in https://github.com/OSGeo/grass/pull/4927
- Jayneel Shah (@jayneel-shah18) made their first contribution in #4931
- Smiti Kothari (@codersmiti) made their first contribution in https://github.com/OSGeo/grass/pull/5135
- @luzpaz made their first contribution in https://github.com/OSGeo/grass/pull/5224
- @pwt-cd made their first contribution in https://github.com/OSGeo/grass/pull/5055
- Aterg (@Aterg264) made their first contribution in https://github.com/OSGeo/grass/pull/5325
- Vedant Patel (@Kiraschild) made their first contribution in https://github.com/OSGeo/grass/pull/5539
- Neel Ghoshal (@NeelGhoshal) made their first contribution in https://github.com/OSGeo/grass/pull/5674
- Pratikshya Regmi (@Pratikshya-Regmi) made their first contribution in https://github.com/OSGeo/grass/pull/5673
- Rohan Dhamale (@dvrohan) made their first contribution in #5811
- Marc Meijer (@RemoteCMeijer) made their first contribution in https://github.com/OSGeo/grass/pull/5912
- Dung Ho (@dudaka) made their first contribution in https://github.com/OSGeo/grass/pull/6239
- @bluedotblue made their first contribution in https://github.com/OSGeo/grass/pull/6433
- Arth Parikshit Patel (@ArthPatel1502) made their first contribution in https://github.com/OSGeo/grass/pull/6690
- Joyal Paul (@JoyalMPaul) made their first contribution in #6737
- harshit singh hada (@dehydrated-bear) made their first contribution in https://github.com/OSGeo/grass/pull/6846
- Matthias Kuhn (@m-kuhn) made their first contribution in https://github.com/OSGeo/grass/pull/6868
- Pahal Srivastava (@pahalsrivastava) made their first contribution in https://github.com/OSGeo/grass/pull/6874
- sakirr (@sakirr05) made their first contribution in https://github.com/OSGeo/grass/pull/6897
- @ayushjariyal made their first contribution in https://github.com/OSGeo/grass/pull/6950
Full Changelog: 8.4.2...8.5.0