(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: https://github.com/rjbs/perltodo/blob/master/CPANPLUS-Deprecation-Tree.mkdn 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 * CPANPLUS::Dist::Build Overall 14 modules. If I had missed anything in my analysis, please let me know. Sawyer.Thread Next