chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Packaging eggs


From: Jim Pryor
Subject: Re: [Chicken-users] Packaging eggs
Date: Mon, 30 Aug 2010 17:53:15 -0400
User-agent: Mutt/1.5.20 (2009-06-14)

On Mon, Aug 30, 2010 at 04:33:44PM -0400, Mario Domenech Goulart wrote:
> Extracting information from the .meta files is not very hard.  Here's an
> example:
> 
> ...
> $ csi -p '(alist-ref (quote depends) (with-input-from-file "awful/awful.meta" 
> read))'
> ((spiffy 4.2) (spiffy-request-vars 0.8) html-tags html-utils (http-session 
> 2.0) json spiffy-cookies)

Thanks Mario. Running over a bunch of meta files I find these keys:

egg
synopsis
author
maintainer
date
needs
depends
test-depends
category
license
platform

Those are all clear enough. The wiki says "needs" and "depends" are
synonyms, correct?

I also find these keys, whose meaning I've just been guessing at:

doc-from-wiki   ; no associated value when present
                ; it means the egg's documentation is available on the
                ; wiki?

documentation   ; so far I only found one egg with this key,
                ; aes has (documentation "aes.html")

eggdoc          ; so far as I can tell eggs have this key, with
                ; a local filename as the value, only if they
                ; don't also have (doc-from-wiki)

files           ; I guess this is obvious
file            ; srfi-63 has (file "srfi-63.scm")
                ; is that key officially recognized, or is it an error?

hidden          ; log5scm has (hidden)
                ; what does that mean?


Is the current version stored anywhere inside the meta or setup files?
I've been using the latest directory in tags/ when the egg's svn
directory has tags/ folder, but many don't. In those cases I have to
scrape the version from somewhere else. It would help to know what the
official method for retrieving the version is.


Edit: currently, when I can't read the version number from a tags/
subdirectory, I instead look for a VERSION file (one or two eggs have
this), and also scrape the .setup file for any of:
    (define version 1.0  ; the version may be in string quotes or not
    (define VERSION 1.0
    (define the_eggs_name-version 1.0
    (define version 1.0
    (define version "v1.0"
    (extension-version 1.0
... are there more? Is there any standard here?

What's the official method for retrieving what non-scheme dependencies
the eggs have? I think I just had to determine this by trial and error
(sometimes reading the egg's documentation) and keep a record of it myself in 
the automation scripts. Is there no officially sanctioned way to mechanically 
retrieve this information?

Also, most eggs seem to follow the convention that if the egg's name is
foo, the .meta file is foo.meta. However, srfi-27-reference's .meta file
is just srfi-27.meta. Are there only loose conventions about this?

I think required-extension-version in the .setup file declares minimum
version requirements for scheme dependencies. Can I rely on this to
match what's in the .meta file, and so just read the .meta file and
ignore the .setup file? I think when I set these automation scripts up
that wasn't sufficient.

What about -require-extension in the .setup file?


-- 
Jim Pryor
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]