Hi all,
Here's a patch of an idea I've been toying with: the ability to publish
an alpha version using the little-known "-TRIAL" string in the tarball
name.
The trigger mechanism is to have the string "# ALPHA" on your $VERSION
line. That might have drawbacks, but is also 1) very simple and 2)
leaves a permanent artifact in the deployed file (so you can read the
source and say "oh, this was an alpha".)
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.)
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.
We talked about this a bit on IRC, but it hasn't been much farther than
that.
Thoughts?
Thanks,
Eric
Index: lib/Module/Build/Base.pm
===================================================================
--- lib/Module/Build/Base.pm (revision 13275)
+++ lib/Module/Build/Base.pm (working copy)
@@ -1049,7 +1049,9 @@
my $version_from = File::Spec->catfile( split( qr{/},
$dist_version_from ) );
my $pm_info = Module::Build::ModuleInfo->new_from_file(
$version_from )
or die "Can't find file $version_from to determine version";
- $p->{dist_version} = $self->normalize_version(
$pm_info->version() );
+ my $v = $pm_info->version;
+ $p->{dist_version} = $self->normalize_version($v);
+ $p->{dist_version} .= eval {$v->{isalpha}} ? '-TRIAL' : '';
}
die ("Can't determine distribution version, must supply
either 'dist_version',\n".
Index: lib/Module/Build/ModuleInfo.pm
===================================================================
--- lib/Module/Build/ModuleInfo.pm (revision 13275)
+++ lib/Module/Build/ModuleInfo.pm (working copy)
@@ -328,6 +328,7 @@
# Bless it into our own version class
$result = Module::Build::Version->new($result);
+ $result->{isalpha} = 1 if($line =~ m/# ALPHA/);
return $result;
}
--
"If you only know how to use a hammer, every problem begins to look like
a nail."
--Richard B. Johnson
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------