[GRASS-dev] [GRASS GIS] #2681: Remove legacy meaning of LOCATION variable

GRASS GIS trac at osgeo.org
Tue May 19 15:15:57 PDT 2015


#2681: Remove legacy meaning of LOCATION variable
-------------------------------------------------+-------------------------
 Reporter:  wenzeslaus                           |      Owner:  grass-dev@…
     Type:  task                                 |     Status:  new
 Priority:  blocker                              |  Milestone:  8.0.0
Component:  Startup                              |    Version:  svn-trunk
 Keywords:  init, grass.py, interface, CLI,      |        CPU:  Unspecified
  environment variables                          |
 Platform:  All                                  |
-------------------------------------------------+-------------------------
 Especially in older and stable code like `grass.py` we still keep the
 legacy `LOCATION` variable with meaning "full path to a Mapset".

 The bug #2679 suggests that nobody is actually using it. So, there is no
 need for keeping this for backward compatibility anymore.

 I suggest to gradually change the meaning to "Location name" and use
 different variable name for "full path to a Mapset". This can be a gradual
 change with keeping some compatibility or providing warnings. For example,
 the "gisrc" file can support both `LOCATION` and `LOCATION_NAME` as
 "Location name".

 Dropping of LOCATION as "full path to a Mapset" can be without
 consequences but replacing `LOCATION_NAME` by `LOCATION` might be possible
 only for GRASS GIS 8 because of usages outside GRASS by users or in other
 projects (this might be valid only for the "gisrc" file):

  *
 https://github.com/qgis/QGIS/blob/0a1382a0be36d408aebd227fb0066f68c513e41e/python/plugins/processing/algs/grass7/Grass7Utils.py
  *
 https://github.com/moovida/jgrasstools/blob/530c87f26d220f3eeff9d2fb9d21abd8821c00c3/grass/src/main/java/org/jgrasstools/grass/utils/GrassUtils.java
  *
 http://sextante.googlecode.com/svn/trunk/soft/sextante_lib/sextante_gui/src/es/unex/sextante/gui/grass/GrassUtils.java
  *
 https://github.com/geopython/PyWPS/blob/425f0eb160f60714a6705a24ba926e03690ab371/pywps/Grass.py
  *
 http://grasswiki.osgeo.org/wiki/Working_with_GRASS_without_starting_it_explicitly#Bash_examples_.28GNU.2FLinux.29

 In source code, `LOCATION` and `location` variables with meaning "full
 Mapset path" can be replaced by `mapset_path`. (I've also tried
 `full_mapset` but it doesn't seem nice.)

 In the "gisrc" file `LOCATION_NAME` would be replaced by `LOCATION`.

 In environment variables interface, `LOCATION_NAME` would be replaced by
 `LOCATION` and original `LOCATION` by `MAPSET_PATH`.

 It is questionable if we want to support input environment variable with
 meaning "full Mapset path" when we already support setting Location and
 Mapset separately. The "gisrc" file does not support it anyway.

 See also #2679 for possible removal or restoration of environment
 variables for setting Location and Mapset.

 Setting as blocker for 8.0.0 because this can be fully resolved only with
 new version but there are changes which could be done now such as (only)
 dropping the `LOCATION` environmental variable as input.

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2681>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list