From patchwork Mon Jan 22 01:48:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neil Horman X-Patchwork-Id: 34203 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2ADCD199B0; Mon, 22 Jan 2018 02:48:57 +0100 (CET) Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id 404A4A495 for ; Mon, 22 Jan 2018 02:48:56 +0100 (CET) Received: from cpe-2606-a000-111b-4011-eaa3-4b92-4a68-8f24.dyn6.twc.com ([2606:a000:111b:4011:eaa3:4b92:4a68:8f24] helo=hmswarspite.think-freely.org) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1edRE5-00068B-US; Sun, 21 Jan 2018 20:48:53 -0500 Received: from hmswarspite.think-freely.org (localhost [127.0.0.1]) by hmswarspite.think-freely.org (8.15.2/8.15.2) with ESMTP id w0M1mDl0024837; Sun, 21 Jan 2018 20:48:13 -0500 Received: (from nhorman@localhost) by hmswarspite.think-freely.org (8.15.2/8.15.2/Submit) id w0M1mDGM024818; Sun, 21 Jan 2018 20:48:13 -0500 From: Neil Horman To: dev@dpdk.org Cc: Neil Horman , Thomas Monjalon , "Mcnamara, John" , Bruce Richardson Date: Sun, 21 Jan 2018 20:48:07 -0500 Message-Id: <20180122014807.24654-6-nhorman@tuxdriver.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180122014807.24654-1-nhorman@tuxdriver.com> References: <20171201185628.16261-1-nhorman@tuxdriver.com> <20180122014807.24654-1-nhorman@tuxdriver.com> X-Spam-Score: -2.9 (--) X-Spam-Status: No Subject: [dpdk-dev] [[PATCH v5] 5/5] doc: Add ABI __experimental tag documentation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Document the need to add the __experimental tag to appropriate functions Signed-off-by: Neil Horman CC: Thomas Monjalon CC: "Mcnamara, John" CC: Bruce Richardson Acked-by: John McNamara --- doc/guides/contributing/versioning.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst index 400090628..b4de9ed04 100644 --- a/doc/guides/contributing/versioning.rst +++ b/doc/guides/contributing/versioning.rst @@ -50,6 +50,20 @@ 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 multi 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 __rte_experimental tag (see rte_compat.h). The DPDK build makefiles +perform a check to ensure that the map file and the C code reflect the same +list of symbols. This check can be circumvented by defining +ALLOW_EXPERIMENTAL_API during compilation in the corresponding library Makefile. + +In addition to tagging the code with __rte_experimental, the +doxygen markup must also contain the EXPERIMENTAL string, and the MAINTAINER +file should note that the library contains EXPERIMENTAL APIs. + 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