From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2EF9CA0487 for ; Thu, 4 Jul 2019 14:27:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5E22A1BE04; Thu, 4 Jul 2019 14:27:01 +0200 (CEST) Received: from qrelay99.mxroute.com (qrelay99.mxroute.com [172.82.139.99]) by dpdk.org (Postfix) with ESMTP id 72C661BE00 for ; Thu, 4 Jul 2019 14:26:59 +0200 (CEST) Received: from filter002.mxroute.com (unknown [94.130.183.33]) by qrelay99.mxroute.com (Postfix) with ESMTP id A5D6D10086D for ; Thu, 4 Jul 2019 08:26:58 -0400 (EDT) Received: from galaxy.mxroute.com (unknown [23.92.70.113]) by filter002.mxroute.com (Postfix) with ESMTPS id D9C903F069 for ; Thu, 4 Jul 2019 12:26:52 +0000 (UTC) Received: from [192.198.151.44] (helo=localhost) by galaxy.mxroute.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1hj0n1-00059i-Hd; Thu, 04 Jul 2019 08:24:39 -0400 From: Ray Kinsella To: dev@dpdk.org Cc: mdr@ashroe.eu Date: Thu, 4 Jul 2019 13:26:37 +0100 Message-Id: <1562243198-862-1-git-send-email-mdr@ashroe.eu> X-Mailer: git-send-email 2.7.4 X-AuthUser: mdr@ashroe.eu Subject: [dpdk-dev] [PATCH] Changes to ABI Policy introducing major ABI versions 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" TL;DR Abbreviation: A major ABI version that all DPDK releases during a two year period support. ABI versioning is managed at a project-level, in place of library-level management. ABI changes to add new features are permitted, as long as ABI compatibility with the major ABI version is maintained. Detail: This patch introduces a two year major ABI version, aligned with the LTS release and supported by all subsequent releases within that two year period, including the subsequent LTS release. ABI changes that preserve ABI compatibility with the major ABI version are permitted in subsequent releases. ABI changes, follow similar approval rules as before with the additional gate of now requiring technical board approval. The merging and release of ABI breaking changes would now be pushed to the declaration of the next major ABI version. This change encourages developers to maintain ABI compatibility with the major ABI version, by promoting a permissive culture around those changes that preserve ABI compatibility. This approach aligns DPDK with those projects that declare major ABI versions (e.g. version 2.x, 3.x) and support those versions for some period, typically two years or more. To provide an example of how this might work in practice: * DPDK v20 is declared as the supported ABI version for two years, aligned with the DPDK v19.11 (LTS) release. All library sonames are updated to reflect the new ABI version, e.g. librte_eal.so.20, librte_acl.so.20... * DPDK v20.02 .. v21.08 releases are ABI compatible with the DPDK v20 ABI. ABI changes are permitted from DPDK v20.02 onwards, with the condition that ABI compatibility with DPDK v20 is preserved. * DPDK v21 is declared as the new supported ABI version for two years, aligned with the DPDK v21.11 (LTS) release. The DPDK v20 ABI is now depreciated, library sonames are updated to v21 and ABI compatibility breaking changes may be introduced. Ray Kinsella (1): doc: Changes to ABI Policy introducing major ABI versions doc/guides/contributing/stable.rst | 10 +- doc/guides/contributing/versioning.rst | 462 ++++++++++++++++++++++----------- 2 files changed, 314 insertions(+), 158 deletions(-) -- 2.7.4