On 11/24/10 Nov 24 -7:21 AM, Zach Beane wrote:
"Robert P. Goldman" rpgoldman@sift.info writes:
By that I meant "you tell the users who check out your repository to include your conf file in their input locations configuration."
My understanding is that this is done using :include ...
So someone would copy the conf to e.g. ~/.config/common-lisp/source-source-registry.conf.d/ and then change *default-pathname-defaults* to the root of the project, and do an (asdf:initialize-source-registry)?
Zach
I was assuming that they would leave the conf where it was and add
(:include "/my/checkout/path/asdf.conf")
into one of his/her normal source registry .conf files.
The whole idea is not to have to do complicated monkeying around (as in your example of messing with *default-pathname-defaults*).
That way, all the user needs to know is the location of the .conf file, and all the provider of the repository has to know is the structure of his repository.
I may not fully follow questions about this mechanism, because I think I am working in a different style from others.
For lack of this :here mechanism, I have been sticking with the old style manipulation of asdf:*central-registry*. When I set up a source repo, I provide people who check it out with a simple, one-sexp way of configuring ASDF to use it. This typically uses an ASD-FINDER library of mine, which does directory tree search for .asd files in portable CL. Then, e.g., when I start up a lisp session typically the first thing I do will be to execute a function like
(hydra) (smite) (circa)
These are all names of projects I'm working on currently, and the effect of the command is to populate asdf:*central-registry* appropriately.
From there I can use ASDF normally, now having it set up with the proper
set of libraries for the project in question.
This is necessary because typically the source repositories for these projects contain different versions of different libraries. In order to get consistency across developers, we use no libraries except those in the source repo (well, with the exception of SBCL contribs sometimes, and we handle that by standardizing on a revision of SBCL to use). The source repositories are often clogged with Java code, in addition to lisp code, meaning that simply using one of Fare's :tree directives can be painful.
Hope that clarifies, r