Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Software (Module) Release Numbering Conventions

by dpatrick (Scribe)
on Aug 16, 2001 at 19:59 UTC ( #105423=perlquestion: print w/replies, xml ) Need Help??
dpatrick has asked for the wisdom of the Perl Monks concerning the following question:

I'd like to being releasing some of the modules that I've written that I've been sitting on for lack of documentation. Now my question is, how should I version them? That is, should my numbering go x.xx or x.x.x or what? I know that there is a reason for choosing one and I've read a couple of documents on this, but I'd like to get the opinions of other Perl developers who have been faced with the same dilemma (albeit a small one). Thanks everyone.
  • Comment on Software (Module) Release Numbering Conventions

Replies are listed 'Best First'.
Re: Software (Module) Release Numbering Conventions
by chromatic (Archbishop) on Aug 17, 2001 at 05:47 UTC
    A recent thread on p5p proposed a new perldoc called "perlmodstyle". There's a bit in there about version numbers. See here for the start. (I'd start with x.xx, but don't paint yourself into a corner -- 0.01 is different from 0.1).
Re: Software (Module) Release Numbering Conventions
by trantor (Chaplain) on Aug 17, 2001 at 11:24 UTC

    Check the list of modules installed on your system with

    perl -MCPAN -eautobundle
    you'll see that x.yz is the preferred format, x, y and z being integers, not simply digits.

    You can always use x.y_z if you want to emulate x.y.z. The underscore will be ignored, being treated as a visual separator for digits, and your number will be treated as x.yz.

    At the moment the x.y.z notation is interpreted differently if different versions of Perl. For example, it's a v-string in Perl 5.6.1 and it's translated into a 3 characters string (not necessarily threee bytes), the first character having code x, the second having code y, the third having code z. So, if you try

    perl -e'print 33.34.35'
    you'll get !"# in Perl 5.6.1 and 33.3435 in Perl 5.005. The notation v33.34.35 won't even work in Perl 5.005.

    My conclusion is that, for the time being, x.yz or x.y_z are more backwards compatible than x.y.z or vx.y.z.

    As newer versions of Perl replace the old ones, v-strings will probably be the preferred way. You can always require 5.6 in your code and start using them right now without ambiguity.

    The other question, about version numbering schemes, is more about personal taste. Some developers use even minor releases for stable versions, odd for development (no pun intended).

    So, for example, Linux kernel 2.4 series are (supposed to be) stable versions, being 4 an even number, while series 2.3 used to be the development branch that lead to 2.4.

    Another issue is the starting number, some developers like to start from 0.x versions (meaning it can be still experimental), while other feel more confident and their versions start with 1.x.

    Finally, some developers like versions such as 1.03, others prefer 1.3. A minor change would be 1.04 in the first case (or maybe even 1.03_1 or 1.03_01 or...) and 1.31 in the second. It doesn't matter which one you chose, I think. The important thing, in my opinion, is preserving a correct numerical progression.

    Happy releasing!


Re: Software (Module) Release Numbering Conventions
by snafu (Chaplain) on Aug 16, 2001 at 22:16 UTC
    Well, I don't think there is any hardened rule or RFC on this but there a standard as far as what your versioning is supposed to mean. That of course being the all-known major.minor.minor_minor.etc. However, I believe that the versioning is really up to the developer. It's ultimately up to you if you want to name your first version of a program as version 5. I wouldn't really recommend that but how is the end user supposed to know? I believe it really is just a way for the developer(s) to maintain the code and to be able to handle revision control a little easier. I have seen some people release their first versions as 0.x probably in anticipation of coming out soon with a better version or perhaps that is just how they want to version their software.

    Some people let their revision control software do the versioning for them. eg. RCS or CVS. I like this because unless you tell the revision control to version your rev differently it just minors it up one (ie 4.1 to 4.2 etc).

    In summary, I believe it is up to you. That's how I've done mine. And I do my versioning with the intent to be able to control my revs a bit better.

    - Jim

(tye)Re: Software (Module) Release Numbering Conventions
by tye (Sage) on Aug 17, 2001 at 22:02 UTC

    I'm switching from 1.02_03 to 1.002_003 in order to be compatible with the new v1.2.3 version syntax. This is what I'd suggest to others. If you are extra paranoid, use 101.102_103 so that naive string compares will also work.

            - tye (but my friends call me "Tye")

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://105423]
Approved by root
[holli]: it's probably the autist in you. I am like that too, no fucks given about what others think about me
james28909 checks, yep... htere are no fucks to give
[james28909]: another thing i am sick of is hurting others feelings
[1nickt]: james28909 You lost me a bit when you said "show me evolution from intelligence to ignorance". I guess we would have to define the terms, but as I look around at my species and how we are destroying our habitat ...
[james28909]: seems like a person cant even have a belief without hurting someones feelings. i never said my way is the only way. i just said i have pretty good scientific evidence, and then asked for opposing side to present evidence
[james28909]: was downvoted and left without a reply. go figure
[holli]: but then you DO give a fuck
[1nickt]: I don;t think beliefs should be down-voted, just behaviours.
[james28909]: im not quite how to explain it any better nick. you evolved from ignorance to intelligence. not the other way. the universe evolves from gas coulds and debris into planets stars and galaxies ect. it doesnt happen any other way. hence it has ....
[james28909]: some kind of logic behind it

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2017-12-15 14:29 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (433 votes). Check out past polls.