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

Re^2: Versioning modules in a package

by legLess (Hermit)
on Oct 04, 2004 at 19:33 UTC ( [id://396357]=note: print w/replies, xml ) Need Help??


in reply to Re: Versioning modules in a package
in thread Versioning modules in a package

The upshot is, the version of your subpackages should live their own lives and be pretty much unrelated to the versioning of the parent.

This is the kernel of what I thought, although not with the detail you suggest. Yours seems like a good system: specific and fine-grained.

So the only question I have left is: should the Main module's $VERSION equal the package's version? This seems true of every package I've seen, but appears to be a special case of the other guidelines.

Replies are listed 'Best First'.
Re^3: Versioning modules in a package
by BrowserUk (Patriarch) on Oct 04, 2004 at 21:48 UTC
    should the Main module's $VERSION equal the package's version?

    The scheme was mostly used for C and/or assembler based libraries, so we didn't really have the same concept of separate package and module versions. The nearest thing to a package version would have been the release number. In essence this was just the major.midor numbers with the minor (always 00) dropped. New releases were made each time the midor number was incremented.

    Individual clients may be given an an .zz build of a particular file (possible because no external nor internal interfaces had changed; so interfile compatibility was ensured) to solve a specific problem as required, but there was no new release made until a new midor increment.

    In effect, the latest release would be 3.2(.0) with some customers having one or more files that might be 3.2.xx (99 >= xx > 00) to solve immediate problems between releases. Pre-release betas usually went out to a limited set of customers and got numbered 3.2.90/91/92 which then became 3.3.00 at release.

    Applying this to Perl packages, I would use the same scheme. CPAN releases being XX.YY(.00) with "internal" developments incrementing zz until it becomes time for a new CPAN release. When a specific users reports a bug that need immediate fixing, only increment the zz number and send them the interim. You then note the fix on the bugtracking system (along with the full xx.yy.zz number) but only send it out as people ask for it.

    If the frequency of requests for upgrades to a specific level rise above a trickle, then it worth doing a new CPAN release--once you've had feedback (or a lack of negative feedback) from the users who are already using it.

    Note: That's just how I would do it. I don't have any CPAN/OSS packages to maintain, so the reality of that environment may be completely different to my experience of in-house and paying customer work.


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-16 19:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found