Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: RFC: Version::Easy

by Haarg (Priest)
on Jul 13, 2020 at 11:17 UTC ( [id://11119250]=note: print w/replies, xml ) Need Help??


in reply to RFC: Version::Easy

You should probably clarify what problems you are actually trying to solve with this approach. The 'Why eval $version?' post is a long thread discussing a variety of issues. Most of the issues regarding version comparisons are handled by perl 5.10. And this doesn't help with the original question proposed in the 'Why eval $version?' post, which was regarding a version extracted by ExtUtils::MakeMaker.

Replies are listed 'Best First'.
Re^2: RFC: Version::Easy
by LanX (Saint) on Jul 13, 2020 at 11:29 UTC
    > You should probably clarify what problems you are actually trying to solve with this approach.

    avoiding boilerplates.

    > The Why eval $version? post is a long thread discussing a variety of issues.

    Indeed, but if there are problems left, they could be solved inside the module.

    > which was regarding a version extracted by ExtUtils::MakeMaker.

    I don't understand, could you please elaborate?

    edit

    "version" like version.pm or like $VERSION?

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

      This module would replace the boilerplate of $VERSION =~ tr/_//d; with the new boilerplate of use Version::Easy;. This doesn't seem like a significant improvement, and adds several dependencies. use version; already accomplishes basically the same thing as this module.

      The original question was about a test that was extracting a version number using MM->parse_version. Any tool doing "static" version extraction isn't aided by a module like Version::Easy.

        > the new boilerplate of use 'Version::Easy'

        • It's far easier to explain use MODULE to a beginner
        • as already said, this could already be activated in a meta package
        • you don't need an our declaration
        • you can catch format errors right when developing
        • you can catch multiple $VERSION errors by making it readonly

        > Any tool doing "static" version extraction isn't aided by a module like Version::Easy.

        I think you were the one suggesting using tr/_// after declaration, in which way do static parsers do better with your approach?

        I think you were the one pointing to the need for developers to check $VERSION in the their tool chain, like test suite?

        An object is more robust towards comparing different formats.

        > and adds several dependencies.

        I only used core modules, and version.pm is loaded anyway in every Perl run using use.

        The dependency to Tie::StdScalar could easily be removed.

        Questions

        • I realize that MakeMaker documents that it can't parse v-strings but I can't find the code for ->parse_version and my tests show any quoted string.°
        • Who exactly calls MakeMaker? The author using a recent Perl, or the user who might be using Perl 5.8?
        • it's it possible to install a new version of MakeMaker via dependency?

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

        °) looks like v-string here means the literal v1.2.3 notation while quoted strings "v1.2.3" are ok

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (1)
As of 2024-04-25 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found