[ovs-dev] ABI versioning (was Re: [PATCH] rhel: Support...)

Aaron Conole aconole at bytheb.org
Thu Jan 5 15:52:00 UTC 2017


<snip>

>> > Should we bump the libtool version now?  We're nearing a release, so
>> > it's about the right time.
>> 
>> Sorry for the late response.  I think it's probably appropriate to bump
>> at least the libtool 'age'.  I'm not sure what kinds of ABI changes have
>> happened since introduction though - the interface 'major' version may
>> need to change.
>
> I'm pretty sure we've busted ABIs left and right since 2014, so a major
> version update should be appropriate.

I was about to post a patch that simply bumped this version, but it sent
me off onto a tangent leading to this question:

Will Open vSwitch support the libopenvswitch.so as an externally
linkable library?

I know there was some work done in this direction, but nothing for ABI
versioning or API compatibility has been done yet.

I've CCd folks who were on the original discussions for the various
series I've found (linked below).

I'm uncomfortable with bumping this and just 'let the chips fall where
they may,' since having a version that hasn't changed is the virtually
the same as not having a version.  The instant we bump, we state that
the version means something, so I'm not comfortable just shipping a
patch that changes the version without some accompanying documentation
explaining *what* that means.  It also means we need to be more diligent
with reviews and watch for potential ABI breakages, with a compatibility
strategy in place (when ABI/API changes can be made, how they are made,
etc.).  I think it's got more implication than just a single line change
to the configure.ac file.

Below are a few snippets I found;  there may be more discussions I've
missed, so please feel free to include links (or summaries).

Versioning patch (which mentions that it isn't yet intended to be for
  3rd party linking):
  https://mail.openvswitch.org/pipermail/ovs-dev/2014-November/291959.html

The first non-rfc 'third-party linking' series I could find (with note
  from Panu at least warning about this):
  https://mail.openvswitch.org/pipermail/ovs-dev/2016-March/310703.html
  https://mail.openvswitch.org/pipermail/ovs-dev/2016-March/310773.html

The series 'third party linking' series has all parts accepted:
  https://mail.openvswitch.org/pipermail/ovs-dev/2016-April/313183.html

-Aaron


More information about the dev mailing list