Geonode: GNIP-63: Contrib apps cleanup on GeoNode

Created on 26 Mar 2019  路  11Comments  路  Source: GeoNode/geonode

GNIP: Contrib apps cleanup on GeoNode

Overview

GeoNode contrib apps should be considered like "extensions" allowing GeoNode to add some specific functionalities for specific purposes.
From another point of view, they could be considered like "plugins" that might be activated from the administrator of the system in order to extend it.

Proposed by

Alessio Fabiani GeoSolutions

Assigned to release

2.10

Motivation

Although GeoNode contrib apps should be treated as plugins, which means simply to install and configure as external libraries each one with its own specific documentation, most of them are not currently based on this concept. They are, instead, part of the core with several "if-else" statements around creating confusion and the impossibility to maintain them in the long term.
Also, they lack documentation and most of the time the few/outdated documentation is mixed with the core one and not having a dedicated section.

Proposal

The aim of this proposal is to:

  1. Identify and remove from the "core" module the contrib apps outdated and not maintained anymore.
  2. Clean up the documentation accordingly
  3. Where possible/not too difficult before the 2.10 release, extract the active contrib apps as external libraries and envisage a way to install/activate them with a procedure as simple as "pip install my-contrib-app" and few tweaks of the local settings.

Obsolete/outdated contrib apps identified until now

NOTE: for those apps listed below, we are proposing to first move them in their own repository and later on, if-and-only-if a volunteer/maintainer will be identified, work to transform them in a real pluggable Django apps instead of mixed stuff of "if-else" inside the GeoNode core.

  • createlayer
  • datastore_shards
  • geosites
  • geotiffio
  • worldmap

Contrib apps eligible for deletion

  • api_basemaps
  • dynamic
  • exif
  • favorite
  • geogig
  • mp
  • nlp
  • slack

Contrib apps in use to be extracted and transformed into external plugins or promoted to core apps

  • monitoring; to be extracted
  • ows_api; to be promoted
  • metadata_xsl; to be promoted

Related Issues

  • [x] Child #4312

Updates

  • [x] createlayer; promoted
  • [x] datastore_shards; extracted
  • [x] geosites; extracted
  • [x] geotiffio; extracted
  • [x] worldmap; extracted
  • [x] api_basemaps; deleted
  • [x] dynamic; deleted
  • [x] exif; deleted
  • [x] favorite; deleted
  • [x] geogig; deleted
  • [x] mp; deleted
  • [x] nlp; deleted
  • [x] slack; deleted
  • [ ] monitoring; extracted
  • [x] ows_api; promoted
  • [x] metadata_xsl; promoted
gnip

Most helpful comment

I am voting for createlayer app to be a core app, it makes sense for me to be able to create empty layer in my SDI when i don't have shape file.

All 11 comments

I am voting for createlayer app to be a core app, it makes sense for me to be able to create empty layer in my SDI when i don't have shape file.

+1
would we use the GeoNode organization on GH? Or should we use a different space?

Extracted contribapps available here along with correctly formatted READMEs

https://github.com/GeoNode/contribs

@afabiani this is breaking WorldMap. My (uncorrect) assumption was that this change would have happened after 2.10. I wouldn't like to fork from master right now that we have the 2.10 release coming soon.
Can we for now backport worldmap and datastore_shards contrib apps in core? Otherwise I haven't the time in the next few days - before the release - to work on a new deployment procedure for this. Thanks!

@capooti nobody is chasing us after releasing at the summit, the goal is to get as close as possible. For sure there will be more need for documentation hence if you need some more time, that is not an issue, I believe.

@afabiani let's take this into account...

@capooti I have put the code along with the instruction on how to activate it again here

https://github.com/GeoNode/contribs/tree/master/geonode/contrib/worldmap

Could have a look at this?

@capooti by the way, I have made few changes in order to simplify the activation of hooksets from the settings and environment variables, see https://github.com/GeoNode/geonode/blob/master/geonode/settings.py#L1190

Try to follow the same approach, the GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY instructs on which hookset activate

Thanks @afabiani and @simboss will have a look and let you know. For deployment should I consider the creation of a package on pypi?

@capooti absolutely yes, that would be ver good IMHO

@afabiani OK will try to work on this now.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gannebamm picture gannebamm  路  4Comments

capooti picture capooti  路  8Comments

jondoig picture jondoig  路  8Comments

hishamkaram picture hishamkaram  路  9Comments

dpadron picture dpadron  路  7Comments