From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id CCC8F2949 for ; Thu, 7 Apr 2016 13:51:37 +0200 (CEST) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2D602C0003FF; Thu, 7 Apr 2016 11:51:37 +0000 (UTC) Received: from sopuli.koti.laiskiainen.org (vpn1-7-204.ams2.redhat.com [10.36.7.204]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u37BpZ6E020633; Thu, 7 Apr 2016 07:51:36 -0400 To: Marc Sune References: <1610488.T03Kyi0Reo@xps13> <5911950.ZPQvAWoePl@xps13> <5706295A.3000406@redhat.com> Cc: Thomas Monjalon , dev@dpdk.org From: Panu Matilainen Message-ID: <570649C7.2030709@redhat.com> Date: Thu, 7 Apr 2016 14:51:35 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Subject: [dpdk-dev] On DPDK ABI policy X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2016 11:51:38 -0000 [ change of subject since this is about ABI policy, not namespacing ] On 04/07/2016 01:16 PM, Marc Sune wrote: > > > 2016-04-07 11:33 GMT+02:00 Panu Matilainen >: > > On 04/07/2016 12:18 PM, Thomas Monjalon wrote: > > Thank you everyone for the feedbacks. > > 2016-04-05 15:56, Thomas Monjalon: > > The goal of this email is to get some feedback on how > important it is > to fix the DPDK namespace. > > > Everybody agree every symbols must be prefixed. Checking and > fixing the > namespace consistency will be in the roadmap. > > It seems most of you agree renaming would be a nice improvement > but not > so important. > The main drawback is the induced backporting pain, even if we have > some scripts to convert the patches to the old namespace. > Note: the backports can be in DPDK itself or in the applications. > > If there is enough agreement that we should do something, I > suggest to > introduce the "dpdk_" prefix slowly and live with both > "rte_" and "dpdk_" > during some time. > We could start using the new prefix for the new APIs > (example: crypto) > or when there is a significant API break (example: mempool). > > > The slow change has been clearly rejected in favor of a complete > change > in one patch. > The timing was also discussed as it could impact the pending > patches. > So it would be done at the end or the beginning of a release. > Marc suggests to do it for 16.04 as the numbering scheme has > changed. > > > Just noting that it cannot be done in 16.04 because the ABI policy > requires a deprecation cycle of at least one major release for every > breakage. And we're discussing a total 100% breakage of everything > here, even if its just a simple rename. > > > I keep not understanding the ABI policy, and particularly why ABI > changes have to be announced once cycle before _if_ there is already at > least one ABI change proposed. DPDK applications will have to recompile > anyway. The point is to allow API/ABI consumers to assess in advance what sort of pains can they expect when moving their applications from one version to another. Otherwise all sorts of massive changes could ride the wave of whatever "change 16bit struct member to 32bit" trivialities that are nevertheless ABI breaks. There have already been quite a few exceptions to the rule when the ABI is already being broken, so its not entirely rigid. Another point that migth warrant some tweaking to the policy is the "core" libraries depending on each other so an ABI break in any one of them forces recompile of everything anyway. > This aspect of the policy only slows down DPDK development and it One could also think that slowing down development and forcing people to think ahead are not entirely unintentional or unwanted side-effects :) Look at the latest librte_vhost initiative to remove unnecessarily exposed structs to avoid having to deal with ABI breakages all the time: the policy is effectively encouraging people into better library design. > pollutes the repository with commits announcing ABI changes that are > irrelevant after 2 cycles, as (code) diffs show that already (not > mentioning NEXT_ABI complexity and extra LOCs). Fully agreed on NEXT_ABI, I never liked it at all. > Maintaining LTS releases, and enforcing bug fixing in old LTS first, > upstreaming bugfixes is to me a much better approach to solve backwards > compatibility issues. LTS releases could help the situation somewhat, but then again people tend to still want those new fancy things backported (you know, have the cake and eat it too) but that can't be done because of ABI breakage, so they're forced to run the latest version anyway. > But this is probably another discussion. Yup, changed subject to avoid mixing it up with the namespace discussion too much. - Panu -