develooper Front page | perl.perl5.porters | Postings from September 2012

Taking CPANPLUS out of core

Thread Next
Sawyer X
September 29, 2012 04:25
Taking CPANPLUS out of core
Message ID:
(I've explicitly configured this mail to be available in both HTML and 
Plaintext, let me know if it isn't)

This is a response to the perltodo item of moving CPANPLUS from core to 
CPAN. It has been mentioned on Rik's perltodo Git repo:

I'm including my current findings in order to encourage a discussion 
which will hopefully lead to allowing me to provide patches for the move.

To find out what can be moved out of core along with CPANPLUS, I ran a 
recursive dependency analysis using MetaCPAN via MetaCPAN::API (I might 
add this tool to core if people find it useful) to find what modules it 
uses in core, and then a reverse dependency analysis to find who uses 
those modules. That's a mouthful.

Basically I looked at which modules CPANPLUS uses (such as File::Fetch) 
and then searched for other modules (in core) that use File::Fetch as 
well. Using that information I can provide an analysis of what can be 
safely moved away from core to CPAN entirely.

Firstly, modules used only by CPANPLUS or CPANPLUS::Dist::Build:
* File::Fetch
* Term::UI
* Module::Pluggable
* Object::Accessor

Secondly, modules used by those modules:
* Log::Message::Simple (used by Term::UI)
* Log::Message (used by Term::UI, Log::Message::Simple, CPANPLUS)
* Module::Loaded (used by Module::Pluggable, CPANPLUS)

Thirdly, those that required more research:
* Locale::Maketext::Simple (used by Params::Check, Archive::Extract)
* Params::Check (used by Archive::Extract)
* Archive::Extract (used by CPAN - but not hard dep, only as an extra 
feature: 'gitify')
* Module::Load::Conditional (mentioned in Parse::CPAN::Meta: Changes 
file indicates "removed M::L::C dependency")
* IPC::Cmd (mentioned in Module::Build: Changes file indicates "Fix test 
failure if IPC::Cmd not installed")

This means that nothing should really be affected if all of these 
modules would be removed. The only actual change would be that CPAN 
won't already have Archive::Extract, which it doesn't expect to have 
anyway, since it evals require on it. It's also only for the _gitify() 
feature, and not any core functionality.

The entire list of modules:
* File::Fetch
* Term::UI
* Module::Pluggable
* Object::Accessor
* Log::Message
* Log::Message::Simple
* Module::Loaded
* Locale::Maketext::Simple
* Archive::Extract
* Params::Check
* Module::Load::Conditional
* IPC::Cmd
* CPANPLUS::Dist::Build

Overall 14 modules.

If I had missed anything in my analysis, please let me know.


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About