chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] Packaging eggs


From: Felix
Subject: Re: [Chicken-users] Packaging eggs
Date: Tue, 31 Aug 2010 05:26:18 -0400 (EDT)

From: Jim Pryor <address@hidden>
Subject: Re: [Chicken-users] Packaging eggs
Date: Mon, 30 Aug 2010 17:53:15 -0400

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

Yes.

> 
> 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 obsolete. Henrietta transmits the whole tag/trunk subdirectory.

> Is the current version stored anywhere inside the meta or setup files?

The version is either the tag directory or inside the setup file.
This has changed a bit over time, unfortunately. There are some eggs
that have no tags subdir and of those you only can try to get it
from the .setup script. On install, newer versions of chicken-install
will set a parameter called "extension-name-and-version" which can
be used inside the setup script, so there is no real need to hardcode
the version number in there anymore, but for backwards compatibility,
changes like this settle only very slowly. Henrietta now supports listing
the available versions (tagdirs), but this new version is not installed
on the egg servers, yet. You can of couse do an svn ls on the "tags"
subdirectory.

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

No, but you might also try

  (install-extension ... '(... (version VERSION) ...))

Sorry. No easy answer 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?

No. This could be put into the .meta file, but we would have to specify a single
universal format usable over all supported platforms.

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

The .meta file must have the same name as the extension, otherwise it is
a bug.

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

required-extension-version is not needed (I'll deprecate it), since this
can be specified in the .meta file in the "depends" property. Any use of
it is likely to be a bug.

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

If the .setup file needs extensions, than these must be declared in the
.meta file as dependencies (that does not apply to core libraries, of course),
otherwise it is a bug.


cheers,
felix



reply via email to

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