Bradbev <brad.beveri...@gmail.com> writes:

> 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.

I agree. The more I work with packages that have dependencies the more I
realize that manually managing them will simply not scale.

> 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 :)

As Paul mentioned, adding to the classpath at runtime supposedly is
fraught with peril, though I've never got a clear answer whether this
applies to Clojure code or just Java code. I suspect it may be workable
to have shell scripts that set up the classpath rather than calculating
it from within Clojure code. This may be the trickiest part of the
implementation since most languages with package managers have a load
path mechanism that's much more flexible than the JVM's.

I definitely think being able to read from the Maven repository format
sounds like a good idea, though I haven't had too much interaction with
the tool itself.

It would probably be good to just start brainstorming about what
features would be needed for such a tool:

* Servers need to host jars as well as indices of metadata about jars
  that would indicate versions, descriptions, and dependencies between
  jars.

* The client needs to be able to download jars and their dependent jars
  and store them on disk. Multiple versions of a library should be able
  to be installed at once. (apt-get doesn't support this natively, and a
  lot of unfortunate hacks are needed to work around this.) Packages
  should be able to specify which servers each dependency should come
  from. Jars should be able to be installed on a system-wide level as
  well as in a user's home directory.

* Code needs to be able to state its dependencies, probably as part of
  the ns macro. Flexible version declarations will be necessary. (eg. I
  need exactly version 1.8.0 of a library, I need at least version 2.3.1
  of a library, or I need any version in the 0.9 series starting with
  0.9.1 but allowing in bugfix point-releases.)

Anything else? I'd love to help out with implementation, whether by
hacking Sauron or some other (hopefully less evil) alternative, but I
think it's important that our efforts be unified.

-Phil
http://technomancy.us

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to