I had started on something like a package manager called Sauron ("one library to rule them all"). My idea was to be able to define dependencies with something like:
(depends-on :name "clojure-json" :version "1.2.3") This would look into a ~/.sauron directory and either add a jar or a directory to the classpath. If clojure-json did not exist in ~/.sauron, the it would attempt to download it from a remote repository. The remote repositories would be either GitHub, or a Maven repo, and there would be a way to write a plugin for Sauron to add a new type of repository. I had thought that I would look into if it were possible to somehow plug this into the 'ns macro so that it could be declared with the namespace. Finally, I had thought that transitive dependencies could be handled by having a .sauron file in the root directory of a project so that Sauron would know how to find the dependencies for clojure-json, etc. http://github.com/pjstadig/sauron/tree/master I had thought through all of this, and started on some code, but it's not finalized. I had heard that dynamically adding to the classpath is not foolproof and somewhat dependent on the class loader. I'm not sure if I'm headed in the right direction, or if this is even possible, but it's worked for my limited testing, and I'm open to suggestions and contributions. Paul On Sun, Mar 22, 2009 at 12:57 PM, Bradbev <brad.beveri...@gmail.com> wrote: > > Is the clojure-contrib portion of Clojure meant to act as a package > system like Cabel, CPAN, etc? I suspect not. Clojure-contrib is more > like the standard library that comes with Clojure. I think that going > forward, Clojure is going to want to have a large and easily > accessible library of packages. I would love to see a strong package > system for Clojure that > 1) Made it very easy to search for packages & download them, along > with all the packages they depend upon > 2) Made the bar for contributing packages as low as possible so people > can contribute easily (Ideally, after you have configured the package > manager, uploading a new package should be as easy as 'packman upload > mypackage') > > I feel that the next big growth phase for Clojure will be in the user > community and the code that we can generate. A good package manager > will help fuel that growth. > > And now I'll cop out & say that I have no idea about how to actually > implement this sort of thing - I'm hoping somebody else will want to > do it for me :) > > Thanks, > Brad > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---