From 01374778b0699eb517311277cfaed45272261ec3 Mon Sep 17 00:00:00 2001 From: John Parejko Date: Mon, 1 Apr 2024 19:46:30 -0700 Subject: [PATCH] Add plugin deprecation procedure --- stack/deprecating-interfaces.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stack/deprecating-interfaces.rst b/stack/deprecating-interfaces.rst index e29ebcc2..7fc4abed 100644 --- a/stack/deprecating-interfaces.rst +++ b/stack/deprecating-interfaces.rst @@ -132,6 +132,14 @@ This can be achieved via preprocessor directives:: Note that this works for ``clang`` as well as ``gcc``, despite the pragma name. +Measurement Plugin Deprecation +------------------------------ + +Some of our measurement plugins are written in C++, as subclasses of `~lsst.meas.base.SimpleAlgorithm`. +To deprecate such a C++ plugin, follow the C++ deprecation procedure above for the C++ header declaration, being sure to catch each of the ``Control``, ``Algorithm``, and ``Transform`` classes. +In addition, where the algorithm class is registered to the plugin algorithm registry via `~lsst.meas.base.wrapSimpleAlgorithm` (for example, from ``plugins.py`` in ``meas_base`` for plugins defined in that package), add a ``deprecated="Plugin 'XXXX' is deprecated and will be removed after vXX."`` kwarg to the ``wrapSimpleAlgorithm`` call. +This will ensure that any pipeline that is configured to use this plugin will emit a deprecation warning about the plugin during initialization. + Config Deprecation ==================