Hi Rotty et al,

On Thu, Aug 13, 2009 at 8:32 PM, Andreas Rottmann<[email protected]> wrote:
> I'd also very much welcome additional perspectives, especially from
> people who have some experience with packaging systems from CL, Perl,
> Python, Haskell, etc.

At work we use Maven. It handles artifact dependency management and
builds, too. You can use it for  managing just about any kind of
artifacts and their dependencies. Out of the box it works pretty
simply, for each artifact about which you care you specify a group-id,
artifact-id, and version. So take the portable R6RS SRFIs they might
be:
Group id: scheme-libraries-team
Artifact id: srfi
Version: 1.0.0.0

Maven works by storing artifacts within a local "repository" (repo)
which is really just a directory. Artifacts are stored under folders
for group id, artifact id, and version. If there are dots in the group
names they indicate new directories. Here is the example:

/repo/scheme-libraries-team/srfi/1.0.0.0

When we build our Java projects, we just specify what repo Maven
should use and it downloads what it needs if it can't find it locally.

So far this doesn't sound like anything you haven't already discussed,
the thing is that it already exists. People mostly use it for Java,
but some folks use it for .NET and really you can use it for anything.

It fits pretty nicely into the Scheme distribution specific notion of
specify a directory from which to load modules, especially the R6RS
notion. If you wanted to stick with Maven for this approach, it would
be really simple: when you want to use your Scheme system, you would
just specify that repo directory as the place to search for files and
you could rely on the R6RS module system from there.

If that sounds interesting and you would value me setting up an
example of this with some Scheme libraries, I will do so.

Let me know.

Reply via email to