$ cpan-lookup Foo::Bar => JDOE/Foo-Bar-1.23.tar.gz
$ cpan-get JDOE/Foo-Bar-1.23.tar.gz => /tmp/Foo-Bar-1.23.tar.gz
$ cpan-expand $tmp_tarball => setup dir
$ cpan-configure $tmp_dir => MYMETA.json
$ cpan-prereqs --missing MYMETA.json => @modules/@dists XXX
$ cpan-build $tmp_dir => $tmp_dir
$ cpan-test $tmp_dir => $tmp_dir
$ cpan-stage $tmp_dir => $tmp_dir
(install into $stage/phase/type/blib/... ?!)
$ cpan-install $phase $type
(can't take just from XXX ?)
things might have custom installation XXX
Stage: core vs. site vs. vendor vs. local::lib (all possible at once?)
- hold + dispatch to objects?
- or retrieve objects?
Q: what's the necessary context needed by Distribution object
- feedback callbacks on progress
- depends how much Distributions process dependency resolution process vs. rely on external query XXX
-
request install for Foo::Bar [Queue]
-
resolve Foo::Bar to LOCAL/Foo-Bar-1.23.tar.gz [Index]
-
Check if L/FB exists in Dist Obj Cache [Session]
(if so, get it + jump to 8)
-
get L/FB fron a CPAN mirror to a local cache [Client]
-
uncompress it to a directory [TarZip]
-
create DistObject [Dist]
-
register DistObject in cache [Session]
-
check config-requires [Dist]
if no config-requires, jump to ...