Does Parrot use or want to use Semantic Versioning?

Andy Dougherty doughera at lafayette.edu
Wed Oct 13 13:09:35 UTC 2010


On Tue, 12 Oct 2010, James E Keenan wrote:

> Jonathan Leto wrote:
> > Howdy,
> > 
> > http://semver.org/
> > 
> > This is related to porting mk_language_shell.pl and create_language.pl to
> > Git.
> > 
> 
> Duke:  Before we (or I) study semantic versioning, can I ask?  Have other open
> source projects faced the same Subversion-to-git conversion we have?  How have
> they solved this problem?  (Perl 5, perhaps?)

Perl 5 converted from Perforce to git, but the problems faced were 
somewhat different.  For parrot, one of the main challenges is that HLL 
developers still wish to track non-released versions, so the concept of 
"later than revision nnnnn" is important.  For perl 5, one of the main 
challenges was identifying reports based on non-released versions; the 
concept of "later than" wasn't as big an issue.

In any case, here's what perl 5 does now:

A build of perl 5 built outside of a git repository (or in a git 
repository but on a system without git installed) reports itself as

     This is perl 5, version 13, subversion 5 (v5.13.5)

That same version built within a git repository on a system with git 
installed reports itself as

    This is perl 5, version 13, subversion 5 (v5.13.5-415-g41e1f0e*) 

where the extra information comes from "git describe", and the trailing 
"*" reflects that my working directory contains uncommitted changes. Extra 
information about uncommitted changes and unpushed commits is printed by 
perl -V (and included by default in perlbug reports).  The script 
"make_patchnum.pl" included in the perl 5 distribution is responsible for 
extracting that information and storing it in "git_version.h".

In either case, the variable $] = 5.013005.  Users are expected to use the 
released version numbers to specify dependencies.  They are not expected 
to rely on that '415' number in any way.

Perhaps, as an initial step, the official parrot tools should simply 
support released parrot version numbers.  Rakudo developers will likely 
then develop their own tools to suit their real-world needs.  Those 
changes could then be evaluated for porting back to the parrot tools.

-- 
    Andy Dougherty		doughera at lafayette.edu


More information about the parrot-dev mailing list