RFC 8: Python Language Support

Author of the first draft: Nicklas Larsson

Status: draft


The code base of GRASS GIS consists today (Feb. 2021) of predominantly C code (ca 50 %), Python (ca 30 %) and a smaller amount of C++ (ca 5 %). Each of these languages have evolved significantly in the last 10–20 years. There is, however, no clearly stated policy of supported language standard(s), nor mechanism to update this policy when needed or wanted. This result in uncertainty for contributors for what may be allowed and solutions that may not be optimal.

This RFC aims at setting a policy for GRASS GIS project regarding the minimum version support for Python.


Similarly, the integration of Python within GRASS GIS – driving the GUI and to a large extent replacing shell scripts (bash/sh) for scripting – has gone through a challenging period with the transition from Python 2 to 3. This transition can now be considered completed, but this fact need to be formalised and the minimum version of Python 3 support must be stated.

The minimum support for Python will, in contrast, likely change more often, due to each (minor) version’s 5-years life-time. At this date, the oldest still-alive Python version is 3.6, to be retired in December 2021.


For a new release of a minor GRASS version, the Python minimum version should be raised if the current minimum Python version reaches end of life or there are any important technical reasons.


Last modified 3 weeks ago Last modified on Dec 27, 2021, 9:25:52 PM