[gst-devel] Versioning of GStreamer

Jan Schmidt thaytan at noraisin.net
Thu May 11 02:55:05 CEST 2006

On Sun, 2006-05-07 at 22:59 +0000, Taj Morton wrote:
> Hello,
> I'm a developer from the Autopackage project (http://autopackage.org). I wrote a
> script this morning to detect which versions of GStreamer were installed, and I
> just wanted to make sure that I have the versioning scheme that you guys are
> using correct:
> GStreamer's shared library is named libgstreamer-X.Y.so.A.B.C
> Y is incremented when there is an ABI/API break (interfaces changed/removed).
> X is incremented whenever Y rolls back to 0 (1.9 -> 2.0)

X.Y is the current GStreamer series. That part is versioned like the
Linux kernel - odd minor version numbers indicate a development/unstable
series, even minor version are stable. Our current release series is
0.10. When we decide it's time to do some ABI breaking changes, we'll
start the 0.11 development cycle.

> B is incremented when interfaces are added, but not removed
> or otherwise changed (made inline, etc). When B rolls back to 0,
> A is incremented (0.9 -> 1.0).
> C is changed when the source code is changed, but there is no change
> in the public interface (e.g., bug fixes).

Here's the instructions from the changelog for the current/revision/age
(A.B.C) portion of the library naming. They should be read as a set of
step by step instructions, executed in turn:

dnl - library source changed -> increment REVISION
dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
AS_LIBTOOL(GST, 6, 0, 6)

I hope that's clear enough.


Jan Schmidt thaytan at noraisin.net

"Karaoke bars combine two of the nation's greatest evils:
people who shouldn't drink with people who shouldn't sing."
-Tom Dreesen

More information about the gstreamer-devel mailing list