Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GRASS GIS Updates and Improvements #24

Open
wants to merge 471 commits into
base: main
Choose a base branch
from
Open

GRASS GIS Updates and Improvements #24

wants to merge 471 commits into from

Conversation

a0x8o
Copy link
Owner

@a0x8o a0x8o commented Dec 2, 2024

Pull Request: GRASS GIS Updates and Improvements

This pull request includes various updates, bug fixes, and improvements to the GRASS GIS project. The changes span across multiple areas, including CI dependencies, documentation, code refactoring, and bug fixes.

CI and Dependency Updates

  • Updated docker/dockerfile Docker tag to v1.12
  • Updated dependency bandit to v1.8.0
  • Updated ruff to v0.8.1

Performance Improvements

  • Implemented faster export with many attributes in v.out.ogr

Documentation Updates

  • Fixed broken HTML tags in manual pages
  • Added RFC 10 on C++17 minimum standard support
  • Made minor edits to v.surf.bspline.html, v.to.3d.html, and v.kernel.html
  • Enabled btree2/kdtree lib doxygen file for Programmer's manual

Code Refactoring and Cleanup

  • Fixed PEP8 issues in various files
  • Removed unused variables in location_wizard/dialogs.py and mapdisp/statusbar.py
  • Refactored va_list usage in debug module

Bug Fixes

  • Fixed Resource Leak issues in link.c, walk.c, and main.c
  • Fixed Copy into buffer size issue in r.water.outlet
  • Used different variable name in r.in.pdal to avoid confusion
  • Replaced HAVE_PDAL_NOFILENAMEWRITER configure definition in r.in.pdal

Other Improvements

  • Added suppression file for false positives and pending fixes

arohanajit and others added 6 commits January 29, 2025 15:59
The original example uses r.mapcalc to directly create MASK and then g.remove to disable it. This now uses r.mask to activate and deactivate the mask. NULLs are used in the original expression, which is also what r.mask is using by default.
When there are no areas in the vector map, v.to.rast gave warning, and now after #2459, it gives a verbose message about number of selected areas when areas are selected as type. This gives the verbose message for all types when they are selected making the behavior more consistent across types (points, lines, boundaries, and centroids).

The default for type is point, line, and area, so three verbose messages are produced (when verbose output is enabled) for any vector map.
cwhite911 and others added 30 commits March 5, 2025 12:23
…ntrols (#5230)

* Added default site author to HTML meta tags.
* Improved navigation controls by adding back to top.
* Set default social card background color to the primary color.
* Removed unneeded comments.
Fixes file header uniformity with the rest of the codebase, esp. by using consistent reference to the team in the copyright.

Related to #5266

---------

Co-authored-by: Markus Neteler <[email protected]>
Defines new standard parser option for random seed.

---------

Signed-off-by: Nishant Bansal <[email protected]>
Co-authored-by: Vaclav Petras <[email protected]>
This adds base URL to the Sphinx config which then generates canonical URL in the HTML header for each page automatically.
Some links still pointed to HTML, not Markdown after manual conversion from HTML.
tests: Ignore gunittest.main.test() when collecting tests with pytest

Sets an attribute to the function, that makes pytest ignore it when collecting tests
This adds tabs for code or other content which will be linked and synced if a page has same tabs.
Found via `codespell -q 3 -S "*.po,*.pot,*.ps,*.raw,*.svg,./contributors_extra.csv,./translators.csv,./mswindows/external,./lib/external,./utils/fix_typos.sh" -L aline,alle,alog,ans,anull,apoints,asnd,attch,bufer,buffr,bui,buildin,build-in,bund,clen,co-ordinate,co-ordinates,datas,delt,doubleclick,dout,dudo,dum,dyin,enew,entrys,eto,fle,flor,fpr,fromm,greif,huld,ihs,indx,ine,ines,infex,infp,inout,inpt,ist,linke,linz,lsat,makin,mapp,mis,modul,nam,nams,nd,neast,ned,nin,numer,observ,offsetp,oint,ons,ontext,parm,parms,partialy,redner,re-use,re-used,rin,selectin,sistem,siz,strin,strng,tht,vas,vizual`
While #3849 added link to the specific commit, the URL was always main repo. This rewrites the code to get pure repo URL in a variable and then uses that to link to the specific commit in the appropriate repo. It limits the use of urlparse.urljoin because that is not required to join URLs and brings additional complexity with the need to add trailing slashes.
To use the keywords directly in MkDocs, keywords property needs to be proper YAML list, not a plain comma-separated list as a string. The keywords are now generated like that, and the custom keyword parsing now accepts both version (with and without []).

This does not include any keywords entered manually to Markdown because there are none in this repo, but they are in grass-addons repo which will break the MkDocs reading of the tags from the keywords property (for r.pi, r.green). Addons are addressed in OSGeo/grass-addons#1357.

This includes cleanup of keywords tool metadata syntax which is supposed to use multiple keyword keys now rather than keywords (for a single keyword).

For the tags page generated by MkDocs, this adds an exclude of keyword 'unit test' which does not need to appear in the documentation.

This covers only the YAML changes for keywords. The MkDocs change for tags to keywords is in #5318.
This adds missing files to the addons subdirectory when the documentation is build in the CI. It gets all the directories in the parent dir and copies them over except the addons directory itself and libpython directory (filtering the two know unwanted ones out rather than trying to capture all directory names). An alternative solution would be to generate the links differently when compiling addons, but that would need post-processing like for keywords or changes to the parser code.
New concept for navigation, index, documentation structure and intro pages for the new Markdown-based MkDocs doc, specifically:

- Completely redesign index page to be Getting started page with overview and just couple links elsewhere.
- Add intro pages for interfaces (for now, getting started with interface and overview of interface are the same pages).
- Change navigation to highlight interfaces, concepts, and tools.

This is a first draft, and several issues should be addressed later. Besides the content, links to addons and libpython need a revision.

Related to issue #5162. (Originally raised as index page redesign, but index page does not have to make up for a menu anymore because we do have a menu with MkDocs.)

Selected details:

- Removed old code to build index.html in Python and replaced with a index.md file in Markdown.
- Carefully linked download and tutorials in navigation and files. Links the tutorials site from Getting started.
- Development docs is a placeholder.
- A quickstart.md file considered, but it turned out not to be different from the index itself.
- Add new intro files for interfaces.
- Add a flatten Processing Tools menu by moving intro pages to concepts leaving Processing Tools as more pure API reference, using full_index as index page for Processing Tools.
- Does not include much interfaces in the index page, instead uses a main page for Interfaces to provide an overview and counts on future Getting started guides for each interface. For now, repeats interfaces in getting started, but in the future, these would be shorter intros with more context and less examples.
- Divide command line interface into interactive shell, command exec, and scripting.
- Use command line rather than terminal and shell, and use those only when appropriate.
- As a first draft, it does not include any images.
- For links to Python doc, use absolute URLs with grass-stable.

---------

Co-authored-by: Anna Petrasova <[email protected]>
Co-authored-by: Vaclav Petras <[email protected]>
Remove Sphinx Python doc build from Python quality check CI workflow. It is now build in the Documentation workflow.
…ations adding context managers in `scripts/` (#5329)

* adding context managers

* some fixes

* update
* CI(deps): Update ruff to v0.9.10

* style: Ignore new Ruff rule unused-unpacked-variable (RUF059)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Edouard Choinière <[email protected]>
Found via codespell
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.