On Sun, Sep 6, 2009 at 2:39 AM, Eric Wilhelm<enoba...@gmail.com> wrote: > Drawbacks? It's assuming that "# ALPHA" is a comment -- but really what > sort of crazy stuff are you doing with the $VERSION line where > including the string "# ALPHA" in a non-alpha release is necessary and > not confusing? > > It is at least not more arbitrary than the "_" convention and would > allow us to eliminate the whole eval($VERSION) thing as-recommended in > David's post about versions (which, btw, triggers perl critic's wrath.)
I won't sully the list with my thoughts on Perl::Critic in this regard, but Emerson's "foolish consistency" line comes to mind as a more polite alternative. I feel strongly that these kinds of ideas be discussed in a wider forum than the Module-Build list. I get frustrated when one toolchain modules "innovates" without regard for the others and other toolchain modules wind up having to add more special cases. In this particular regard, I suggest that the discussion happen as part of the CPAN Meta Spec revision process I'm coordinating -- which conveniently involves maintainers of all the major toolchain modles. While it relates to source rather than Meta, it intersects because "-TRIAL" wouldn't be in dist_version. I think the CPAN Meta Spec should be explicit on how how release status is determined (e.g. whether "_" in the version number string or parsed off a comment on the "$VERSION =" line) and how it is communicated (e.g. tarball name or field in the Meta file). > For reason #2, I'm reluctant to do it with e.g. a command-line option or > Build.PL parameter. Some sort of artifact in the deployed .pm is very > useful for debugging an installed module. I have mixed feeling about this. Until *Perl* has specific semantics around this, I'm reluctant to add semantics in the form of comments, since it's just a different, abitrary variation of the "_" hack. This patch is for "# ALPHA". But on IRC others have expressed wanting something like unstable/testing/stable -- not just a binary state. Others want to find ways to parse author/authority information off a line. The moment you introduce "# ALPHA" there will be some who want it to be: our $VERSION = 1.23; # :status(STABLE) :auth(JDOE) :tags(web cgi moose) Should the first implementation win? Should different installers do it different ways? Should we bikeshed the issue to death? I really don't want to do anything that leads to more installer framework lock in. E.g. "I've started using M::I and I like their comment parsing system better so now I don't want to change from M::I because I don't want to have to re-write all my version line comments in new format. So... while in concept I like the idea of finding a way to move away from underscores, I'd like to reach a broader consensus before implementing anything. David