Modules versioning

ambs on 2009-12-31T18:41:27

For some time that Perl modules are numbered with a major version, a minor version, and sometimes, a alpha/beta numbering.

Lately some modules adopted the usage of a serialized date. One of the latest was Regexp::Common. Do not stress, Abigail, nothing against it.

Now, the question are: is it useful? Should it be used just for old and stable modules like Regexp::Common or should we use it from the beginning?

I think it might gets useful. Normally it is hard to know in what direction to number distributions. Especially when you get to .99 and do not want to change the major version in the next version.

But then, probably we should not use that numbering scheme for new modules. Just because you never know if you will need to change drastically the interface. And then, a major number version change might get useful.

Any thought?


I use the date when the date means something

brian_d_foy on 2010-01-01T13:29:48

I started using a date as the major version with Business::ISBN::Data because the data are linked directly to particular releases from the ISBN Agency.

Beyond that I might use the date for something that is not a major version, but I just finished a project that had a pain point with version.pm because it used too many digits in the version, including major and minor versions, the svn revision, and build number. The svn version got to six digits (and maybe seven within a year in the shared repo), and the build number quickly got up to four digits.

Beyond that, as long as I know which one of a set of them is the most recent, I don't really care. :)

major numbers are escape hatches

rjbs on 2010-01-02T21:13:13

I'm not a big fan of version numbers meaning anything but "newer," but I'd always suggest 1.YYYYMMDD over YYYYMMDD because later if you decide that 20100720 is a terrrible version number, you're kind of stuck with it. If you used 1.YYYYMMDD, you just bump to 2.000.