[asterisk-dev] Doxygen \since

Dennis Buteyn dennis.buteyn at xorcom.com
Sun Jan 16 03:35:08 CST 2022

On 1/13/22 20:12, Kevin Harwell wrote:
> Greetings,
> Looking for opinions.
> When documenting API calls in Asterisk one can use the Doxygen \since 
> command [1] to specify which version of Asterisk the function was 
> added in. For example: \since 13.25.0 [2]
> Do folks find this helpful, and worth having? As a developer, when 
> adding a new API does trying to figure out what version of Asterisk 
> things will go in become too cumbersome?
> Personally, I've found having the version number on a function only 
> slightly helpful. I've used that info once, maybe twice, but feel it's 
> not worth the upfront cost (figuring out version info at patch time 
> for each branch, having to update a review if it doesn't make it in 
> before the expected release, etc...)
> So my vote is to drop its usage. Certainly though if many others find 
> it useful, or have a good reason to continue using the command we can.
> Thoughts?

Not so much a fan of Doxygen though I think there are two distinct 
documentation requirements. First, there are the user-facing API 
functions. These are dialplan functions, ARI, AMI and so forth. Knowing 
when a particular function was added / removed / changed is pretty 
important, especially when (as a third-party) one has to interface with 
systems running different versions of Asterisk.

Then there are the internal API functions for developing modules or 
making customizations. This is basically everything you'd find in 
include/asterisk. Git is pretty self-documenting when used properly and 
as the Asterisk source code is freely available, it does not take much 
effort to examine the history to know when something was added / removed 
/ changed. Git will usually also tell you who did it, why and how. When 
developing modules and/or making customizations, one will generally have 
the source code checked out anyways.

I think in the case of user-facing API functions, documenting when a 
particular function was added is a must. I have run into cases where 
this was pretty important. Sure, one can compare versions on the 
Asterisk Wiki but it is not that convenient. As for Internal API 
functions, Git already documents changes and you basically end up 
documenting twice.

Dennis Buteyn
Xorcom Ltd

More information about the asterisk-dev mailing list