* Shlomi Fish <shlo...@shlomifish.org> [2015-05-31 18:45]: > So what should be done?
The thing is that version numbers are used in many places that don’t necessarily follow the same conventions for what notation is equivalent to what other notation. Think OS package managers. The most conservative approach is to treat the version number as both a simple number and a string, which means just one dot, and making sure to always zero-pad it to the same fixed length. So personally I’ve settled into 4 decimal places, i.e. e.g. 1.0000, in which I treat the first decimal place as the minor version, and mostly treat the last 3 places as the revision number. So in place of 1.3.2 you get 1.3002. That is only 2 places shorter than 1.003002, but it is *much* easier on the eyes because it’s shorter in the front rather than the back: the major and minor don’t get separated by usually redundant and visually bulky zeroes. This does limit each major version to 10 minor versions, but I am fairly liberal about bumping the major version anyway. You can bump too little, but not really too much. So that doesn’t bother me. Also, while the last 3 places are where the revision number goes, that is not strictly their only use. The second decimal place would always be 0 in practice if that were the case. Rather, having 3 places after the “minor version” gives some wiggle room to fudge the version number a bit in case that’s needed. So you aren’t *forced* to bump the major version as often as you might think, either. The point of going to 4 decimal places from the start is to avoid having to add places later, and part of the point of that is to avoid setting any precedent of adding decimal places. (If not for trying to balance all the compatibility concerns, almost everything on CPAN could make do with two decimal places, with more occasionally thrown in temporarily.) If you stick with this scheme unyieldingly, you get compatibility with anything and everything that might look at your version numbers – human æsthetic sensibilities included. And push come to shove, don’t be afraid to bump the major. So this is what I’ve arrived at. It’s not ideal on any one axis, but it manages to be quite passable. Considering all the concerns it balances I feel it’s pretty good. It’s extremely conservative on one hand yet at the same time gives room for fudging as needed. Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>