Skip Menu |

This queue is for tickets about the CPANPLUS CPAN distribution.

Report information
The Basics
Id: 41758
Status: resolved
Priority: 0/
Queue: CPANPLUS

People
Owner: Nobody in particular
Requestors: APOCAL [...] cpan.org
Cc:
AdminCc:

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



Subject: Incompatible behavior regarding Bundle::* modules from CPAN.pm
Hello, I am the author of the Bundle::POE::All module. It is pretty unique because it uses CPANPLUS::Backend to update it's All.pm list of dependencies during Makefile.PL execution. This is pretty magical, but it worked for me in the past. Some users reported to me that it failed under CPANPLUS and I set out to investigate. What happens when you install this module is: Installing Bundle::POE::All (1.03) [ERROR] Bundle 'Bundle::POE::All' does not specify any modules to install I wondered why it happened, because it works perfectly under CPAN.pm! Upon investigating this, BinGOs pointed me into the right direction. It seems that CPANPLUS.pm doesn't even execute the Makefile.PL and goes directly to the All.pm to parse the deps. This is an incompatible change from CPAN.pm to CPANPLUS.pm! I am wondering if this is a deliberate decision or a bug? Hopefully you can track this down and give me some guidance on how I can make it compatible with CPANPLUS, thanks! -- ~Apocalypse
On Tue Dec 16 10:31:41 2008, APOCAL wrote: Show quoted text
> Hello, > > I am the author of the Bundle::POE::All module. It is pretty unique > because it uses CPANPLUS::Backend to update it's All.pm list of > dependencies during Makefile.PL execution. This is pretty magical, but > it worked for me in the past. > > Some users reported to me that it failed under CPANPLUS and I set out > to investigate. What happens when you install this module is: > > Installing Bundle::POE::All (1.03) > [ERROR] Bundle 'Bundle::POE::All' does not specify any modules to install > > I wondered why it happened, because it works perfectly under CPAN.pm! > Upon investigating this, BinGOs pointed me into the right direction. It > seems that CPANPLUS.pm doesn't even execute the Makefile.PL and goes > directly to the All.pm to parse the deps. > > This is an incompatible change from CPAN.pm to CPANPLUS.pm! I am > wondering if this is a deliberate decision or a bug? Hopefully you can > track this down and give me some guidance on how I can make it > compatible with CPANPLUS, thanks!
I can not get this to work with CPAN.pm either, running the latest version from CPAN: <<<<<<<<<<<<<< [kane@rimmer ~]$ perlc -MCPAN -eshell cpan shell -- CPAN exploration and modules installation (v1.9301) ReadLine support enabled cpan[1]> test Bundle::POE::All CPAN: Storable loaded ok (v2.18) Going to read /Users/kane/.cpan/Metadata Database was generated on Wed, 17 Dec 2008 07:26:57 GMT The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. Show quoted text
>>>>>>>>>>>>>>>>>>
CPANPLUS does run the Makefile.PL etc, but only *after* the bundle has been inspected for prerequisites, which is too late in your case. And it seems neither CPAN.pm nor CPANPLUS has a graceful way of injecting running of Makefile.PL, then inspect the bundle, and then return. Perhaps, what you are looking for is the 'Task::*' modules, which are not special cased like bundles and allow you to run arbitrary code. Task::Weaken is probably a good example: http://search.cpan.org/src/ADAMK/Task-Weaken-1.02/Makefile.PL Let me know if I missed anything,
Subject: RE: [rt.cpan.org #41758] Incompatible behavior regarding Bundle::* modules from CPAN.pm
Date: Thu, 18 Dec 2008 02:50:11 -0500 (EST)
To: bug-CPANPLUS [...] rt.cpan.org
From: perl [...] 0ne.us
Hello, I feel so stupid. I tested it on an older version of CPAN.pm and it worked, ha! Something must have changed in it's internals since I last released the module... Thanks for your kind words and patience working through this obvious issue. You are correct, I was reading up on the Task::* namespace and it is relatively straightforward. In retrospect, it makes the Bundle::* "special-casing" a hack layered upon a hack! Please consider this ticket closed and look forward to a new Task::POE::All module appearing on CPAN soon :) Show quoted text
-----Original Message----- From: "Jos Boumans via RT" <bug-CPANPLUS@rt.cpan.org> Sent: Wednesday, December 17, 2008 11:14am To: APOCAL@cpan.org Subject: [rt.cpan.org #41758] Incompatible behavior regarding Bundle::* modules from CPAN.pm <URL: https://rt.cpan.org/Ticket/Display.html?id=41758 > On Tue Dec 16 10:31:41 2008, APOCAL wrote:
> Hello, > > I am the author of the Bundle::POE::All module. It is pretty unique > because it uses CPANPLUS::Backend to update it's All.pm list of > dependencies during Makefile.PL execution. This is pretty magical, but > it worked for me in the past. > > Some users reported to me that it failed under CPANPLUS and I set out > to investigate. What happens when you install this module is: > > Installing Bundle::POE::All (1.03) > [ERROR] Bundle 'Bundle::POE::All' does not specify any modules to install > > I wondered why it happened, because it works perfectly under CPAN.pm! > Upon investigating this, BinGOs pointed me into the right direction. It > seems that CPANPLUS.pm doesn't even execute the Makefile.PL and goes > directly to the All.pm to parse the deps. > > This is an incompatible change from CPAN.pm to CPANPLUS.pm! I am > wondering if this is a deliberate decision or a bug? Hopefully you can > track this down and give me some guidance on how I can make it > compatible with CPANPLUS, thanks!
I can not get this to work with CPAN.pm either, running the latest version from CPAN: <<<<<<<<<<<<<< [kane@rimmer ~]$ perlc -MCPAN -eshell cpan shell -- CPAN exploration and modules installation (v1.9301) ReadLine support enabled cpan[1]> test Bundle::POE::All CPAN: Storable loaded ok (v2.18) Going to read /Users/kane/.cpan/Metadata Database was generated on Wed, 17 Dec 2008 07:26:57 GMT The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience. The bundle file "/Users/kane/.cpan/Bundle/POE/All.pm" may be a broken bundlefile. It seems not to contain any bundle definition. Please check the file and if it is bogus, please delete it. Sorry for the inconvenience.
>>>>>>>>>>>>>>>>>>
CPANPLUS does run the Makefile.PL etc, but only *after* the bundle has been inspected for prerequisites, which is too late in your case. And it seems neither CPAN.pm nor CPANPLUS has a graceful way of injecting running of Makefile.PL, then inspect the bundle, and then return. Perhaps, what you are looking for is the 'Task::*' modules, which are not special cased like bundles and allow you to run arbitrary code. Task::Weaken is probably a good example: http://search.cpan.org/src/ADAMK/Task-Weaken-1.02/Makefile.PL Let me know if I missed anything,
On Dec 18, 2008, at 8:50 AM, Apocalypse via RT wrote: Show quoted text
> I feel so stupid. I tested it on an older version of CPAN.pm and > it worked, ha! Something must have changed in it's internals since > I last released the module...
Don't feel stupid; Bundles have been overloaded and I don't believe there's an exact spec of how they work beyond to cargo cult what's already there, which is probably based on the code in CPAN.pm in how to deal with them :) Show quoted text
> Thanks for your kind words and patience working through this > obvious issue. You are correct, I was reading up on the Task::* > namespace and it is relatively straightforward. In retrospect, it > makes the Bundle::* "special-casing" a hack layered upon a hack!
Indeed; Bundles *have* been overloaded, and their use was always limited. It's the reason the Task::* modules started appearing to begin with. Show quoted text
> Please consider this ticket closed and look forward to a new > Task::POE::All module appearing on CPAN soon :)
I'm glad I could help. Good luck!