Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Alias (5735)

Alias
  (email not shown publicly)
http://ali.as/

Journal of Alias (5735)

Tuesday September 22, 2009
09:13 PM

The long-awaited return of the JSAN

[ #39665 ]

During the original JSAN development, I wrote a new shiny client and shell but never got to do the final production release due to the untimely demise of both Class::DBI (which it used) and the SQLite index (which it needed).

The code has sat on the shelf for a very long time awaiting the zombie apocalypse, when JSAN would come back from the dead.

In the time since then, I've continued refining and rewriting some of the fundamental pieces of the client for use in CPAN and CCAN that JSAN was acting as an experimental use case for.

The biggest and most important of these is ORLite (and ORLite::Mirror). A (lowercase) tiny extensible ORM built specifically for SQLite, with the ability to pull that database from a remote URL is what we really wanted in JSAN but didn't have the time to write.

It is far lighter, more flexible, and easier to install (both manually and for packagers) than something like Class::DBI or DBIx::Class, and by publishing the index itself as a SQLite file, you remove entirely the need for a parsing phase in the repository client. Just download, connect, inflate, and in under a second you are up and running.

You can see a proof of concept of this in ORDB::JSAN, which is a pure ORDB database fetching module for the JSAN index.

As for the main JSAN::Client implementation I'm happy to report that after a hectic back and forth night of hacking with Nickolay Platonov (who is one of the main forces behind the JSAN rebirth) we've managed to rip Class::DBI out of JSAN::Client and port it to ORLite, file transports, module installation.

Dependency resolution is extremely slow (because of the different ways that Class::DBI and ORLite do connection management and caching) but the entire test suite now passes in full.

One more day of hackery pokery should be all we need now to prepare the new JSAN::Client 2.0 for release and to update JSAN::Shell to use the new client properly.

Once that is done, we should have a new shiny JSAN command line client capable of installing packages finally completed.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.