Skip to content
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

cpan/experimental: clash of version numbers between CPAN and blead #22887

Open
jkeenan opened this issue Jan 5, 2025 · 2 comments
Open

cpan/experimental: clash of version numbers between CPAN and blead #22887

jkeenan opened this issue Jan 5, 2025 · 2 comments
Labels
Infrastructure Things needed to maintain Perl development Needs Triage

Comments

@jkeenan
Copy link
Contributor

jkeenan commented Jan 5, 2025

Today I ran the program perl Porting/core-cpan-diff -ax. One of the dual-life distributions identified as having had a new CPAN release was experimental. I then configured and ran:

perl Porting/sync-with-cpan experimental

This program FAILED in t/porting/cmp_version.t with output like this:

...
ok 204 - cpan/experimental/lib/experimental.pm
not ok 205 - cpan/experimental/lib/stable.pm version 0.033
# not ok 205 - cpan/experimental/lib/stable.pm version 0.033
ok 206 - lib/B/Op_private.pm
ok 207 - lib/DBM_Filter.pm
Failed 1/207 subtests 

Test Summary Report
-------------------
porting/cmp_version.t (Wstat: 0 Tests: 207 Failed: 1)
  Failed test:  205
Files=1, Tests=207,  1 wallclock secs ( 0.05 usr  0.01 sys +  0.50 cusr  0.79 csys =  1.35 CPU)
Result: FAIL

Exploring, I ran the underlying program:

$ perl Porting/cmpVERSION.pl --tap
...
ok 204 - cpan/experimental/lib/experimental.pm
#
# ---------------------------------------------------------------------------
# Version number (0.033) unchanged since v5.41.7, but contents have changed:
#
# diff --git a/cpan/experimental/lib/stable.pm b/cpan/experimental/lib/stable.pm
# index 858ef3131a..3512174d11 100644
# --- a/cpan/experimental/lib/stable.pm
# +++ b/cpan/experimental/lib/stable.pm
# @@ -55,7 +55,7 @@ stable - Experimental features made easy, once we know they're stable
#  
#  =head1 VERSION
#  
# -version 0.032
# +version 0.033
#  
#  =head1 SYNOPSIS
#  
# ---------------------------------------------------------------------------
not ok 205 - cpan/experimental/lib/stable.pm version 0.033
# not ok 205 - cpan/experimental/lib/stable.pm version 0.033
ok 206 - lib/B/Op_private.pm
ok 207 - lib/DBM_Filter.pm

I believe what happened here is as follows:

  1. Back in May, the following commit was applied directly to blead:
commit 9e8734b69441e9919aa7db746b7229279aaffdfe
Author:     Karl Williamson <[email protected]>
AuthorDate: Wed May 22 12:26:19 2024 -0600
Commit:     Philippe Bruhat (BooK) <[email protected]>
CommitDate: Thu May 23 14:32:01 2024 +0200

    feature extra_paired_delimiters not considered stable
    
    This is due to GH #22228

diff --git a/cpan/experimental/lib/stable.pm b/cpan/experimental/lib/stable.pm
index 1c778a3764..858ef3131a 100644
--- a/cpan/experimental/lib/stable.pm
+++ b/cpan/experimental/lib/stable.pm
@@ -1,5 +1,5 @@
 package stable;
-$stable::VERSION = '0.032';
+$stable::VERSION = '0.033';
 use strict;
 use warnings;
 use version ();
@@ -12,7 +12,6 @@ my %allow_at = (
 	isa           => 5.032000,
 	lexical_subs  => 5.022000,
 	postderef     => 5.020000,
-	extra_paired_delimiters => 5.036000,
 	const_attr    => 5.022000,
 	for_list      => 5.036000,
 );
@@ -142,8 +141,6 @@ change, but significant bugs makes them unsafe to use before 5.22.
 
 =item * C<postderef> - stable as of perl 5.20, available via stable 0.031
 
-=item * C<extra_paired_delimiters> - stable as of perl 5.36, available via stable 0.032
-
 =item * C<const_attr> - stable as of perl 5.22, available via stable 0.032
 
 =item * C<for_list> - stable as of perl 5.36, available via stable 0.032

However, since experimental is a dual-life, CPAN-upstream module, that change should have been made first on CPAN and then synched into blead. Note also that this commit meant that within cpan/experimental/, the two .pm files now had different version numbers. (Alternatively, $stable::VERSION should have been changed in blead to 0.032_001.)

  1. In the meantime, on December 23 a new version of the experimental distribution was uploaded to CPAN. This distribution now listed both $experimental::VERSION and $stable::VERSION as being at 0.033. So when I attempted to synch the CPAN version into blead, I had two versions of stable.pm with the same $stable::VERSION but with different contents.

I'm not sure what the best way to resolve this conflict is. Perhaps an additional CPAN release that boosts all the $VERSIONs to 0.034, followed by synching into blead?

@khwilliamson, @book, @Leont

@jkeenan jkeenan added Needs Triage Infrastructure Things needed to maintain Perl development labels Jan 5, 2025
@Leont
Copy link
Contributor

Leont commented Jan 5, 2025

I'm not sure what the best way to resolve this conflict is. Perhaps an additional CPAN release that boosts all the $VERSIONs to 0.034, followed by synching into blead?

Yeah I guess I should do that.

And probably, we should move it to upstream=blead, because updates usually come from blead anyway.

@thibaultduponchelle
Copy link
Contributor

thibaultduponchelle commented Jan 5, 2025

Hi @jkeenan

Just noticed that @Leont answered, and I +1 this.

Let me still post about some context hereafter, if you don't mind 😄

I did notice this and proposed the change upstream via PR21 with help of @ericherman and @book. It was quickly accepted/merged and then later released to CPAN with experimental 0.033 by @Leont

It was supposed to make it ready to sync with sync-with-cpan.

But no luck, the change in blead was incomplete, VERSION not updated to 0.033 in the documentation of stable.pm, see here, and it leads to diff.

This is not something that is meaningful to propagate to experimental (and it is generated by dzil anyway). Trying, the other way, to update blead (before a sync) with this change does not satisfy Porting/cmpVERSION.pl neither since it seems to reset to tag (in this case v5.41.7) before doing the comparison.

So I don't know how to get out of this imbroglio manually 😁 As you suggested @jkeenan and @Leont , probably a new experimental/stable 0.034 then sync would be the best option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure Things needed to maintain Perl development Needs Triage
Projects
None yet
Development

No branches or pull requests

3 participants