exo versioning scheme

Jannis Pohlmann jannis at xfce.org
Thu Aug 13 03:48:44 CEST 2009


Hey guys,

as most of you know, exo installs like exo-0.3.pc, libexo-0.3.so and
others in the file system. The problem with this is that '0.3' is
treated like a major version number and if we were to release exo 0.4.0
together with Xfce 4.8 (which I'd like to do for consistency reasons -
even minor verison for stable releases, ya know?), we'd have to change
all those filenames and we'd also have to update all other core
components to depend on 'exo-0.4' instead of 'exo-0.3'. 

This is inconvenient. There is a solution however: rename files to
exo-1.pc, libexo-1.so and so on and update all components depending on
exo to depend on 'exo-1' instead of 'exo-0.3' NOW, early in the
development cycle (before we've really kicked it off even). Using exo-1
would of course be similar to an API version bump (like GTK+ 2.x
vs. GTK+ 3.x), but it has one main advantage: we can bump the minor
version as we please without breaking components depending on exo in the
future. This means we can release everything from 0.3.x up to 1.x.x
without ever having to rename the .pc or library files or update the
dependency list of other components.

This also gives us the possiblity to clean up some deprecated APIs in
exo, if there are any. We could also improve APIs we don't think are
good enough (which I doubt exist).

I've prepared all this. There is a 'versioning-0.3-to-1' branch for exo
which has all the renamed files and stuff. There is also a
'switch-to-exo-1' branch for each Xfce core component that depends on
exo. I think all of these compile and run just fine. 

What do you think?

If we all agree that this is a good idea, I'd propose the following
actions:

  1. check if the changes I made in the branches are ok
  2. remove deprecated APIs from the 'versioning-0.3-to-1' branch and
     from 'switch-to-exo-1' branches of components using them
  3. go through the exo APIs, look for things you'd like to see
     improved and list or improve them in the 'versioning-0.3-to-1'
     branch. Make sure all components reflect the changes.

and

  4. merge the 'versioning-0.3-to-1' branch of exo into master, release
     a new exo 0.3.x version and merge the 'switch-to-exo-1'
     branches of core components into the corresponding master branch.

And tada, one more of my pet issues would be resolved ;)

  - Jannis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce4-dev/attachments/20090813/9de807b7/attachment.pgp>


More information about the Xfce4-dev mailing list