chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] Packaging eggs


From: Mario Domenech Goulart
Subject: Re: [Chicken-users] Packaging eggs
Date: Mon, 30 Aug 2010 20:01:00 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.91 (gnu/linux)

Hi Jim

On Mon, 30 Aug 2010 17:53:15 -0400 Jim Pryor <address@hidden> wrote:

> 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?

Yes.


> 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)

Those are deprecated.  Documentation for eggs can be found at
http://wiki.call-cc.org/egg/<eggname>, where <eggname> is the egg you
want.

You can also get the wiki source files from
http://code.call-cc.org/svn/chicken-eggs/wiki/eggref/4/


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

`files' is ok.  `file' is a bug (I've fixed it -- thanks for reporting it).

Actually the .meta file can contain anything, but only the supported
tags will be taken into consideration.


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

It means that the egg is `hidden'. It's not listed at
http://wiki.call-cc.org/chicken-projects/egg-index-4.html

It can be used when the egg is in the early development stages and not
ready to be installed/used.


> 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?

I think the .setup info should be the canonical one, but I don't know an
easy way to obtain the egg version from it.

OTOH, once the egg is installed, you can get its version either by
executing

  $ csi -p '(extension-information "awful")'

or

  $ chicken-status '^awful$'


> 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?

There's no such a thing.


> 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 that's an exception. The real information about the egg name is
the (egg ...) tag from the .meta file.


> 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?

I'm not sure about this one.  I think the .meta requirements should be
enough.

I _think_ `required-extension-version' is back from when .meta's
`depends' (or `needs') didn't support minimum version requirements.


Best wishes.
Mario
-- 
http://parenteses.org/mario



reply via email to

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