[QGIS-Developer] Processing 2.x API and 4.0 regrets

Even Rouault even.rouault at spatialys.com
Mon Jan 19 15:29:42 PST 2026


Nyall,

I don't have particular knowledge about that bit, but your plan sounds 
good. Is there a way we could emit runtime deprecation warning "You are 
using a deprecated QGIS 2 Python API for custom parameter GUI widgets 
that is going to be removed in a later QGIS 4.x release. Proceed to 
migrating it to newer C++ based processing classes ASAP" (or something 
like that) that would be user visible (in log panel e.g., or maybe even 
a notification. Bonus point if we can mention the component/plugin that 
triggered the warning). Generally I think this strategy could be used in 
other similar instances. Gradual removal of advertized deprecated APIs 
rather than doing everything at once during n->n+1 upgrades might be 
more practical for us to do

Even

Le 20/01/2026 à 00:15, Nyall Dawson via QGIS-Developer a écrit :
> Hey list,
>
> Soo.. back when we were planning 4.0 and deciding if we would break 
> any of the QGIS api, we made the decision that none of the existing 
> deprecated API was particularly painful and could be dragged along 
> with 4.x without too much effort.
>
> I've come to the realisation that there's an exception here -- the old 
> Processing 2.x purely python based API for custom parameter GUI 
> widgets. This is/was a pure Python API that was kept in 3.0, because 
> at that stage we hadn't yet moved any of the Processing GUI classes to 
> c++. When the c++ GUI classes were introduced we had to keep a lot of 
> crufty code and Python messiness to avoid breaking this. It's been 
> painful to drag through to 3.44, and it's going to be even more 
> painful to maintain throughout 4.x. (Especially given the heavy churn 
> that's currently going on in the model designer, eg 
> https://github.com/qgis/QGIS/pull/64591).
>
> In retrospect I think we should have made an exception to the "no 
> PyQGIS API breakage for 4.0" rule and dropped all of that old API for 
> 4.0. Unfortunately it's too late to do this now -- it's not as simple 
> as just deleting a bunch of deprecated code. Rather the roots of the 
> hackiness and old API are very deep, and there's a non-trivial amount 
> of (complex, challenging) work associated with pulling out these roots.
>
> So -- I'd like to propose that we approach this by making it very 
> clear in the 4.0 release notes that the old Processing 2.x API is 
> considered completely deprecated, that it is no longer considered part 
> of stable API, and that it WILL be removed at some stage during the 
> lifespan of 4.x. We don't advertise a fixed schedule for this, but 
> state that "When preparing for 4.0 support, plugin authors should port 
> their plugins away from the deprecated Processing GUI API to ensure 
> that they will work for all future 4.x releases".
> This would buy us time to do a proper considered removal of that API, 
> while ensuring that we aren't blocked from implementing nice changes 
> to Processing and the modeler when that API becomes impossible to work 
> around anymore.
> Thoughts?
>
> Nyall
>
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the QGIS-Developer mailing list