[dpdk-dev] [PATCHv4 5/5] doc: Add ABI __experimental tag documentation

Ferruh Yigit ferruh.yigit at intel.com
Thu Jan 11 21:06:48 CET 2018


On 12/13/2017 3:17 PM, Neil Horman wrote:
> Document the need to add the __experimental tag to appropriate functions
> 
> Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
> CC: Thomas Monjalon <thomas at monjalon.net>
> CC: "Mcnamara, John" <john.mcnamara at intel.com>
> CC: Bruce Richardson <bruce.richardson at intel.com>
> ---
>  doc/guides/contributing/versioning.rst | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst
> index 400090628..53f56397e 100644
> --- a/doc/guides/contributing/versioning.rst
> +++ b/doc/guides/contributing/versioning.rst
> @@ -50,6 +50,15 @@ those new APIs and start finding issues with them, new DPDK APIs will be
>  automatically marked as ``experimental`` to allow for a period of stabilization
>  before they become part of a tracked ABI.
>  
> +Note that marking an API as experimental is a two step process.  To mark an API
> +as experimental, the symbols which are desired to be exported must be placed in
> +an EXPERIMENTAL version block in the corresponding libraries' version map
> +script. Secondly, the corresponding definitions of those exported functions, and
> +their forward declarations (in the development header files), must be marked
> +with the __experimental tag (see rte_compat.h).  The DPDK build makefiles
> +preform a check to ensure that the map file and the C code reflect the same
> +list of symbols.

There are more steps we historically do to mark an API as experimental:
- Add to function header comment experimental for API documentation, preferably
with a warning tag to highlight it:

/**
 * @warning
 * @b EXPERIMENTAL:
....
 */

- If whole APIs in header file are experimental, add same experimental warning
doxygen comment in file comment, again preferably with warning.

- If whole library is experimental, put EXPERIMENTAL tag into maintainers file
as well.

> +
>  ABI versions, once released, are available until such time as their
>  deprecation has been noted in the Release Notes for at least one major release
>  cycle. For example consider the case where the ABI for DPDK 2.0 has been
> 



More information about the dev mailing list