Skip to content

Latest commit

 

History

History
346 lines (234 loc) · 12.1 KB

infrastructure.md

File metadata and controls

346 lines (234 loc) · 12.1 KB

How the GRASS GIS Webserver and related infrastructure works

Author: Markus Neteler Last update: Sep 2024

GRASS GIS Source code repository

Maintainer: Markus Neteler, Martin Landa, OSGeo-SAC, https://wiki.osgeo.org/wiki/SAC

Important update April 2019: The source code is now managed on GitHub (rather than in SVN).

The GitHub repositories are:

Git usage:

Issues:

Statistics:

GRASS Web server

Maintainer: M. Neteler

Summary: The system should run almost autonomously.

WinGRASS maintenance scripts

See https://github.com/landam/wingrass-maintenance-scripts

GRASS Mailing lists

Maintainer: Markus Neteler

Available lists:

  • at OSGeo.org (https://lists.osgeo.org/mailman/listinfo):
    • grass-abm: Integration of GRASS with JAVA based agent based modeling (ABM)
    • grass-announce: GRASS announcements
    • grass-commit: Mailing list to distribute GRASS Github commits
    • grass-dev: GRASS GIS Development mailing list
    • grass-es: La lista de correo de GRASS GIS en español
    • grass-psc: GRASS-PSC: GRASS Project Steering Committee
    • grass-stats: GRASS and statistical software
    • grass-translations: Translation of GRASS (i18N)
    • grass-user: GRASS user list
    • grass-web: GRASS website mailing list

Notes:

  • grass-announce:
    • moderated by M. Neteler
    • monthly password reminder is disabled to avoid leakage into publicly archived lists
  • grass-commit is receiving posts from the GRASS Github. Not open for other postings, they will be trashed automatically
  • grass-web is an open list (posting without subscription possible with moderation), moderated by M. Neteler to avoid spam

GRASS Wiki

Maintainer: Martin Landa, Markus Neteler

Macros for manual pages (src, cmd, API, ...):

GRASS IRC

Channel: irc://irc.libera.chat/grass Web based client: See https://grasswiki.osgeo.org/wiki/IRC

Libera IRC:

  • Founder: jmckenna, markusN

Former freenode IRC:

  • channel owner: Alessandro Frigeri ("geoalf")
  • quasi guru level: Markus Neteler ("markusN")
  • original operators:
    • Jachym ("jachym")
    • Luca ("doktoreas")
    • Soeren ("huhabla")
    • Brad ("bdouglas")

GRASS Bugtracker

Current bugtracker (Jan 2020 - today):

Old bugtrackers: see https://grasswiki.osgeo.org/wiki/Bug_tracking

GRASS GIS Addons

Maintainer: Martin Landa, Tomas Zigo, and Markus Neteler

Details:

The redirect to the latest grassX directory is defined on grass.osgeo.org: /etc/apache2/includes/grass.osgeo.org.inc

Procedure building of binaries (Windows):

Procedure of granting write access to Addons repo:

XML file for g.extension: https://grass.osgeo.org/addons/grass8/modules.xml

  • generated in grass-addons/utils/addons/grass-addons-publish.sh

GRASS CI: GitHub Actions

Started in Apr. 2020

Maintainer: Vaclav Petras

  • https://github.com/OSGeo/grass/actions
  • Details: #525
  • CI workflow with:
    • A build job which is not parallelized and is meant for clear & relatively fast check of compilation and building in general. (Duplicating what is running on Travis)
    • A test job which of course needs to build, but the main focus is to run tests, so the compilation is parallelized (depending on nproc) and thus potentially less readable. This runs the whole test suite. (You need to run it locally to see the actual error, but you can see which tests are failing.)
  • Static code analysis/Code quality check using Flake8 with separate checks for python/grass, gui/wxpython, scripts and temporal directories.
    • Configurations ignore different lists of Flake8 errors. The idea is to reduce that to minimum.
    • Code in testsuite directories is also ignored for now, but should not be in the future.

Helper files placed in .github/workflows/

GRASS docker images

Maintainer: Carmen Tawalika, Vaclav Petras + OSGeo-SAC

Docker images are created with a GitHub action. Subsequently, login is done to DockerHub using docker/login-action with username and password through CI secrets and the images pushed to Docker hub at:

User settings:

Helper files placed in .github/workflows/

GRASS Zenodo.org repository: citable source code with DOI

Zenodo page with DOI (for all versions, shows latest release on top): 10.5281/zenodo.5176030

GitHub - Zenodo Integration: The settings are accessible with any GitHub account which has write access to the GRASS GIS GitHub repo and they are managed here:

https://zenodo.org/account/settings/github/repository/OSGeo/grass

In the settings, the GRASS GIS GitHub repository needs to be enabled.

Upcoming releases should automatically show up and get a DOI assigned.

Explanations: https://grasswiki.osgeo.org/wiki/GitHub-Zenodo_linkage

GRASS Coverity Scan

Maintainer: Markus Neteler

Coverity Scan is a service to find security issues. At time the service is used only occasionally.

User message translation management (i18N)

Messages are extracted with gettext message macros.

Translations may be done using the OSGeo Weblate platform:

Anyone with OSGeo-LDAP access can work on the translations.

For technical background and access rights of the Weblate installation, see https://wiki.osgeo.org/wiki/SAC:Weblate.

How Weblate works

When a developer makes a GRASS GIS repo commit on GitHub, GitHub then calls the webhook on Weblate which triggers a refresh of Weblate's git copy of the GRASS GIS repo.

For pushing translations back to GitHub, there is a setting in Weblate for that which defaults to 24 hrs (accumulates translations over a day). Then a pull request with the translations will be opened in the GRASS GIS GitHub repo.

Weblate troubleshooting

In case the Weblate's git copy of the GRASS GIS repo does not update due to a conflict or whatever reason:

Log into Weblate (requires administrator rights) and switch to https://weblate.osgeo.org/projects/grass-gis/#repository. Therein click on "Manage" -> "Repository Maintenance", choose the "Update" button, "Update with merge without fast-forward". If successful, this will create another pull request in the GRASS GIS repo (trigger with "Push" button).

Related Wiki documents

Previous hosting sponsors

Since 2010 the GRASS GIS project is hosted at the Oregon State University Open Source Lab (OSUOSL), Oregon, USA

Numerous institutions have sponsored the GRASS Project with Hardware/Bandwidth (list of master site hosting):

  • 1997-1999: Institut fuer Landschaftspflege und Naturschutz (ILN), Universitaet Hannover, Germany
  • 1999-2001: Institut fuer Physische Geographie und Landschaftsoekologie, Universitaet Hannover, Germany
  • 2001-2008: ITC-irst, Trento, Italy
  • 2009-2010: Telascience.org at San Diego Supercomputer Center, California, USA
  • 2010-today: Oregon State University | Open Source Lab, USA