If the first release of your CPAN module has version 0.01, then when should you release version 1.00, and what does that signify? For a good while now I've kinda of read 0.x as "I'm still kicking things around", and you go to 1.x when things have settled down. I recently realised that others don't think the same as me (I know, amazing huh?), so I thought I'd see what others (that's you) think.

In my early days as a CPAN author, my first releases of a module would have version 1.x. But then at some point I noticed that people generally start with 0.01 or 0.001, so switched to 0.01.

Over the years I've absorbed various ideas related to version numbers, both from the Perl community and beyond. For example, Toby had a clear policy with respect to 1.0 of Type::Tiny, and I remember seeing other people with similar thoughts.

So I suggested to Karen Etheridge (ETHER) that maybe Try::Tiny is ready for a 1.x release. She effectively replied with "huh?", and that's when I realised we don't all have the same thoughts on this.

The Semantic Versioning Spec says:

Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

So, phew!, it's not just me.

In many books about startups, people talk about "shipping 1.0". It's the first version you think people will pay for. But on CPAN, the first version you ship is effectively the version you think (ok, hope) someone else might find useful.

Grinnz made a good point on reddit: for CPAN distributions, bumping to 1.x is possibly also an indication that it's "battle-tested", to borrow Ovid's phrase. If no-one ends up using your module, then maybe it should stay at 0.x. When I see a version 0.01 on CPAN that was released more than a year ago, that says something to me.

Now I'm curious: do most people think that 0.x isn't special, or do you see it the way I do?

Further reading

Please enable JavaScript to view the comments powered by Disqus.

Disqus