Hi lists,

Following up the recent formalisation of a process for removal of
deprecated API mid-release cycle (see
https://github.com/qgis/QGIS-Enhancement-Proposals/pull/384), I've just
submitted a proposal to remove the deprecated Python Processing
"WidgetWrapper" API.

As per clause 1.4.4 of the Stable API policy, this API should be removed on
the grounds that maintaining backward compatibility both introduces an
insurmountable maintenance burden and fundamentally blocks critical bug
fixes (condition 1.4.4.1).

This pure Python API is an ongoing source of unsolvable issues in the
Processing framework, such as https://github.com/qgis/QGIS/issues/66282. It
relies on a fragile memory management model, where the lifetime of objects
created in C++ vs Python results in unpredictable object deletion or memory
leakage. Over time the conclusion from QGIS developers familiar with this
code is that this approach just cannot be fixed, and we need to move solely
to the approach used elsewhere in QGIS, where Python is used solely to
subclass C++ base classes, with all memory management living at the C++
level (either through direct C++ memory management or via C++ Qt
parent/child associations).

In addition, the old API predated major overhauls of Processing GUI
components such as the model designer, and the assumptions used in that API
no longer apply (such as existence of Python dialog classes). Working
around these old assumptions is a considerable drain on QGIS developers,
and is blocking further desirable revamps and modernisation of the QGIS
model designer interface.

This API has been marked as deprecated since QGIS 3.4, with
developer-facing warnings being shown for over 7 years.

See https://github.com/qgis/QGIS-Enhancement-Proposals/pull/386
<https://github.com/qgis/QGIS-Enhancement-Proposals/pull/384> for the
proposed changes and a detailed write up on the plan for removal.

Please give all feedback on this proposed change as comments on the PR
itself (not direct email replies) to keep the discussion centralized.

Kind regards,
Nyall
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to