Skip Menu |

This queue is for tickets about the Parse-CPAN-Packages CPAN distribution.

Report information
The Basics
Id: 106510
Status: open
Priority: 0/
Queue: Parse-CPAN-Packages

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

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



Subject: Consider removing file access and code parsing features from Package and Distribution modules
While checking excessive list of packages needed to install OrePAN2 it came to my attention that noticeable amount of those deps were needed because Parse::CPAN::Packages requires them. Main offenders when it comes to number of dependencies seem to be Archive::Peek (pulls Moose etc.) and PPI. Currently on fresh core perl installing Parse::CPAN::Packages will install 80 distributions (at least on 5.10, number may be smaller on recent perls). Without Archive::Peek and PPI dependency that number falls down to 27. I also think those methods do not belong to Parse::CPAN::Packages if this distribution is supposed to be about 02packages.details.txt.gz parsing. I quickly looked through most of CPAN dists using P::C::P and only one of those I checked used any of those methods. Granted, there may be more users of those features outside of CPAN. In case compatibility is a concern maybe Parse::CPAN::Packages should be left intact, but most of it internals should be refactored into separate dist with only one responsibility - parsing and presenting data from 02packages file? I do consider ::Package and ::Distribution to be part of that responsibility, just without all those archive-peeking, file-parsing extras. I hope that at least PPI features may be removed, as they are marked as experimental and even less useful than archive peeking. I realize that this may be noticeable amount of work without big gains. In case you find any of those actions acceptable I may be able to work on that. Thanks for your work!
On 2015-08-18 10:44:23, BJAKUBSKI wrote: Show quoted text
> While checking excessive list of packages needed to install OrePAN2 it > came to my attention that noticeable amount of those deps were needed > because Parse::CPAN::Packages requires them. > > Main offenders when it comes to number of dependencies seem to be > Archive::Peek (pulls Moose etc.) and PPI. Currently on fresh core perl > installing Parse::CPAN::Packages will install 80 distributions (at > least on 5.10, number may be smaller on recent perls). > Without Archive::Peek and PPI dependency that number falls down to 27. > > I also think those methods do not belong to Parse::CPAN::Packages if > this distribution is supposed to be about 02packages.details.txt.gz > parsing. I quickly looked through most of CPAN dists using P::C::P and > only one of those I checked used any of those methods. Granted, there > may be more users of those features outside of CPAN. > > In case compatibility is a concern maybe Parse::CPAN::Packages should > be left intact, but most of it internals should be refactored into > separate dist with only one responsibility - parsing and presenting > data from 02packages file? > > I do consider ::Package and ::Distribution to be part of that > responsibility, just without all those archive-peeking, file-parsing > extras. > > I hope that at least PPI features may be removed, as they are marked > as experimental and even less useful than archive peeking. > > I realize that this may be noticeable amount of work without big > gains. In case you find any of those actions acceptable I may be able > to work on that. > > Thanks for your work!
Parse::CPAN::Packages::Fast is mostly API-compatible, faster, and has minimal dependencies.
On Sat Aug 29 18:43:23 2015, SREZIC wrote: Show quoted text
> > Parse::CPAN::Packages::Fast is mostly API-compatible, faster, and has > minimal dependencies.
Hi Slaven My original problem was with OrePAN2 excessive dependencies (mostly related to Parse::CPAN::Packages dependencies). Please see https://github.com/tokuhirom/OrePAN2/issues/37#issuecomment-125027803 as for why your ::Fast module was not used. If you could help with that it would be great!
On 2015-09-04 05:15:58, BJAKUBSKI wrote: Show quoted text
> On Sat Aug 29 18:43:23 2015, SREZIC wrote: >
> > > > Parse::CPAN::Packages::Fast is mostly API-compatible, faster, and has > > minimal dependencies.
> > > Hi Slaven > > My original problem was with OrePAN2 excessive dependencies (mostly > related to Parse::CPAN::Packages dependencies). Please see > https://github.com/tokuhirom/OrePAN2/issues/37#issuecomment-125027803 > as for why your ::Fast module was not used. > If you could help with that it would be great!
I created a 0.08_50 which can read uncompressed 02package.details files.