The deprecation of modules in Asterisk has generally been a loosely formed word of mouth policy. This has meant that modules are seldom truly removed from Asterisk, even when marked as deprecated. A discussion occurred last year regarding formalizing this policy into a more concrete process and cleaning things up. This has now happened and been documented on the wiki. You might be thinking to yourself “what does this mean” so let me explain!
Module deprecation and removal is now only able to be initiated in standard releases. This change is then carried over to the next long term supported release. This means that, for example, if app_kaboom is deprecated in Asterisk 19 (a standard release) it will also then be deprecated in Asterisk 20 (a long term supported release). Provided the deprecation is not reversed it will then be removed in Asterisk 21 (a standard release) and then in Asterisk 22 (a long term supported release).
If you ever need to see what modules are up for deprecation and removal those are now also tracked on the wiki.
As part of this new policy and process we have also made some code changes to better inform users when deprecation and removal will occur. If a module is marked as deprecated in a future version (for example Asterisk 19) we will add this information to earlier versions (Asterisk 16 and Asterisk 18) and provide log messages at startup informing the user so they are not surprised in the future. In fact, you may have noticed this in the latest releases of Asterisk! This information will also go into the release notes and upgrade notes. Since this information will be easily accessible we may extend this notification further to make it even clearer what will happen in future new releases.
I’d like to end this by also saying that we do not take module deprecation lightly and welcome all input. If a module is deprecated that you are still using and you are unable to move to an alternative, let us know on the issue tracker.