open(PIPEFH,'-|','git tag -l')ordie"Failed to read git release tags: $!\n";
while(<PIPEFH>){
chomp;
if(/\Arelease\-(.*?)\Z/){
push@unsorted_releases,$1;
}
}
close(PIPEFH);
#print("\n\nUNSORTED\n");
#foreach (@unsorted_releases) {
# print "$_\n";
#}
my@releases=sort{
my@asplit=split/\./,$a;
my@bsplit=split/\./,$b;
my$rc;
for(my$i=0;$i<scalar(@asplit);$i++){
return1if(scalar(@bsplit)<=$i);# a is "2.0.1" and b is "2.0", or whatever.
my$aseg=$asplit[$i];
my$bseg=$bsplit[$i];
$rc=int($aseg)<=>int($bseg);
return$rcif($rc!=0);# found the difference.
}
return0;# still here? They matched completely?!
}@unsorted_releases;
#print("\n\nSORTED\n");
#foreach (@releases) {
# print "$_\n";
#}
push@releases,'HEAD';
my%funcs=();
foreachmy$release(@releases){
#print("Checking $release...\n");
nextif($releaseeq'2.0.0')||($releaseeq'2.0.1');# no dynapi before 2.0.2
my$assigned_release=($releaseeq'2.0.2')?'2.0.0':$release;# assume everything in 2.0.2--first with dynapi--was there since 2.0.0. We'll fix it up later.