Our deprecation procedure involves annotating code which is to be removed in such a way that it produces a warning when is called.
This warning is intended to alert external consumers of the code of upcoming changes, so they can update their own software appropriately.
However, warnings are also generated if DM-provided code calls the deprecated interface. On occasion — when the same routine is called multiple times — this results in a lot of output, which makes it harder for developers to extract useful information from logs, and confuses and alarms users who are deluged with warnings when they run our code.
I propose, therefore, updating the deprecation procedure so that code may only be deprecated when callers of it within the DM codebase have been updated to use its intended replacement.
In some cases, this may be impossible or undesirable. In those cases, I suggest the policy state that explicit approval must be obtained from the DM-CCB before the code can be deprecated.