Skip Menu |

This queue is for tickets about the Module-Install CPAN distribution.

Report information
The Basics
Id: 123867
Status: resolved
Priority: 0/
Queue: Module-Install

People
Owner: ether [...] cpan.org
Requestors: zefram [...] fysh.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: M:I:DSL fix required for 5.27.7
Date: Tue, 12 Dec 2017 19:20:48 +0000
To: bug-Module-Install [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
Module-Install is failing its test suite on current blead, since commit 0301e899536a22752f40481d8a1d141b7a7dda82. Specifically it's Module::Install::DSL that's broken. The convoluted way in which it arranges to execute some generated code while exiting depended on buggy handling of exit(0) from a BEGIN block, which has now been fixed. The change is that exit(0) in a BEGIN block will no longer execute INIT blocks before actually exiting. M:I:DSL puts its generated code in an INIT block. As far as I can see, M:I:DSL has no need to delay execution of its generated code via an INIT block. If the word "INIT" is deleted, turning the INIT block into a bare block that runs immediately, then Module-Install's test suite passes. This breakage is being tracked on the core side as [perl #132577]. -zefram
On 2017-12-12 11:20:58, zefram@fysh.org wrote: Show quoted text
> Module-Install is failing its test suite on current blead, since > commit 0301e899536a22752f40481d8a1d141b7a7dda82. Specifically it's > Module::Install::DSL that's broken. The convoluted way in which > it arranges to execute some generated code while exiting depended on > buggy handling of exit(0) from a BEGIN block, which has now been fixed. > The change is that exit(0) in a BEGIN block will no longer execute INIT > blocks before actually exiting. M:I:DSL puts its generated code in an > INIT block. > > As far as I can see, M:I:DSL has no need to delay execution of its > generated code via an INIT block. If the word "INIT" is deleted, > turning the INIT block into a bare block that runs immediately, then > Module-Install's test suite passes. > > This breakage is being tracked on the core side as [perl #132577]. > > -zefram
That sounds like an easy fix, so unless something surprising appears I should be able to get that fix out quickly for the sake of smokers testing the distribution. Unfortunately, fixing the distribution itself will not fix all the users of Module::Install::DSL, due to MI's nature of packing itself into inc/ in the shipped dist. It seems likely that plugins using the DSL plugin will not be installable on 5.27.7. (are there any BBC reports that confirm this?) Here is a list of those distributions. It would be good to identify which of these are "signficant" to the cpan river so we can determine an upgrade plan. (I have already obtained permission from ADAMK to add myself as comaintainer to any of his distributions for the sake of release management updates, but there are hundreds of these distributions, so I am triaging heavily.) from https://grep.cpan.me/?q=Module%3A%3AInstall%3A%3ADSL+file%3AMakefile.PL: ADAMK/ADAMK-Release-0.02 ADAMK/Acme-Mom-Yours-0.02 ADAMK/Acme-SuperCollider-Programming-0.02 ADAMK/Algorithm-Dependency-1.110 ADAMK/Algorithm-Dependency-MapReduce-0.03 ADAMK/Archive-Builder-1.16 ADAMK/Aspect-1.04 ADAMK/Aspect-Library-Memoize-1.00 ADAMK/Aspect-Library-NYTProf-1.00 ADAMK/Aspect-Library-Profiler-1.00 ADAMK/Aspect-Library-TestClass-1.00 ADAMK/Aspect-Library-Timer-1.10 ADAMK/Aspect-Library-Trace-1.00 ADAMK/Business-AU-ABN-1.09 ADAMK/CGI-Capture-1.14 ADAMK/CPAN-Mini-Extract-1.23 ADAMK/CPAN-Mini-Visit-1.15 ADAMK/CPAN-WWW-Top100-Generator-0.10 ADAMK/CPANDB-0.18 ADAMK/CPANDB-Generator-0.19 ADAMK/CPANTS-Weight-0.15 ADAMK/Chart-Math-Axis-1.06 ADAMK/Class-Adapter-1.08 ADAMK/Class-Autouse-2.01 ADAMK/DBIx-Export-0.01 ADAMK/Data-JavaScript-Anon-1.03 ADAMK/Devel-Dumpvar-1.06 ADAMK/Devel-Eval-1.01 ADAMK/Devel-Leak-Module-0.02 ADAMK/Devel-Leak-Object-1.01 ADAMK/FBP-0.41 ADAMK/FBP-Demo-0.03 ADAMK/FBP-Perl-0.78 ADAMK/File-BLOB-1.08 ADAMK/File-Find-Rule-PPI-1.06 ADAMK/File-Find-Rule-VCS-1.08 ADAMK/File-LocalizeNewlines-1.12 ADAMK/GitHub-Extract-0.02 ADAMK/Graph-XGMML-0.01 ADAMK/HTML-InfoVis-0.03 ADAMK/HTTP-Online-0.02 ADAMK/Imager-Search-1.01 ADAMK/JSAN-Client-0.29 ADAMK/JSAN-Mini-1.04 ADAMK/JSAN-Shell-2.04 ADAMK/LWP-Online-1.08 ADAMK/Module-Changes-ADAMK-0.11 ADAMK/Module-Manifest-1.08 ADAMK/MooseX-Atom-0.02 ADAMK/ORDB-AU-Census2006-0.01 ADAMK/ORDB-CPANMeta-0.10 ADAMK/ORDB-CPANMeta-Generator-0.12 ADAMK/ORDB-CPANRT-0.04 ADAMK/ORDB-CPANRelease-0.01 ADAMK/ORDB-CPANTS-0.05 ADAMK/ORDB-CPANTSWeight-0.03 ADAMK/ORDB-CPANTesters-0.09 ADAMK/ORDB-CPANUploads-1.08 ADAMK/ORDB-JSAN-0.01 ADAMK/ORLite-1.98 ADAMK/ORLite-Migrate-1.10 ADAMK/ORLite-Mirror-1.24 ADAMK/ORLite-PDL-0.02 ADAMK/ORLite-Pod-0.11 ADAMK/ORLite-Profile-0.01 ADAMK/ORLite-Statistics-0.03 ADAMK/Object-Destroyer-2.01 ADAMK/Object-Signature-1.07 ADAMK/OpenGL-List-0.01 ADAMK/OpenGL-RWX-0.02 ADAMK/Oz-0.01 ADAMK/PITA-0.60 ADAMK/PITA-Image-0.60 ADAMK/PITA-Scheme-0.43 ADAMK/PITA-XML-0.52 ADAMK/POE-Declare-0.59 ADAMK/POE-Declare-HTTP-Client-0.05 ADAMK/POE-Declare-HTTP-Online-0.02 ADAMK/POE-Declare-HTTP-Server-0.05 ADAMK/POE-Declare-Log-File-0.01 ADAMK/PPI-PowerToys-0.14 ADAMK/PPI-Tester-0.15 ADAMK/Padre-Plugin-FormBuilder-0.04 ADAMK/Perl-Shell-0.04 ADAMK/Perl-Squish-1.06 ADAMK/Politics-AU-Geo-0.01 ADAMK/Process-0.30 ADAMK/SDL-Tutorial-3DWorld-0.33 ADAMK/SMS-Send-1.06 ADAMK/Test-ClassAPI-1.06 ADAMK/Test-POE-Stopping-1.09 ADAMK/Test-SubCalls-1.09 ADAMK/Win32-Env-Path-0.03 ADAMK/Xtract-0.16 ADAMK/YAML-Tiny-Stream-0.01 ADAMK/asa-1.03 ADAMK/pler-1.06 ADAMK/prefork-1.04 AUDREYT/Convert-EastAsianWidth-1.02 AUDREYT/Devel-Hints-0.21 AUDREYT/YiJing-0.10 AZAWAWI/Locale-Msgfmt-0.15 BOWTIE/App-Midgen-0.34 BOWTIE/Padre-Plugin-Autodia-0.04 BOWTIE/Padre-Plugin-Git-0.12 BOWTIE/Padre-Plugin-Nopaste-0.08 BOWTIE/Padre-Plugin-SpellCheck-1.33 BOWTIE/Padre-Plugin-YAML-0.10 BRAMBLE/Padre-Plugin-Swarm-0.2 CHORNY/Text-FindIndent-0.11 CSJEWELL/Module-Install-PerlTar-1.001 DAGOLDEN/PPI-XS-0.904 JDENNES/Net-CampaignMonitor-v2.2.1 JEFFERY/Geo-MapInfo-MIF-0.02 JEFFERY/Net-MySourceMatrix-0.04 KMX/Portable-1.22 PMAKHOLM/ORLite-Array-0.02 SDOWIDEIT/Module-Install-ORLite2Pod-1.000 STIGTSP/Template-Plugin-File-StaticURL-0.02
Subject: Re: [rt.cpan.org #123867] M:I:DSL fix required for 5.27.7
Date: Tue, 12 Dec 2017 20:08:35 +0000
To: Karen Etheridge via RT <bug-Module-Install [...] rt.cpan.org>
From: Zefram <zefram [...] fysh.org>
Karen Etheridge via RT wrote: Show quoted text
>It seems likely that plugins using the DSL plugin will not be installable >on 5.27.7. (are there any BBC reports that confirm this?)
I haven't had any BBC reports other than that for Module-Install itself. However, I can confirm that this mode of breakage does happen. I've just now tried Module-Manifest, as a lightweight representative user of M:I:DSL. It installs happily on 5.27.6, but on blead, sure enough, it fails to create a Makefile, which CPAN picks up as a fatal error. Show quoted text
>Here is a list of those distributions.
That is quite a few. Bummer. -zefram
Something is wrong about the list. ADAMK/Test-SubCalls-1.09.tar.gz passes just fine with current bleadperl for me. It was the one that would probably have the most impact on this list.
Same for ADAMK/Algorithm-Dependency-1.110.tar.gz and ADAMK/Test-ClassAPI-1.06.tar.gz. Could you re-evaluate the list, Ether?
On 2017-12-12 21:18:49, ANDK wrote: Show quoted text
> Something is wrong about the list. ADAMK/Test-SubCalls-1.09.tar.gz > passes just fine with current bleadperl for me. It was the one that > would probably have the most impact on this list.
The Makefile.PL very much uses Module::Install::DSL, with syntax that plain perl would not parse: https://metacpan.org/source/ADAMK/Test-SubCalls-1.09/Makefile.PL It looks like the version of Module::Install::DSL included here (version 0.85) does not use INIT, therefore there is no bug with blead: https://metacpan.org/source/ADAMK/Test-SubCalls-1.09/inc/Module/Install/DSL.pm Digging into the history, the use of INIT was added in commit b77ed16c which first appeared in Module::Install::DSL 0.93 (which first shipped in Module-Install-1.08). So, I can refine the list of affected modules somewhat, with: https://grep.cpan.me/?q=%5C%24VERSION%5Cs%3D%5Cs%27%281%5C...%7C0%5C.9%5B3-9%5D%29%27+file%3Dinc%2FModule%2FInstall%2FDSL.pm in regex form: \$VERSION\s=\s'(1\...|0\.9[3-9])' file=inc/Module/Install/DSL.pm ADAMK/ADAMK-Release-0.02 ADAMK/Archive-Builder-1.16 ADAMK/Aspect-1.04 ADAMK/Aspect-Library-Memoize-1.00 ADAMK/Aspect-Library-NYTProf-1.00 ADAMK/Aspect-Library-Profiler-1.00 ADAMK/Aspect-Library-TestClass-1.00 ADAMK/Aspect-Library-Timer-1.10 ADAMK/Aspect-Library-Trace-1.00 ADAMK/Business-AU-ABN-1.09 ADAMK/CPAN-Mini-Extract-1.23 ADAMK/CPAN-Mini-Visit-1.15 ADAMK/CPAN-WWW-Top100-Generator-0.10 ADAMK/CPANDB-0.18 ADAMK/Chart-Math-Axis-1.06 ADAMK/Class-Adapter-1.08 ADAMK/Class-Autouse-2.01 ADAMK/Devel-Leak-Module-0.02 ADAMK/Devel-Leak-Object-1.01 ADAMK/FBP-0.41 ADAMK/FBP-Demo-0.03 ADAMK/FBP-Perl-0.78 ADAMK/File-BLOB-1.08 ADAMK/File-Find-Rule-PPI-1.06 ADAMK/File-Find-Rule-VCS-1.08 ADAMK/GitHub-Extract-0.02 ADAMK/HTML-InfoVis-0.03 ADAMK/HTTP-Online-0.02 ADAMK/Imager-Search-1.01 ADAMK/JSAN-Shell-2.04 ADAMK/LWP-Online-1.08 ADAMK/Module-Manifest-1.08 ADAMK/ORDB-CPANMeta-Generator-0.12 ADAMK/ORDB-CPANRT-0.04 ADAMK/ORDB-CPANRelease-0.01 ADAMK/ORDB-CPANTS-0.05 ADAMK/ORDB-CPANUploads-1.08 ADAMK/ORLite-1.98 ADAMK/ORLite-Migrate-1.10 ADAMK/ORLite-Mirror-1.24 ADAMK/ORLite-Pod-0.11 ADAMK/Object-Destroyer-2.01 ADAMK/Object-Signature-1.07 ADAMK/OpenGL-List-0.01 ADAMK/OpenGL-RWX-0.02 ADAMK/Oz-0.01 ADAMK/PITA-0.60 ADAMK/PITA-Image-0.60 ADAMK/PITA-Scheme-0.43 ADAMK/PITA-XML-0.52 ADAMK/POE-Declare-0.59 ADAMK/POE-Declare-HTTP-Client-0.05 ADAMK/POE-Declare-HTTP-Online-0.02 ADAMK/POE-Declare-HTTP-Server-0.05 ADAMK/POE-Declare-Log-File-0.01 ADAMK/Padre-Plugin-FormBuilder-0.04 ADAMK/Perl-Shell-0.04 ADAMK/Process-0.30 ADAMK/SDL-Tutorial-3DWorld-0.33 ADAMK/SMS-Send-1.06 ADAMK/Test-POE-Stopping-1.09 ADAMK/Xtract-0.16 ADAMK/YAML-Tiny-Stream-0.01 ADAMK/asa-1.03 ADAMK/pler-1.06 AUDREYT/Convert-EastAsianWidth-1.02 AUDREYT/Devel-Hints-0.21 AUDREYT/YiJing-0.10 AZAWAWI/Locale-Msgfmt-0.15 BHEISIG/RT-Extension-MandatoryFields-0.6 BHEISIG/RT-Extension-ReferenceIDoitObjects-1.00 BOWTIE/App-Midgen-0.34 BOWTIE/Padre-Plugin-Autodia-0.04 BOWTIE/Padre-Plugin-Git-0.12 BOWTIE/Padre-Plugin-Nopaste-0.08 BOWTIE/Padre-Plugin-SpellCheck-1.33 BOWTIE/Padre-Plugin-YAML-0.10 BRAMBLE/Padre-Plugin-Swarm-0.2 CHORNY/Text-FindIndent-0.11 CSJEWELL/Module-Install-PerlTar-1.001 DAGOLDEN/PPI-XS-0.904 JDENNES/Net-CampaignMonitor-v2.2.1 SDOWIDEIT/Module-Install-ORLite2Pod-1.000
I've released a fixed version of PPI-XS.
Thanks, but now ADAMK/MooseX-Atom-0.02.tar.gz is missing but it fails with bleadperl.
On 2017-12-13 21:26:22, ANDK wrote: Show quoted text
> Thanks, but now ADAMK/MooseX-Atom-0.02.tar.gz is missing but it fails > with bleadperl.
It has no cpan dependencies. Are you using it in a darkpan? I would be inclined to let it pass into the afterlife.
Show quoted text
> It has no cpan dependencies. Are you using it in a darkpan? I would > be inclined to let it pass into the afterlife.
Most probably I'm not using it, but that's beside the point. I did not have the impression the list above is based on dependencies but solely on whether they pass or fail after 0301e899536a22752f40481d8a1d141b7a7dda82.
I have released Module-Install 1.19 which fixes MI::DSL to not use an INIT block. If there are any high-river cpan distributions that use MI::DSL that I can release I shall do those as well, but I suspect that PPI::XS is the only one.