Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mauke opened this issue Mar 19, 2025 · 4 comments

Comments

@mauke
Copy link
Contributor

mauke commented Mar 19, 2025

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.

@jkeenan
Copy link
Contributor

jkeenan commented Mar 24, 2025

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

@thibaultduponchelle
Copy link
Member

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

@steve-m-hay
Copy link
Contributor

@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 (a8ec991) 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.)

@mauke
Copy link
Contributor Author

mauke commented Apr 9, 2025

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants