in reply to Re^3: RFC: Version::Easy
in thread RFC: Version::Easy

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

> 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

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

Replies are listed 'Best First'.
Re^5: RFC: Version::Easy
by tobyink (Canon) on Jul 14, 2020 at 19:56 UTC

    "version.pm is loaded anyway in every Perl run using use."

    No, it isn't.

    $ perl -e'use strict;use warnings;CORE::say for sort keys %INC' strict.pm warnings.pm
      > No, it isn't.

      Something is ...

      ... running B::Xref on a minimalist script shows the namespace being magically populated

      t_float.pl (definitions) 0 version & ("" + subdef t_float.pl (definitions) 0 version & () + subdef t_float.pl (definitions) 0 version & (* + subdef t_float.pl (definitions) 0 version & (*= + subdef t_float.pl (definitions) 0 version & (+ + subdef t_float.pl (definitions) 0 version & (+= + subdef t_float.pl (definitions) 0 version & (- + subdef t_float.pl (definitions) 0 version & (-= + subdef t_float.pl (definitions) 0 version & (/ + subdef t_float.pl (definitions) 0 version & (/= + subdef t_float.pl (definitions) 0 version & (0+ + subdef t_float.pl (definitions) 0 version & (<=> + subdef t_float.pl (definitions) 0 version & (abs + subdef t_float.pl (definitions) 0 version & (bool + subdef t_float.pl (definitions) 0 version & (cmp + subdef t_float.pl (definitions) 0 version & (nomethod + subdef t_float.pl (definitions) 0 version & _VERSION + subdef t_float.pl (definitions) 0 version & boolean + subdef t_float.pl (definitions) 0 version & declare + subdef t_float.pl (definitions) 0 version & is_alpha + subdef t_float.pl (definitions) 0 version & is_qv + subdef t_float.pl (definitions) 0 version & new + subdef t_float.pl (definitions) 0 version & noop + subdef t_float.pl (definitions) 0 version & normal + subdef t_float.pl (definitions) 0 version & numify + subdef t_float.pl (definitions) 0 version & parse + subdef t_float.pl (definitions) 0 version & qv + subdef t_float.pl (definitions) 0 version & stringify + subdef t_float.pl (definitions) 0 version & vcmp + subdef t_float.pl (main) 3 float $ VERSION + intro

      d:\exp\version>type t_float.pl package float; our $VERSION = 'v1.0234'; d:\exp\version>

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