perl5 icon indicating copy to clipboard operation
perl5 copied to clipboard

[doc] "Check module versions" in Porting/release_managers_guide.pod makes no sense

Open mauke opened this issue 8 months ago • 5 comments

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

Build 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.t for 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.

mauke avatar Mar 19 '25 19:03 mauke

Can someone who has done a monthly development release take a look at this issue? Thanks.

jkeenan avatar Mar 24 '25 23:03 jkeenan

@steve-m-hay As the author of this section, can you please help? 🙏🏼

thibaultduponchelle avatar Apr 02 '25 14:04 thibaultduponchelle

@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 avatar Apr 02 '25 17:04 steve-m-hay

@steve-m-hay Is the following algorithm what you had in mind?

  1. For a BLEAD-FINAL release, skip this step.
  2. Find all perl versions released chronologically after v5.LAST by carefully scanning perldoc pod/perlhist.pod.
  3. 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
    

mauke avatar Apr 09 '25 00:04 mauke

@steve-m-hay Is the following algorithm what you had in mind?

  1. For a BLEAD-FINAL release, skip this step.
  2. Find all perl versions released chronologically after v5.LAST by carefully scanning perldoc pod/perlhist.pod.
  3. 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.

steve-m-hay avatar May 31 '25 18:05 steve-m-hay