To solve some problems with co-hosting different versions of ClanLib, and to better support breaking changes in the future, I've changed how ClanLib names its libraries under Unix.

The current SVN version now creates libclan20Core.so, libclan20Display.so (and so on), instead of naming it libclanCore.so and libclanDisplay.so.

The rationale behind this change is that both our API and ABI is not backwards compatible with ClanLib 1.0, and due to lack of resources we do not intend to maintain 100% backwards compatibility in the 2.0 series either.

So from now on the logic behind a ClanLib version number is as follows:

  • The major number (2) indicates large (probably breaking) changes in the API
  • The minor number (0) indicates minor (possibly breaking) changes in the API (such as those we have been doing since the release of 2.0.0)
  • The micro number (4) indicates a version with no breaking API or ABI changes


Naturally this doesn't apply to the releases for 2.0.x we have already done, but it means the next release of ClanLib will be versioned 2.1.0. After that we will release 2.2.0 and so forth.

The micro number is reserved for service packs for already released versions, because it is our experience that games tend to be written and then abandoned by their developers. To ensure such games will continue to compile and run in the future, we reserve the micro number as service packs for such games where they'd like some non-breaking patch for ClanLib for whatever reason.