We do follow the standard library version numbering. The problem is
that either you did not understand it or didn't look close enough.
Let's have a look at configure.in:
# Making releases:
# GIMP_MICRO_VERSION += 1;
# GIMP_INTERFACE_AGE += 1;
# GIMP_BINARY_AGE += 1;
# if any functions have been added, set GIMP_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GIMP_BINARY_AGE and GIMP_INTERFACE_AGE to 0.
The libraries have the binary version in their names because they are
different. libgimp-1.2 and libgimp-2.0 are different libraries and by
no means compatible. They are supposed to coexist so they need the
binary version in the library name. The library version is then
created from the version information as given above. During a
development cycle, each release is incompatible to the previous, so
interface age and binary age are always set to 0. When 2.0.0 is out,
we will apply the rules as given above. This is certainly a very much
standardized way of handling library versions and I can you give you a
very long list of projects that do it this way.
Gimp-developer mailing list