Monks ~
I have questions about how to version modules in a package. They boil down to: if and how should I synchronize internal $VERSIONs amongst the modules and with the package version. Specific questions (with my answers at the end):
Given package Foo, containing Foo.pm, Foo/Bar.pm, Foo/Baz.pm:
- If the package is version .5, should $Foo::VERSION eq .5?
(Yes: seems common practice)
- If the package is version .5, should $Foo::Bar::VERSION eq .5?
(Not necessarily: Bar.pm's version should reflect only its own changes, and not influence or be influenced by the Foo package version.)
- If I make a change to Baz.pm, updating it to .31, should I update Bar.pm's version as well?
(No, for the same reason as above.)
- If I make a change to Foo::Baz, should I update $Foo::VERSION?
(Only when I'm going to make a new version of the Foo package.)
It seems to me that $Foo::VERSION is the effective version of the entire package, and should only be changed for new package versions. $Foo::Bar::VERSION and $Foo::Baz::VERSION should be changed as their internal changes demand.
This doesn't account for minor changes to Foo.pm itself. If I'm not ready to make a new package version, these changes would go unversioned, except by Subversion's $Id$ string. The same is true of the sum-modules: minor versions are tracked by Subversion, major ones by $VERSION.
Is this common practice? Any thoughts?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.