Revisiting PPM March 26, 2011 @OSDC.TW Kenichi Ishigaki (charsbar)
Do you remember what miyagawa-san talked here last year?
cpanminus
A lightweight and faster CPAN client.
Why is it lightweight and faster?
Remote API servers
cpanmetadb
search.cpan.org
It usually doesn't download indices from a CPAN mirror.
Less configuration Less start-up time Less verbose
Better user experience.
miyagawa++
You can make it even faster.
cpanm --notest
CAVEAT --EMPTOR
If you don't run tests, you can't tell if it really works for you.
We can guess.
We have CPAN testers.
They continuously do comprehensive tests.
It might be reasonable to trust them and skip tests.
Go a step further.
You delegated testing to the testers.
Why don't you delegate building to someone else, too?
You can use system package managers like yum or apt.
It's convenient if you are satisfied with official packages.
It might cause lots of troubles if you install private packages without care.
What can we use then?
PPM
Perl Package Manager
PPM is a tool to install pre-processed packages.
Originally written for ActivePerl.
Used largely by the Windows users.
Not only for Windows.
60-70% of the CPAN distributions are ready for PPM.
You could save more time if you use them.
Or, if you can use them.
PPM has gone through several turning points.
PPM 1.0 for Perl 5.004/5 (around 1998) based on Open Software Description (1997)
PPM 2.0 for Perl 5.6 (around 2000) Pumpking from ActiveState Released to the CPAN started SOAP integration
PPM 3.0 for Perl 5.8 (around 2002) Not released to the CPAN Called "Programmer's Package Manager" Still used a SOAP server
Sophos Age ActiveState was acquired by Sophos. (2003) ActivePerl was steadily released. Some of the well known packages were missing from their PPM repository. Frustrated people started to create yet another Perl for Windows (which became Strawberry Perl). (2006)
PPM 4.0 ActiveState became independent again.(2006) New version with GUI for Perl 5.8.8 (2006) Renamed to "Perl Package Manager" again Moved to another namespace (ActivePerl::PPM) Not released to the CPAN either PPD spec has changed SOAP server was deprecated in favor of local SQLite database
So we needed to install ActivePerl or use an older client on the CPAN
PPM2 client cannot parse metadata for PPM4.
We need a new client.
Fortunately, the spec is simple.
So I wrote one.
App::ppmminus github.com/charsbar/ppmminus
Not released to the CPAN yet.
Now we can install 60-70% of the CPAN more quickly.
Then, what to do with the rest?
The most fundamental remedie is fix them.
Or, you can package what you want by yourself.
Creating PPM packages is very easy.
$ perl Makefile.PL $ make $ make test $ make ppm $ tar -czf foobar.tar.gz blib
You can also use a dedicated module.
PPM::Make
$ make_ppm
You might also want to provide a summary file.
$ rep_summary --rep /path/to/the/repository
This was written by Dr. Randy Kobes.
He was a maintainer of Winnipeg repository.
His repository was not so large, but highly respected.
He also created yet another CPAN search site called kobesearch.
Or CPAN::SQLite
Or Pod::Perldocs
He passed away last year.
I'm not sure until when his repository  would be kept.
I took over some of his modules, and started preparing kobesearch mirror.
(not done yet)
Found several things to fix.
top page is not in the distribution db schema needs to be updated (CPAN grows quite fast) mod_perl/CGI woes (better use Plack?)
Have you ever tried WebStart?
kobesearch is somewhat localized.
No Taiwanese nor Japanese so far.
Waiting for your contribution!
Questions?
Thank you

Revisiting ppm