Our only commitment is to the stability of the v19.11/v20 ABI, until v21.
That said, once an ABI migrates from EXPERIMENTAL to v21, it _shouldn't_ be changing. We don't have a strict commitment to the v21 ABI until v20.11. However if v21 is changing across quarterlies (outside of additions) ... something else is wrong. Ray K On 20/04/2020 17:59, Trahe, Fiona wrote: > Gentle reminder that we still haven't come to a consensus about > whether ABI compatibility is required across quarterly releases or not. > See below. > >> -----Original Message----- >> From: Trahe, Fiona <fiona.tr...@intel.com> >> Sent: Friday, April 17, 2020 12:47 PM >> To: Ray Kinsella <m...@ashroe.eu>; Thomas Monjalon <tho...@monjalon.net>; >> Richardson, Bruce >> <bruce.richard...@intel.com> >> Cc: dev@dpdk.org; Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>; Neil >> Horman >> <nhor...@tuxdriver.com>; Luca Boccassi <bl...@debian.org>; Kevin Traynor >> <ktray...@redhat.com>; Yigit, Ferruh <ferruh.yi...@intel.com>; Trahe, Fiona >> <fiona.tr...@intel.com> >> Subject: RE: [dpdk-dev] [PATCH] cryptodev: version rte_cryptodev_info_get >> function >> >> Hi all, >> >>> -----Original Message----- >>> From: Ray Kinsella <m...@ashroe.eu> >>> Sent: Friday, April 17, 2020 11:34 AM >>> To: Thomas Monjalon <tho...@monjalon.net>; Richardson, Bruce >>> <bruce.richard...@intel.com> >>> Cc: Trahe, Fiona <fiona.tr...@intel.com>; dev@dpdk.org; Kusztal, ArkadiuszX >>> <arkadiuszx.kusz...@intel.com>; Neil Horman <nhor...@tuxdriver.com>; Luca >>> Boccassi >>> <bl...@debian.org>; Kevin Traynor <ktray...@redhat.com>; Yigit, Ferruh >>> <ferruh.yi...@intel.com> >>> Subject: Re: [dpdk-dev] [PATCH] cryptodev: version rte_cryptodev_info_get >>> function >>> >>> >>> >>> On 17/04/2020 11:17, Thomas Monjalon wrote: >>>> 17/04/2020 11:42, Ray Kinsella: >>>>> On 17/04/2020 10:31, Bruce Richardson wrote: >>>>>> On Fri, Apr 17, 2020 at 08:24:30AM +0100, Ray Kinsella wrote: >>>>>>> On 16/04/2020 11:01, Thomas Monjalon wrote: >>>>>>>> 16/04/2020 11:51, Bruce Richardson: >>>>>>>>> On Wed, Apr 15, 2020 at 06:24:19PM +0100, Trahe, Fiona wrote: >>>>>>>>>> 5a. If in 20.05 we add a version of a fn which breaks ABI 20.0, what >>>>>>>>>> should the name of the >>> original function be? fn_v20, or fn_v20.0 >>>>>>>>> >>>>>>>>> In technical terms it really doesn't matter, it's just a name that >>>>>>>>> will be >>>>>>>>> looked up in a table. I don't think we strictly enforce the naming, so >>>>>>>>> whatever is clearest is best. I'd suggest the former. >>>>>>>> >>>>>>>> Each release can have a new ABI. >>>>>>> >>>>>>> How many ABI's do we want to support? >>>>>>> >>>>>> It's not how many we want to support, but for me it's a matter of how >>>>>> many >>>>>> do we need to support. If an API is part of the stable set, it can't just >>>>>> drop to being experimental for one or two releases - it's always stable >>>>>> until deprecated. We also shouldn't have a situation where release 20.08 >>>>>> is >>>>>> ABI compatible with 19.11 but not 20.02 and 20.05. >>>>> >>>>> True. Let me say it differently. >>>>> >>>>> Our only commitment is to support v20 - 19.11 >>>>> However you are correct, if something gets committed as v21 in 20.02, in >>>>> practise should also be >>> there in 20.05+ also. >>>>> Because if it is committed as v21 and not as experimental, it should not >>>>> be changing once >>> committed. >>>>> >>>>> In answering Thomas, >>>>> I was more commenting on the proliferation of ABI numbers & symbols we >>>>> need to track in the >>> build. >>>>> With v20, v21 & Experimental we need to keep track of 3. >>>>> If we start allowing quarterly builds to have managed ABI's, it will get >>>>> confusing. >>>> >>>> I don't remember why we are using intermediate ABI versions >>>> between v20 and v21. >>>> If we can use v21 for new ABI and make sure compatibility is maintained >>>> between all versions from 19.11 to 20.08, I'm fine. >> [Fiona] Here's a hypothetical case, but it illustrates why I don't think >> there >> should be an expectation to maintain ABI compatibility here. >> Example: in 20.05 add a new info_get_v21() which includes ChaChaPoly. >> In 20.08 add another new algorithm. info_get_v21() return now includes this. >> info_get_v21() will become stable in 20.11 and compatibility must be >> maintained from then on. >> In the meantime, the fn is not experimental - that wouldn't be appropriate >> as it was a stable API. >> But an app either wants stability and so should build against 19.11, or if >> prepared to move up to >> one non-stable-ABI quarterly release should be willing to rebuild for the >> next non-stable-ABI quarterly >> release. >> I think it's an unnecessary burden to require ABI compatibility across >> quarterly releases. >> And if required could end up with the version tracking hassle Ray referred >> to above with fn versions >> of 20.0.1, 20.0.2, 20.0.3, v21, and potentially several versions of same fn. >> >