On Sat, May 31, 2014 at 3:28 AM, Kambiz Darabi darabi@m-creations.com wrote:
Trying to set up a build environment for the minimakefile branch, I also had to hunt the dependencies.
Same dependencies.
It was already difficult for me using the bump script, but most of the makefile required only ASDF and a standard Linux or Mac + MacPorts|Homebrew install. I'm just worried about circular dependencies if we need to get a bunch of CL libraries to make this turn over.
Would you consider using git subtree?
I'm no maintainer anymore, but I would recommend strongly against it in the main asdf git repo. We really really REALLY REALLY *R*E*A*L*L*Y* don't want people who checkout asdf to "magically" get incompatible versions of libraries they don't want being pulled in that they can't easily ignore in their configurations.
On the other hand, that might be a great idea for another repo, say asdf-test, that could be hosted alongside asdf, and would use e.g. git submodule or subtree to pull asdf and all its test-time dependencies (they are required neither for building nor for running, only for test and release).
The dependencies can live in a vendor subdir but are part of the repo, which means that they don't have to be pulled in with a separate checkout step (as is the case with git submodule).
It is even possible to 'splice out' changes to the dependencies (e.g. bugfixes) and push them to their respective git repos.
The downside is that dependencies which are not maintained in git repos would need a git mirror.
I performed the corresponding commands for
- inferior-shell
- cl-ppcre
- lisp-invocation
There are many more transitive dependencies. Just you try
CL-USER> (asdf:make :asdf-tools) (asdf:registered-systems)
You get:
("asdf/prelude" "asdf/driver" "asdf/defsystem" "asdf" "asdf-tools" "inferior-shell" "inferior-shell/test" "alexandria" "optima" "closer-mop" "fare-utils" "fare-quasiquote-extras" "fare-quasiquote-optima" "fare-quasiquote" "fare-quasiquote-readtable" "named-readtables" "named-readtables-test" "fare-mop" "cl-ppcre" "cl-ppcre-test" "lisp-invocation")
That's code from 11 different repos, including asdf.
which you can find in the lib/ dir in
https://github.com/darabi/asdf/commits/minimakefile
I use git subtree quite often and find it is a good way of keeping dependencies in one repo, if it is necessary.
We conspicuously do NOT want that in the asdf repo — but a *new* repo that uses git submodule (or subtree?) is most welcome.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org An apple every eight hours will keep three doctors away.