[Qgis-developer] Processing algorithms and API breaks

Alexander Bruy alexander.bruy at gmail.com
Mon Mar 7 02:34:06 PST 2016


Hi Matthias,

when new parameter added and it is possible to declare it as optional,
I definitely do this. But sometimes parameters also removed or replaced
with another (e.g. string with point, or several numbers with extent). In
such cases algorithm semantic changes.

Regarding versioning. Victor and me already discussed this approach.
Seems this can help with 3rd party models/scripts. Maybe we will work
on this at hackfest.


2016-03-07 11:12 GMT+02:00 Matthias Kuhn <matthias at opengis.ch>:
> Hi Alex,
>
> Thanks for raising this issue. I also think that the interface to the
> processing algorithms should stay as stable as possible, but slowing
> down development speed also does not sound very appealing.
>
> Isn't it often possible to add a new parameter as optional with a
> default value that conforms to the previous behavior? If developers keep
> an eye on keeping their changes compatible this way, that should already
> help a lot.
>
> Another idea is that the algorithms are versioned, so that with
> incompatible changes an old model can still use the old algorithm. I can
> imagine that the maintenance overhead for this is a bit high. The
> lightweight approach for this can be done ad-hoc when introducing an
> algorithm with a new name and keeping the old one in place.
>
> Matthias
>
> On 03/07/2016 09:13 AM, Alexander Bruy wrote:
>> Hi all,
>>
>> Processing, became an important part of QGIS. More and more users use it
>> and rely on it, especially when they developed their own models and scripts.
>> So we should keep Processing algorithms as stable as possible and don't
>> change their descriptions.
>>
>> On other hand there are many bugreports and feature requests which require
>> changing algorithms description to be fixed/impelemented. This can be considired
>> as "API" break, as scripts and models which use affected algorithms
>> and were developed before such changes will not work. For example,
>> there were many
>> PR about fixing GRASS and SAGA algs, which change their descriptions. Time
>> from time we also fix bugs in native QGIS algs and also need to change
>> algorithm description, e.g. by replacing one parameter type with another or
>> adding new parameter.
>>
>> I see only two solutions:
>> 1. Postpone such changes for next major QGIS release when API break is
>> allowed. In this case all existing scripts/models will work. But we
>> should live
>> with bugs and without some features, even if fix already available and keep the
>> code of this fixes in sync with master until next major release.
>> 2. Allow "API" breaks in Processing. In this case we create additional pressure
>> on the authors of 3rd party models/scripts and force them to follow Processing
>> changes and update their code accordingly.
>>
>> What do you think, which approach we should choose?
>>
>
> --
> Matthias Kuhn
> OPENGIS.ch - https://www.opengis.ch
> Spatial • (Q)GIS • PostGIS • Open Source
>
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> List info: http://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-developer



-- 
Alexander Bruy


More information about the Qgis-developer mailing list