perl5
perl5 copied to clipboard
[doc] "Check module versions" in Porting/release_managers_guide.pod makes no sense
Where
Porting/release_managers_guide.pod, =head3 Check module versions
Description
This is what the RMG says:
Create a release branch
For BLEAD-POINT releases, making a release from a release branch avoids the need to freeze blead during the release. This is less important for BLEAD-FINAL, MAINT, and RC releases, since blead will already be frozen in those cases. Create the branch by running
$ git checkout -b release-5.X.YBuild a clean perl
[…]
Check module versions
For each Perl release since the previous release of the current branch, check for modules that have identical version numbers but different contents by running:
$ ./perl -Ilib Porting/cmpVERSION.pl --tag=v5.LAST(This is done automatically by
t/porting/cmp_version.tfor the previous release of the current branch, but not for any releases from other branches.)Any modules that fail will need a version bump, plus a nudge to the upstream maintainer for 'cpan' upstream modules.
How can there be any "previous release of the current branch"? The "current branch" is release-5.X.Y, created just two steps before. It can't have any releases.
I'd rewrite it, but I don't understand what this section is trying to say.
Can someone who has done a monthly development release take a look at this issue? Thanks.
@steve-m-hay As the author of this section, can you please help? 🙏🏼
@steve-m-hay As the author of this section, can you please help? 🙏🏼
It is referring to previous releases of the current "stream" or "track" (in the wording of perlhist.pod). "branch" was a poor choice of wording; sorry. If you look at the original commit message (a8ec9917c1913282d626f8c7467e40e55b7f5c97) I'm referring to the need to check against 5.18.4 when releasing 5.20.2 on the basis that 5.18.4 is a Perl release that has occurred since the previous release of the current branch(/stream/track), i.e. since 5.20.1.
(5.20.1 was released in Sep 2014; 5.18.4 came out after that in Oct 2014, so when releasing 5.20.2 it was necessary to check against 5.18.4 as well as checking against 5.20.1. t/porting/cmp_version.t would only have checked against 5.20.1 in this case.)
@steve-m-hay Is the following algorithm what you had in mind?
- For a BLEAD-FINAL release, skip this step.
- Find all perl versions released chronologically after v5.LAST by carefully scanning
perldoc pod/perlhist.pod. - For each perl v5.SOMETHING found in the previous step, run
./perl -Ilib Porting/cmpVERSION.pl --tag=v5.SOMETHING.
Examples:
-
For v5.20.0, there are no previous releases of the current "track" (5.20), so there is nothing to do.
-
For v5.20.2 (released on 2015-02-14), we would need to find all perls released after 2014-09-14 (release date of v5.20.1, our v5.LAST). These are v5.18.3 (2014-10-01), v5.18.4 (2014-10-01), v5.21.4 (2014-09-20), v5.21.5 (2014-10-20), v5.21.6 (2014-11-20), v5.21.7 (2014-12-20), v5.21.8 (2015-01-20).
Thus the command to run is:
for ver in \ v5.18.3 \ v5.18.4 \ v5.21.4 \ v5.21.5 \ v5.21.6 \ v5.21.7 \ v5.21.8 \ ; do ./perl -Ilib Porting/cmpVERSION.pl --tag="$ver" done -
For v5.20.3 (released on 2015-09-12), we would need to find all perls released after 2015-02-14 (release date of v5.20.2, i.e. our v5.LAST). These are v5.21.9 (2015-02-20), v5.21.10 (2015-03-20), v5.21.11 (2015-04-20), v5.22.0 (2015-06-01), v5.23.0 (2015-06-20), v5.23.1 (2015-07-20), v5.23.2 (2015-08-20).
Thus the command to run is:
for ver in \ v5.21.9 \ v5.21.10 \ v5.21.11 \ v5.22.0 \ v5.23.0 \ v5.23.1 \ v5.23.2 \ ; do ./perl -Ilib Porting/cmpVERSION.pl --tag="$ver" done
@steve-m-hay Is the following algorithm what you had in mind?
- For a BLEAD-FINAL release, skip this step.
- Find all perl versions released chronologically after v5.LAST by carefully scanning
perldoc pod/perlhist.pod.- For each perl v5.SOMETHING found in the previous step, run
./perl -Ilib Porting/cmpVERSION.pl --tag=v5.SOMETHING.
Yes, that looks good to me.