Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: What basic things should I know about versioning modules?

by nysus (Parson)
on Feb 23, 2017 at 11:56 UTC ( [id://1182631]=note: print w/replies, xml ) Need Help??


in reply to Re: What basic things should I know about versioning modules?
in thread What basic things should I know about versioning modules?

What was the version string experiment trying to achieve?

And how, exactly, are these version numbers used by other code? I imagine they are checked to make sure that a module has certain capabilities that it needs. But how does that actually get implemented in practice?

Also, what is the thumb rule for creating new versions? If I fix a typo in a comment, should I increment the version number? I'm guessing no. But when should I?

$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks

  • Comment on Re^2: What basic things should I know about versioning modules?

Replies are listed 'Best First'.
Re^3: What basic things should I know about versioning modules?
by choroba (Cardinal) on Feb 23, 2017 at 12:28 UTC
    > how, exactly, are these version numbers used by other code?

    They are compared when you say

    use Some::Module 6.41;

    See use for documentation, especially

    If the VERSION argument is present between Module and LIST, then the use will call the VERSION method in class Module with the given version as an argument:
    use Module 12.34;
    is equivalent to:
    BEGIN { require Module; Module->VERSION(12.34) }
    The default VERSION method, inherited from the UNIVERSAL class, croaks if the given version is larger than the value of the variable $Module::VERSION .

    > Also, when is the thumb rule for creating new versions?

    See Semantic Versioning for one of the possible strategies.

    > If I fix a typo in a comment, should I increment the version number?

    Of course. CPAN/PAUSE would reject an upload with an existing version.

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Re^3: What basic things should I know about versioning modules?
by haukex (Archbishop) on Feb 23, 2017 at 12:31 UTC
    Also, when is the thumb rule for creating new versions? If I fix a typo in a comment, should I increment the version number? I'm guessing no. But when should I?

    You should definitely increment the version number on every release, as many things will depend on that (CPAN, users of your module that require a specific version, and the general confusion that comes from having two different releases with no good way of keeping them apart). Then, consider whether you need to make a release if all you did is change a code comment.

    Things are of course different for modules that are just for internal consumption, in that case the only person the version numbers will have an importance for is you, and you can do things as you like. But since keeping good version numbering is important for any code that goes beyond yourself, it's a good habit to get into.

      Yeah, right now I'm just writing modules for myself. But I want to learn good habits in case I ever go "big time" and release a module for CPAN. It's kind of a little dream of mine. :)

      $PM = "Perl Monk's";
      $MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate";
      $nysus = $PM . ' ' . $MCF;
      Click here if you love Perl Monks

Re^3: What basic things should I know about versioning modules?
by perl-diddler (Chaplain) on Sep 20, 2017 at 02:07 UTC
    It wasn't a version string experiment, exactly, but incrementing a version in one module in <bin>/foo/lib over <bin>/lib, to verify that it was using the module that was in the lib-dir of foo. It wasn't intended to remain a different version. Just verifying the older of resolution was what I thought it was.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1182631]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2024-04-20 14:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found