On Sat, 22 May 2004 23:29:58 +0000, Chris Dutton wrote:

> Seems to me that a sensible model is:
> 
> x.y.z
> 
> X is a truly major, ground-shaking architectural change, quite possibly
> breaking backwards compatibility.  Y is a significant feature addition.
>   Z is a minor release: a bugfix, or performance enhancement, for
>   instance.

This is 99% identical to the rule I follow for RMagick.

1. A change in X represents a major change. Backwards compatibility not
guaranteed.
 
2. A change in Y represents a guaranteed-to-be-compatible upgrade to the
previous release.

3. A change in Z represents bugfixes.