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

Reply via email to