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 <nhor...@tuxdriver.com> > CC: Thomas Monjalon <tho...@monjalon.net> > CC: "Mcnamara, John" <john.mcnam...@intel.com> > CC: Bruce Richardson <bruce.richard...@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 >