Re: XCVB, a replacement for ASDF
"Attila Lendvai" <[email protected]> Tue, 3 Jun 2008 12:40:09 +0200
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
> Also, if you know other people I should be talking to regarding this > topic, or webpages or papers I should have read, please point me to > them. one more thing about .asd symlinking. i still remember the time when i managed to get out of the thought-trap advertised by asdf to use symlinks to configure what's in my *central-registry*. creating/updating symlinks is a pain compared to a 10-liner lisp code that scans a directory and sets up the registry. since then i've forgotten symlinks and never missed them. it would be cool if xcvb had better support for some kind of registry management from the lisp side. for example we have a separate snapshot of the set of libraries for each project we are working on. when i want to fix a bug in a project, i want to load it with the same version of its dependencies that are used on the live system. currently we have this setup: - a "global" workspace. it's a dir on the dev machines with systems that rarely change and we have not patched. - a "head" workspace, in /home/user/workspace which holds the latest of everything, including local modifications. normally when working, i load this lisp vm using this environment. if something from "global" needs patching, it's copied to "head" and changed there. - a merged copy of the "head" + "global" dirs for each project. when i plan to update a live system, i update this directory on my developer machine and test the app. then update the server version of this directory, rebuild and restart the live system. (we do this update using distributed VCS'es, not rsync or similar, although that's also an option, but being able to see the history/version/etc comes very handy comapred to file dates.) that 10-liner lisp scanner scans directories for .asd file in a given order (i.e. "head" first, then "global"; also skips dirs prefixed with '_' for convenience). we create various core files at different workspaces/stages. for the head we have two stage, one level with the rarely changed libs loaded, and one with almost everything except the leaf projects. leaf projects are the domain solutions (that will hopefully please a customer... :) another dream feature: installing/updating from VCS systems. all of our dependencies are installed (by hand) using VCS repos when available. it would be great if xcvb had a repository of VCS repo links. then it could check out repos as a means of installing, and/or scan for remote changes to interactively exec the required VCS commands to update the installed systems. if it's added, then darcs and git support should happen first, the rest is already dying out. tags could be listed as lib versions. hth, -- attila ps: some of the code for this is here: http://common-lisp.net/cgi-bin/darcsweb/darcsweb.cgi?r=cl-dwim-environment;a=headblob;f=/environment.lisp ps: this code is a bit messy, but we are too busy cleaning up the stuff we are buidling using this, so... :) ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/