From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id CD3A9A0679 for ; Thu, 4 Apr 2019 15:05:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 955FC1B43E; Thu, 4 Apr 2019 15:05:36 +0200 (CEST) Received: from relay0114.mxlogin.com (relay0114.mxlogin.com [199.181.239.114]) by dpdk.org (Postfix) with ESMTP id 427DA5F19; Thu, 4 Apr 2019 15:05:35 +0200 (CEST) Received: from filter001.mxrelay.co (unknown [116.203.155.46]) by relay0114.mxlogin.com (Postfix) with ESMTP id 49C45CBD0380; Thu, 4 Apr 2019 08:05:34 -0500 (CDT) Received: from localhost (unknown [23.92.70.113]) by filter001.mxrelay.co (Postfix) with ESMTPS id F00DF100B05; Thu, 4 Apr 2019 13:05:32 +0000 (UTC) Received: from [134.134.139.83] by localhost with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.89) (envelope-from ) id 1hC24O-0003SC-GM; Thu, 04 Apr 2019 09:06:16 -0400 To: Luca Boccassi , Bruce Richardson , "Burakov, Anatoly" Cc: dev@dpdk.org, Kevin Traynor , "techboard@dpdk.org" References: <94df3cc4-de54-72d6-84c6-81bebd209a81@intel.com> <20190404105447.GA1351@bricha3-MOBL.ger.corp.intel.com> <4ec2c98004ef5d693d0e033c93820580bbd2ebfa.camel@debian.org> From: Ray Kinsella Openpgp: preference=signencrypt Autocrypt: addr=mdr@ashroe.eu; keydata= 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 Message-ID: <3055e4ce-767b-ab43-43ac-c3604fd3ea5c@ashroe.eu> Date: Thu, 4 Apr 2019 14:05:27 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <4ec2c98004ef5d693d0e033c93820580bbd2ebfa.camel@debian.org> Content-Type: text/plain; charset="UTF-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-AuthUser: mdr@ashroe.eu Subject: Re: [dpdk-dev] [dpdk-techboard] DPDK ABI/API Stability 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" Message-ID: <20190404130527.CLHCmOX9hiLF1YcxK0TRu4cwueyh-ZwZgKBmEkMgoTA@z> On 04/04/2019 13:02, Luca Boccassi wrote: > On Thu, 2019-04-04 at 11:54 +0100, Bruce Richardson wrote: >> On Thu, Apr 04, 2019 at 10:29:19AM +0100, Burakov, Anatoly wrote: >>> On 03-Apr-19 4:42 PM, Ray Kinsella wrote: [SNIP] >>> >> >> Actually, I think we *do* need to constrain the pace of development >> for the >> sake of ABI stability. At this stage DPDK has been around for quite a >> number of years and so should be considered a fairly mature project - >> it >> should just start acting like it. >> >> Now, in terms of features like the memory rework, that is indeed a >> case >> that there was no alternative other than a massive ABI break. >> However, for >> that rework there was a strong need for improvement in that area that >> we >> can make the case for an ABI break to support it - and it is of a >> scale >> that nothing other than an ABI change would do. For other areas and >> examples, I doubt there are many in the last couple of years that are >> of >> that scale. > > Fully agree. > > It's normal for new project, big and small, to start without a > stability promise as development ramps up, and then steer toward > stability as the user base grows. Sometimes the switch is made explicit > by crossing from a 0.x to a 1.x version numbering, sometimes it's not. > I don't think we crossed that boundary yet in this project, and I > believe that's the main question Ray was trying to raise: has the time > finally come for DPDK to do this phase shift? Yes - we never had a 1.0, where we cut an API and stood behind it similar to GStreamer. There a number of reasons why this happened not worth going into, however you make the point very well Luca - this phase shift is long over due. > > Of course it comes with a price for all developers, and that's again > common. Agreed - nothing is for free. The question is this something we value and is it something worth doing. > >> My thoughts on the matter are: >> 1. I think we really need to do work to start hiding more of our data >> structures - like what Stephen's latest RFC does. This hiding should >> reduce >> the scope for ABI breaks. > > Yes, I'm a big fan of accessors and opaque structs. +1, me too. > >> 2. Once done, I think we should commit to having an ABI break only in >> the >> rarest of circumstances, and only with very large justification. I >> want us >> to get to the point where DPDK releases can immediately be picked up >> by all >> linux distros and rolled out because they are ABI compatible. >> >> I'm not sure I like the idea of planned ABI break releases - that >> strikes >> me as a plan where we end up with the same number of ABI breaks as >> before, >> just balled into one release. > > I think that was intended as a compromise, especially as we move from > one model to the other, and more of a "if a breakage has to happen, it > must be in the X release" rather than "let's always break in the X > release" :-) > >> Question for Kevin, Luca and others who look at distro-packaging: is >> it the >> case that each distro will only ship one version of DPDK, or is it >> possible >> that if we have ABI breaks, a distro will provide two copies of DPDK >> simultaneously, e.g. a 19.11 ABI version and a 20.11 ABI version? > > We can ship multiple versions, although it's more work so there should > be a good reason to do it. Well you already kind of do right. You ship 16.11.8 with Debian 9 and then 18.11 with Debian 9 backports. > At the moment in Debian and Ubuntu we don't, > and we tend to ship whatever the latest LTS version is at the distro > freeze milestone - for example Debian 10 which will be released soon > (TM) will have 18.11.0. Presumably when 19.11 arrives, it will land in Debian 10 backports similarly. I assume anything that lands in backports is not guaranteed to be ABI compatible with stable? > >> So, in short, I'm generally in favour of a zero-tolerance approach >> for DPDK >> ABI breaks, and having ABI breaks as a major event reserved only for >> massive rework changes, such as major mbuf changes, or new memory >> layout or >> similar. >> >> Regards, >> /Bruce >>