Re: alpha dists without the underscores

David Golden <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.module-build
Message-ID <[email protected]>
On Sun, Sep 6, 2009 at 2:39 AM, Eric Wilhelm<[email protected]> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.