Cameron states an excellent release numbering system, coincidentally the same as we used back in the days at Lecando:
A ‘dot-zero’ release (like 3.0) is allowed to drop deprecated APIs, change an API in a manner that could break binary compatibility, or change the JDK version requirement.
A ‘dot-X’ release (like 3.1) is only allowed to add features and APIs, but should not break any binary compatibility.
A ‘dot-X-dot-Y’ release (like 3.0.1) is a service pack, designed to correct specific problems, and not to introduce new features.
Over time we’ve found that this system works extraordinarily well because of its simplicity, although it’s not going to get us to version 10.0 anytime soon. (At least I hope not, as that would mean that we were breaking compatibility too often!)
This numbering scheme disqualifies the ones I dislike the most: the weirdly named .5 releases that adds a lot of functionality, but not enough for the powers that be to consider it a full “dot-zero” release.