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 ---------------------------------------------------