All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: "Kinsella, Ray" <ray.kinsella@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	David Marchand <david.marchand@redhat.com>,
	Luca Boccassi <bluca@debian.org>,
	Christian Ehrhardt <christian.ehrhardt@canonical.com>,
	Timothy Redaelli <tredaelli@redhat.com>,
	Kevin Traynor <ktraynor@redhat.com>, dpdk-dev <dev@dpdk.org>,
	"Laatz, Kevin" <kevin.laatz@intel.com>,
	Andrew Rybchenko <arybchenko@solarflare.com>,
	Neil Horman <nhorman@redhat.com>
Subject: Re: [dpdk-dev] How to manage new APIs added after major ABI release?
Date: Tue, 10 Dec 2019 12:40:53 +0000	[thread overview]
Message-ID: <36590631-c424-f466-cd37-a759e3fc306c@intel.com> (raw)
In-Reply-To: <20191210120455.GB103@bricha3-MOBL.ger.corp.intel.com>

On 12/10/2019 12:04 PM, Bruce Richardson wrote:
> On Tue, Dec 10, 2019 at 11:56:28AM +0000, Ferruh Yigit wrote:
>> Hi,
>>
>> With new process, the major ABI releases will be compatible until it is
>> deprecated (until next LTS for now),
>> like current ABI version is 20 in DPDK_19.11 and DPDK versions until DPDK_20.11
>> will be ABI compatible with this version.
>>
>> But if we introduce a new API after major ABI, say in 20.02 release, are we
>> allowed to break the ABI for that API before DPDK_20.11?
>>
>> If we allow it break, following problem will be observed:
>> Assume an application using .so.20.1 library, and using the new API introduced
>> in 20.02, lets say foo(),
>> but when application switches to .so.20.2 (released via DPDK_20.05), application
>> will fail because of ABI breakage in foo().
>>
>> I think it is fair that application expects forward compatibility in minor
>> versions of a shared library.
>> Like if application linked against .so.20.2, fair to expect .so.20.3, .so.20.4
>> etc will work fine. I think currently only .so.20.0 is fully forward compatible.
>>
>> If we all agree on this, we may need to tweak the process a little, but before
>> diving into implementation details, I would like to be sure we are in same page.
>>
> 
> Well, any new API's generally come in as experimental, in which case
> changes are allowed, and breakage can be expected. If they are not
> experiemental, then the ABI policy applies to them in that they cannot
> change since they are part of the .21 ABI, even if that ABI is not fully
> complete yet. For any application only using stable, non-experimental
> functions, forward compatibility must be maintained IMHO.
> 

Talking about not experimental APIs, experimental ones free from the process.

And when and API added in 20.02 (ABI_20.1) it is kind of still ABI_20, because
it should be supported for following ABI_20.x, instead of calling it ABI_21, and
this minor tweak (and mind shift) in .map files can be our solution.

  reply	other threads:[~2019-12-10 12:41 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-10 11:56 [dpdk-dev] How to manage new APIs added after major ABI release? Ferruh Yigit
2019-12-10 12:04 ` Bruce Richardson
2019-12-10 12:40   ` Ferruh Yigit [this message]
2019-12-10 14:36     ` Bruce Richardson
2019-12-10 15:03       ` Luca Boccassi
2019-12-10 15:46         ` Bruce Richardson
2019-12-10 16:20           ` Luca Boccassi
2019-12-10 16:32             ` Bruce Richardson
2019-12-10 17:01               ` Kinsella, Ray
2019-12-10 17:04               ` Thomas Monjalon
2019-12-10 18:22                 ` Luca Boccassi
2019-12-10 23:34                   ` Bruce Richardson
2019-12-10 16:39             ` Thomas Monjalon
2019-12-10 17:00               ` Bruce Richardson
2019-12-10 15:04       ` Ferruh Yigit
2019-12-10 15:37         ` Ferruh Yigit
2019-12-10 15:40       ` Kinsella, Ray
2019-12-11 13:32       ` Neil Horman
2019-12-11 13:11 ` Neil Horman
2019-12-11 13:29   ` Thomas Monjalon
2019-12-11 13:30   ` Ferruh Yigit
2019-12-11 14:34     ` Neil Horman
2019-12-11 15:29       ` Ferruh Yigit
2019-12-11 15:02     ` Thomas Monjalon
2019-12-11 15:17       ` Bruce Richardson
2019-12-11 15:46       ` Ferruh Yigit
2019-12-11 15:55         ` Bruce Richardson
2019-12-11 16:30           ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=36590631-c424-f466-cd37-a759e3fc306c@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=arybchenko@solarflare.com \
    --cc=bluca@debian.org \
    --cc=bruce.richardson@intel.com \
    --cc=christian.ehrhardt@canonical.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=kevin.laatz@intel.com \
    --cc=ktraynor@redhat.com \
    --cc=nhorman@redhat.com \
    --cc=ray.kinsella@intel.com \
    --cc=thomas@monjalon.net \
    --cc=tredaelli@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.