Inspired by Schwern's cleanup of MakeMaker, I've been doing some more cleaning up of my own CPAN bugbears.
Firstly, I've moved Process::Backgroundable (which lets you spawn an object out into it's own background process) out of the main Process distribution, as it doesn't work on Win32 (I think I made a bad assumption that IPC::Run3-based backgrounding would work everywhere).
This should remove the Process dependency as an obstacle for several other modules that weren't working on Win32, but didn't themselves use the object-backgroundable module.
Secondly, I've improved the CPAN::Inject module so that it can load (I think... still a bit more testing to go) the CPAN configuration information it needs both for the current CPAN configuration loading, and for the older method as well.
This should reduce the CPAN dependency for CPAN::Inject back to a much older pre-2000 version. This means that for most Perl distributions, installing CPAN::Inject (most likely as a dependency of things like pip) won't need to upgrade the CPAN.pm module, which often broke (because of CPAN::FirstTime-related stuff) in the process.
The immediate goal with all these smaller fixes is to try and get the entire dependency chain of pip to be as painless and agreeable as possible. pip is a damn handy little program, but it's currently too painful to install.
As for WHY I'm focusing on the dependency tree of pip in particular, it is because most of the same techniques it uses will also be used in some of the PITA internals, and with a full timeslice available to work on PITA over the weekend, some exciting progress has been made, getting past one of the three remaining blocking issues.
So I'm now preparing the stuff I need for the next phase.
But more on PITA in my next journal entry.