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.
