[GRASS-dev] [GRASS GIS] #2895: Define dependencies for GRASS addons
GRASS GIS
trac at osgeo.org
Fri Dec 18 00:57:53 PST 2020
#2895: Define dependencies for GRASS addons
--------------------------+-------------------------
Reporter: pmav99 | Owner: grass-dev@…
Type: enhancement | Status: new
Priority: normal | Milestone: 7.8.3
Component: Default | Version: unspecified
Resolution: | Keywords: g.extension
CPU: Unspecified | Platform: Unspecified
--------------------------+-------------------------
Comment (by sbl):
Replying to [comment:20 wenzeslaus]:
> > Silently installing stuff can be a bit scary...
>
> Why do you think it is scary for GRASS GIS? pip, R, conda, apt, yum, ...
all install dependencies of a package you asked for. Why this should not
happen for GRASS GIS?
Yes, you are right.
So, how would we setup a requirements.txt?
Should it contain different sections, like e.g.
{{{
GRASS_addons
r.area
R_packages
ggplot2
Python_libraries
rpy2>=1.1
cmd_tools
iconv
cs2cs
libraries
libgdal-grass
}}}
Cause the way these dependencies are installed varies a bit, with a
dpendency_check function for each of them...
Maybe better with a dependency json:
{{{
{
"GRASS_addons": [
{
"name": "r.area"
}],
"Python_libraries": [
{
"name": "rpy2",
"version": "1.1"
"version_check": ">="
}], ...
}
}}}
In the functions we might have to think about OS specific aspects (package
manager (incl. conda vs. pip), library names) as well as maybe versions
(e.g. numpy>=1.17).
Also, should a failed dependency check block the installation? Because
that it is not a trivial task I would opt for a warning rather than an
error message in case of missing or unresolved dependencies...
Lastly, should a dependency check function go into ''g.extension'' or into
the python library (script or pygrass). In the python lib it could be used
by AddOn devs at runtime (e.g. if it takes a json formated string or
dict)...
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2895#comment:21>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list