CPAN: RFC on Schema (working-name: Swalow)

Sean Reifschneider jafo at tummy.com
Tue Feb 27 05:44:37 EST 2001


So we were joking around relating to the name "Python Spihon" (and how
searching on the web turns up hits for an aquarium water changer), and
suggested that we should use "gpw" (a random password generation tool)
to generate a unique name for the CPAN-like project.  It uses english
letter combinations to generate random strings that sound like english
words.

So, Rob Riggs did just that and came up with "swalow":
>Your suggestion set me out to playing with gpw, having it generate
>6-byte names, and it spat out "swalow".
>
>Swallow -- close enough to siphon (in one of its meanings), and with
>a memorable Monty Python reference:
>
>"What is the airspeed velocity of an unladen swallow?"
>"What do you mean? An African or European swallow?"
>
>Of course this means we can have two versions of Swallow ;-)
>
>And it continues to feed on that snake image... what else does one
>envision a python doing with its meal?
>
>And I really like the command-line implications
># swallow PIL

I actually like the name "swalow" (with a single "l"), and searching for
"python swalow" on Google turns up like 4 pages...  So, that's the name
I'm using for my part of the work -- the server that hands out information
about packages.

I started using the schema I posted last night, and through that ran into
some changes that need to be made.  I'm not happy with the dependencies
table, but that'll come along shortly.  At the moment, you can review
the schema at:

	ftp://ftp.tummy.com/pub/tummy/swalow/swalow-1.00/schema

I'd appreciate any feedback you might have.  Also in there is a small
sample data-set named "sample".  You might get a better idea of how the
schema is to be used from that.

I've built a CGI and client program which use this schema to hand the
information out over the net.  Here's a sample session:

guin:swalow$ ./swalow search ITEMNAME=pyntar
ITEMTYPE=package ITEMNAME=pyntar PKGVERS=1.10 PKGFMT=tar
   PKGARCH=* PLATNAME=* PLATVERS=*
ITEMTYPE=package ITEMNAME=pyntar PKGVERS=1.14 PKGFMT=tar
   PKGARCH=* PLATNAME=* PLATVERS=*
guin:swalow$ ./swalow locate ITEMNAME=pyntar PKGVERS=1.14
URL=ftp://ftp.tummy.com//pub/tummy/pyntar/pyntar-1.14.tar.gz
URL=ftp://dev.tummy.com/pub/mirrors/ftp.tummy.com/pub/tummy/pyntar/pyntar-1.14.tar.gz

I decided to use HTTP as the transport mechanism because most firewalls
let it through.  Making a "native" TCP server to handle the requests will
be trivial because of the netstring encoding, and will come much later.
For now, the HTTP/CGI should work fine.

Any suggestions for making the actual management interface?  I figure it'll
have to be CGI (though an e-mail for text-form setup might be interesting
too).  I'm not up on dealing with cookies and all though.  I'll probably be
asking for help as far as setting up the user accounts and editing of
records...  The database will allow multiple-maintainers for a package
though.

Well, that's where it sits tonight.

Comments on it would be appreciated.  Patches would be appreciated more.
;-)

Sean
-- 
 If we could sell our experiences for what they cost us, we'd all be
 millionaires.  -- Abigail Van Buren
Sean Reifschneider, Inimitably Superfluous <jafo at tummy.com>
tummy.com - Linux Consulting since 1995. Qmail, KRUD, Firewalls, Python




More information about the Python-list mailing list