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