[GRASS-dev] External providers in QGIS

* Moritz Lennert <mlennert@club.worldonline.be> [2018-02-08 15:20:14 +0100]:

On 08/02/18 15:08, Nikos Alexandris wrote:

I guess, there are numerous cases like this one. What would,
effectively, mean a removal of external providers (in this case GRASS
GIS)?

Let's make it clear once and for all: noone is speaking about the complete removal of external providers. The issue is where, how and by whom they should be maintained, i.e. within the QGIS core code base, or as plugins.

Thank you the heads-up Moritz.

Nikos

Il 08/02/2018 10:31, Rashad Kanavath ha scritto:

I don't know what these developers are going to do with a bugfix after a
new release. That's some kind of mystery unsolved to me.

we are doing regular point releases, an approach which has proven very
successful IMHO

I hope there will be zero bugs after releases.

I hope you are joking :slight_smile:

All the best.
--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

Il 08/02/2018 13:43, Rashad Kanavath ha scritto:

But aside all decision making stuff, can you check what is to be done in
this PR?
https://github.com/qgis/QGIS/pull/6272
It is something worthy a discussion and not a plugin or not. I was
asking because QGIS 3 is near and diff is not that big.
If there is something extra need to be done to get this merged, I would
happy to hear about it.

agreed, this is an important and urgent point.
please some qgis dev could check this?
thanks.
--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

Il 08/02/2018 15:49, Nikos Alexandris ha scritto:

* Moritz Lennert <mlennert@club.worldonline.be> [2018-02-08 15:20:14
+0100]:

On 08/02/18 15:08, Nikos Alexandris wrote:

I guess, there are numerous cases like this one. What would,
effectively, mean a removal of external providers (in this case GRASS
GIS)?

Let's make it clear once and for all: noone is speaking about the
complete removal of external providers. The issue is where, how and by
whom they should be maintained, i.e. within the QGIS core code base,
or as plugins.

Thank you the heads-up Moritz.

true, but removal from core would mean the external plugin has to be
created, maintained, tested, and documented by someone. If this is
missing, the external plugin simply wil not appear. This is what
happened with R. Once a provider is out and unmaintained, it becomes
less visible, and less likely to attract attention. The work to bring it
back to life, with all the above, will be much higher than when in core,
and increasing over time.
All the best.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

pcav wrote

Il 08/02/2018 15:49, Nikos Alexandris ha scritto:

* Moritz Lennert &lt;

mlennert@.worldonline

&gt; [2018-02-08 15:20:14

+0100]:

On 08/02/18 15:08, Nikos Alexandris wrote:

I guess, there are numerous cases like this one. What would,
effectively, mean a removal of external providers (in this case GRASS
GIS)?

Let's make it clear once and for all: noone is speaking about the
complete removal of external providers. The issue is where, how and by
whom they should be maintained, i.e. within the QGIS core code base,
or as plugins.

Thank you the heads-up Moritz.

true, but removal from core would mean the external plugin has to be
created, maintained, tested, and documented by someone. If this is
missing, the external plugin simply wil not appear. This is what
happened with R. Once a provider is out and unmaintained, it becomes
less visible, and less likely to attract attention. The work to bring it
back to life, with all the above, will be much higher than when in core,
and increasing over time.
All the best.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis
_______________________________________________
grass-dev mailing list

grass-dev@.osgeo

https://lists.osgeo.org/mailman/listinfo/grass-dev

this touches Moritz' questions listed here:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087420.html

-----
best regards
Helmut
--
Sent from: http://osgeo-org.1560.x6.nabble.com/Grass-Dev-f3991897.html

On Thu, Feb 8, 2018 at 5:51 PM, Paolo Cavallini <cavallini@faunalia.it>
wrote:

Il 08/02/2018 13:43, Rashad Kanavath ha scritto:

> But aside all decision making stuff, can you check what is to be done in
> this PR?
> https://github.com/qgis/QGIS/pull/6272
> It is something worthy a discussion and not a plugin or not. I was
> asking because QGIS 3 is near and diff is not that big.
> If there is something extra need to be done to get this merged, I would
> happy to hear about it.

agreed, this is an important and urgent point.
please some qgis dev could check this?
thanks.

I am giving up on this contribution as it seems impossible to get small
changes like this.
Thanks for all your time.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

--
Regards,
   Rashad

On 09/02/18 02:55, Nyall Dawson wrote:

On 9 February 2018 at 00:20, Moritz Lennert
<mlennert@club.worldonline.be> wrote:

On 08/02/18 15:08, Nikos Alexandris wrote:

I guess, there are numerous cases like this one. What would,
effectively, mean a removal of external providers (in this case GRASS
GIS)?

Let's make it clear once and for all: noone is speaking about the complete
removal of external providers. The issue is where, how and by whom they
should be maintained, i.e. within the QGIS core code base, or as plugins.

Yes, this is a great point. I think this discussion has got
sidetracked with some misunderstandings.

Here's the situation as I see it:

------------
The past
-----------

We (the QGIS project) have struggled to keep a bunch of providers
stable and available with the base QGIS install, and the current
maintainers (Alex and Victor, others) have (understandably) struggled
with the burden of maintaining these alone and the time commitment
required to do so. Users have been frustrated by breakage which occurs
when the algorithms they depend on break due to changes in underlying
libraries for which the processing providers have not been adapted.

Despite this, I'd say overall it's worked OK-ish up to now, but
definitely with lots of room for improvement.

-------------
The goals
-------------

I think everyone involved is in agreement that processing's strength
comes when there's many providers available and it's able to tie
together processes regardless of which provider or library they come
from. So I'd say our common goals are:

1. Encourage development of as many processing providers as possible
2. Make it easy for developers to create and maintain these providers
3. Make it easy for users to be able to use the providers
4. Make everything stable and painfree for users

Any disagreements? No? Good :wink:

So if we agree that those are the end goals, we should be using them
to drive this discussion.

-------------------
The questions
-------------------

The open, debatable questions are:

- Which is the best approach for allowing easy maintenance of
providers (*regardless* of whether the provider is maintained by the
core QGIS team or a 3rd party)? Is it keeping the code in the master
codebase and locking to QGIS releases, or publishing via plugins and
having independent release schedules? Which approach will encourage
more active maintenance of these providers and share the burden of
this maintenance?

- Who should be responsible for maintaining the providers? Should
maintenance be done by the QGIS core developer team or by 3rd parties?

- How do we make these tools available for ALL interested users? How
can we ensure that 3rd party dependencies are always available and
have a consistent feature set, regardless of which platform the user
is running? Does having the QGIS team or 3rd parties maintain the
provider help make the tools more readily available? Does having the
providers in master or plugins make the 3rd party dependencies more
readily available or not?

- How can we ensure that providers are well tested and don't break
with changes in QGIS OR from 3rd party library updates? Does having
the QGIS team or 3rd parties affect this stability? Does having the
providers in master or plugins affect this stability?

- Is it a core requirement that 3rd party providers are installed with
EVERY QGIS install, or is it acceptable to require interested users to
manually install the tools which they find useful? If the second
option is preferred, then how can we ensure that users are aware of
the availability of these tools?

- Does it make it easier for everyone involved if we just delete all
the python bindings for processing and only allow core, native, c++
algorithms, and merge all our codebases into a single unified
QGIS+SAGA+GRASS+OTB+R mega package? (I joke... :wink:

This isn't an easy discussion, but please, let's keep the discussion
civil, factual, and informed, and driven by the above goals.

Thanks for this summary, Nyall. It overlaps my summary in a parallel thread:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087420.html

Moritz

Il 09/02/2018 09:34, Rashad Kanavath ha scritto:

I am giving up on this contribution as it seems impossible to get small
changes like this.
Thanks for all your time.

Hi Rashad,
please be patient: bear with us, and we'll find the most efficient
solution. In QGIS we have a very friendly environment, even when tech
discussion may seem harsh and lengthy. I'm sure there is ample room for
profitable cooperation.
All the best, and thanks for your work.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

Dear Nyall and all,

here are some of my thoughts mostly relating to GRASS GIS (although it may not express views of the whole GRASS GIS developer team).

On Thu, Feb 8, 2018 at 8:55 PM, Nyall Dawson <nyall.dawson@gmail.com> wrote:

Here’s the situation as I see it:


The past

We (the QGIS project) have struggled to keep a bunch of providers
stable and available with the base QGIS install, and the current
maintainers (Alex and Victor, others) have (understandably) struggled
with the burden of maintaining these alone and the time commitment
required to do so. Users have been frustrated by breakage which occurs
when the algorithms they depend on break due to changes in underlying
libraries for which the processing providers have not been adapted.

Despite this, I’d say overall it’s worked OK-ish up to now, but
definitely with lots of room for improvement.


The goals

I think everyone involved is in agreement that processing’s strength
comes when there’s many providers available and it’s able to tie
together processes regardless of which provider or library they come
from. So I’d say our common goals are:

  1. Encourage development of as many processing providers as possible
  2. Make it easy for developers to create and maintain these providers
  3. Make it easy for users to be able to use the providers
  4. Make everything stable and painfree for users

Any disagreements? No? Good :wink:

So if we agree that those are the end goals, we should be using them
to drive this discussion.


The questions

The open, debatable questions are:

  • Which is the best approach for allowing easy maintenance of
    providers (regardless of whether the provider is maintained by the
    core QGIS team or a 3rd party)? Is it keeping the code in the master
    codebase and locking to QGIS releases, or publishing via plugins and
    having independent release schedules? Which approach will encourage
    more active maintenance of these providers and share the burden of
    this maintenance?

One thing is where to keep the code, however I’m not sure what code are we talking about and I would like to talk about this first. I think that recent post by Moritz is bringing this up as well:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087420.html

As far as I know, QGIS Processing has a text file for each GRASS module describing its interface and maintenance of these takes time. However, every GRASS module can tell about itself when called with --interface-description parameter. If this is used, individual parameters don’t need to be maintained and any, even user provided module can be executed in processing.

The --interface-description parameter gives XML which would need to be converted or a new parameter, let’s say --qgis-description, would need to be added for a QGIS-specific format, there is for example --script for GRASS GIS interface description for scripts. --qgis-description would need to be in GRASS GIS code base while the conversion can be anywhere. See emails from Rashad discussing a possible implementation with the --qgis-description way and the OTB way:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087362.html
https://lists.osgeo.org/pipermail/grass-dev/2018-February/087390.html

The was discussed in the past and in fact, it is used in the QGIS GRASS plugin as Radim explains in this older email:

https://lists.osgeo.org/pipermail/grass-dev/2015-March/074629.html

However, it is not using the --interface-description XML only, but it is also using the qgm files to supply some additional information which means that this system still requires updates which are separate from the updates of GRASS modules. This can be avoided if the necessary information is updated upstream or sometimes even GRASS --interface-description format or the individual module descriptions are extended to include that what is needed by QGIS Processing. Here is a thread which disuses this issues although diverges into the following:

https://lists.osgeo.org/pipermail/grass-dev/2015-September/076138.html

One issue which is creating differences between QGIS Processing representation of the module and the GRASS one is the issue of advanced parameters. GRASS itself has mechanism to organize the parameters into groups and marks the required ones. This is of course something which is constantly being refined and it can be used and changed also for QGIS Processing as discussed in this 2015 post:

https://lists.osgeo.org/pipermail/grass-dev/2015-December/078000.html

Other issues besides the interface include list of GRASS modules usable and unusable in QGIS Processing, thematic tree of these modules, splitting modules and more. Many of these are discussed in this recent post:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087388.html

One of the issues is issue of formats (or import & export). Here again, it seems to that it is more advantageous to have a function in GRASS code base to care take of the import and, if needed, push the changes upstream to it (from QGIS point of view). Here is a related example which is a comment from Markus Neteler (regarding currently preferred solution for vector import) which would be part of PR/patch review process if the import function was originally submitted as extension of GRASS code base:

https://github.com/qgis/QGIS/pull/5426#issuecomment-345067457

Then there is of course the issue of GRASS modules which are more difficult to wrap in QGIS Processing because the inputs and outputs are not explicitly stated, most prominent example is probably r.mapcalc but there is couple of more, although we were able to reduce this number lately:

https://lists.osgeo.org/pipermail/grass-dev/2015-January/072979.html

See also the following post from Giovanni Manghi (sent off-list to Markus Neteler and shared by him) and a ticket commend by me for more examples and details:

https://lists.osgeo.org/pipermail/grass-dev/2014-August/070342.html
https://trac.osgeo.org/grass/ticket/2409#comment:17

Here is a good r.mapcalc-related example of (at least) asking for changes upstream (although sent privately to Markus Neteler who opened the issue):

https://trac.osgeo.org/grass/ticket/3431

  • Who should be responsible for maintaining the providers? Should
    maintenance be done by the QGIS core developer team or by 3rd parties?

I’m not sure if we can really separate this from the place in the code, but if there is a notion of pushing changes upstream then that gives definitively us more flexibility.

Besides maintenance, I think the initial development, which is necessary for a realistic maintenance plan, is a major issue. I, and I think some other GRASS devs too, would be happy to work on it if the financing is addressed. A different suggestion is here as well and that’s GSoC idea proposed by Martin Landa:

https://trac.osgeo.org/grass/wiki/GSoC/2018#ImproveGRASSintegrationinQGIS3

  • Is it a core requirement that 3rd party providers are installed with
    EVERY QGIS install, or is it acceptable to require interested users to
    manually install the tools which they find useful? If the second
    option is preferred, then how can we ensure that users are aware of
    the availability of these tools?

If they install manually, on Windows, users can have the latest version of the software instead of the one packaged with QGIS. OSGeo4W is a different case; not sure about Mac. However, on Linux, the decision is up to the packagers, so in any case, the QGIS part needs to be able to work with different versions. Regardless of QGIS packaging efforts, I have seen many users with old GRASS who installed new standalone GRASS on the side, even recently.

On the other hand, many users benefit from the one package, because they need to get software approved, if they get QGIS packaged with GRASS approve, they got GRASS as well. Getting approval for each individual provider is likely more paperwork.

I hope this will help and let me know what I’m missing.

Best,

Vaclav

Il 10/02/2018 14:38, Anita Graser ha scritto:

On Fri, Feb 9, 2018 at 11:01 AM, Richard
Duivenvoorde <rdmailings@duif.net <mailto:rdmailings@duif.net>> wrote:

    Maybe at a hackfest, foss4g or other meeting it is good to come together
    face to face so it is easier to actually SHOW each other the
    bears/problems we see?

Since Madeira is just around the corner, let's organize a round table
discussion on this issue. I've started a section here:

https://github.com/qgis/QGIS/wiki/DeveloperMeetingMadeira2018#future-of-processing-providers

Please add yourself to the list if you are interested in participating
on-site or remotely. We'll then try to find a time slot that works for
everyone.

thanks Anita for setting it up.
Please all interested parties add your name to the list.
All the best.

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis

Thanks Vaclav for your detailed analysis. As expected, it seems that
there are a number of common tasks between GRASS and OTB, possibly also
SAGA, so it make sense to keep a joint discussion. Please consider
participating even remotely to the HackFest discussion:
https://github.com/qgis/QGIS/wiki/DeveloperMeetingMadeira2018#future-of-processing-providers
All the best.

Il 09/02/2018 21:33, Vaclav Petras ha scritto:

Dear Nyall and all,

here are some of my thoughts mostly relating to GRASS GIS (although it
may not express views of the whole GRASS GIS developer team).

On Thu, Feb 8, 2018 at 8:55 PM, Nyall Dawson <nyall.dawson@gmail.com
<mailto:nyall.dawson@gmail.com>> wrote:

Here's the situation as I see it:

------------
The past
-----------

We (the QGIS project) have struggled to keep a bunch of providers
stable and available with the base QGIS install, and the current
maintainers (Alex and Victor, others) have (understandably) struggled
with the burden of maintaining these alone and the time commitment
required to do so. Users have been frustrated by breakage which occurs
when the algorithms they depend on break due to changes in underlying
libraries for which the processing providers have not been adapted.

Despite this, I'd say overall it's worked OK-ish up to now, but
definitely with lots of room for improvement.

-------------
The goals
-------------

I think everyone involved is in agreement that processing's strength
comes when there's many providers available and it's able to tie
together processes regardless of which provider or library they come
from. So I'd say our common goals are:

1. Encourage development of as many processing providers as possible
2. Make it easy for developers to create and maintain these providers
3. Make it easy for users to be able to use the providers
4. Make everything stable and painfree for users

Any disagreements? No? Good :wink:

So if we agree that those are the end goals, we should be using them
to drive this discussion.

-------------------
The questions
-------------------

The open, debatable questions are:

- Which is the best approach for allowing easy maintenance of
providers (*regardless* of whether the provider is maintained by the
core QGIS team or a 3rd party)? Is it keeping the code in the master
codebase and locking to QGIS releases, or publishing via plugins and
having independent release schedules? Which approach will encourage
more active maintenance of these providers and share the burden of
this maintenance?

One thing is where to keep the code, however I'm not sure what code are
we talking about and I would like to talk about this first. I think that
recent post by Moritz is bringing this up as well:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087420.html
<https://lists.osgeo.org/pipermail/grass-dev/2018-February/087420.html&gt;

As far as I know, QGIS Processing has a text file for each GRASS module
describing its interface and maintenance of these takes time. However,
every GRASS module can tell about itself when called with
--interface-description parameter. If this is used, individual
parameters don't need to be maintained and any, even user provided
module can be executed in processing.

The --interface-description parameter gives XML which would need to be
converted or a new parameter, let's say --qgis-description, would need
to be added for a QGIS-specific format, there is for example --script
for GRASS GIS interface description for scripts. --qgis-description
would need to be in GRASS GIS code base while the conversion can be
anywhere. See emails from Rashad discussing a possible implementation
with the --qgis-description way and the OTB way:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087362.html
<https://lists.osgeo.org/pipermail/grass-dev/2018-February/087362.html&gt;
https://lists.osgeo.org/pipermail/grass-dev/2018-February/087390.html
<https://lists.osgeo.org/pipermail/grass-dev/2018-February/087390.html&gt;

The was discussed in the past and in fact, it is used in the QGIS GRASS
plugin as Radim explains in this older email:

https://lists.osgeo.org/pipermail/grass-dev/2015-March/074629.html
<https://lists.osgeo.org/pipermail/grass-dev/2015-March/074629.html&gt;

However, it is not using the --interface-description XML only, but it is
also using the qgm files to supply some additional information which
means that this system still requires updates which are separate from
the updates of GRASS modules. This can be avoided if the necessary
information is updated upstream or sometimes even GRASS
--interface-description format or the individual module descriptions are
extended to include that what is needed by QGIS Processing. Here is a
thread which disuses this issues although diverges into the following:

https://lists.osgeo.org/pipermail/grass-dev/2015-September/076138.html
<https://lists.osgeo.org/pipermail/grass-dev/2015-September/076138.html&gt;

One issue which is creating differences between QGIS Processing
representation of the module and the GRASS one is the issue of advanced
parameters. GRASS itself has mechanism to organize the parameters into
groups and marks the required ones. This is of course something which is
constantly being refined and it can be used and changed also for QGIS
Processing as discussed in this 2015 post:

https://lists.osgeo.org/pipermail/grass-dev/2015-December/078000.html
<https://lists.osgeo.org/pipermail/grass-dev/2015-December/078000.html&gt;

Other issues besides the interface include list of GRASS modules usable
and unusable in QGIS Processing, thematic tree of these modules,
splitting modules and more. Many of these are discussed in this recent post:

https://lists.osgeo.org/pipermail/grass-dev/2018-February/087388.html
<https://lists.osgeo.org/pipermail/grass-dev/2018-February/087388.html&gt;

One of the issues is issue of formats (or import & export). Here again,
it seems to that it is more advantageous to have a function in GRASS
code base to care take of the import and, if needed, push the changes
upstream to it (from QGIS point of view). Here is a related example
which is a comment from Markus Neteler (regarding currently preferred
solution for vector import) which would be part of PR/patch review
process if the import function was originally submitted as extension of
GRASS code base:

https://github.com/qgis/QGIS/pull/5426#issuecomment-345067457
<https://github.com/qgis/QGIS/pull/5426#issuecomment-345067457&gt;

Then there is of course the issue of GRASS modules which are more
difficult to wrap in QGIS Processing because the inputs and outputs are
not explicitly stated, most prominent example is probably r.mapcalc but
there is couple of more, although we were able to reduce this number lately:

https://lists.osgeo.org/pipermail/grass-dev/2015-January/072979.html
<https://lists.osgeo.org/pipermail/grass-dev/2015-January/072979.html&gt;

See also the following post from Giovanni Manghi (sent off-list
to Markus Neteler and shared by him) and a ticket commend by me for more
examples and details:

https://lists.osgeo.org/pipermail/grass-dev/2014-August/070342.html
<https://lists.osgeo.org/pipermail/grass-dev/2014-August/070342.html&gt;
https://trac.osgeo.org/grass/ticket/2409#comment:17
<https://trac.osgeo.org/grass/ticket/2409#comment:17&gt;

Here is a good r.mapcalc-related example of (at least) asking for
changes upstream (although sent privately to Markus Neteler who opened
the issue):

https://trac.osgeo.org/grass/ticket/3431
<https://trac.osgeo.org/grass/ticket/3431&gt;

- Who should be responsible for maintaining the providers? Should
maintenance be done by the QGIS core developer team or by 3rd parties?

I'm not sure if we can really separate this from the place in the code,
but if there is a notion of pushing changes upstream then that gives
definitively us more flexibility.

Besides maintenance, I think the initial development, which is necessary
for a realistic maintenance plan, is a major issue. I, and I think some
other GRASS devs too, would be happy to work on it if the financing is
addressed. A different suggestion is here as well and that's GSoC idea
proposed by Martin Landa:

https://trac.osgeo.org/grass/wiki/GSoC/2018#ImproveGRASSintegrationinQGIS3
<https://trac.osgeo.org/grass/wiki/GSoC/2018#ImproveGRASSintegrationinQGIS3&gt;

- Is it a core requirement that 3rd party providers are installed with
EVERY QGIS install, or is it acceptable to require interested users to
manually install the tools which they find useful? If the second
option is preferred, then how can we ensure that users are aware of
the availability of these tools?

If they install manually, on Windows, users can have the latest version
of the software instead of the one packaged with QGIS. OSGeo4W is a
different case; not sure about Mac. However, on Linux, the decision is
up to the packagers, so in any case, the QGIS part needs to be able to
work with different versions. Regardless of QGIS packaging efforts, I
have seen many users with old GRASS who installed new standalone GRASS
on the side, even recently.

On the other hand, many users benefit from the one package, because they
need to get software approved, if they get QGIS packaged with GRASS
approve, they got GRASS as well. Getting approval for each individual
provider is likely more paperwork.

I hope this will help and let me know what I'm missing.

Best,
Vaclav

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
saga-gis-developer mailing list
saga-gis-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/saga-gis-developer

--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all&geo=IT&q=qgis,arcgis