On Thu, Nov 8, 2012 at 1:01 PM, Sam Tobin-Hochstadt <sa...@ccs.neu.edu> wrote: > I have one larger design issue, which I want to write up in a separate mail.
The larger issue is that we should allow packages to have their own versions of other packages/collections/etc, specified in their metadata file. This would be less ambitious than what Planet1 does, where a single running Racket program can have two copies of the same planet package, but would let the programmer handle situations where conflicts exist. Here's an example: package A depends on package B. I want to use package A in my program P, but I need it to use a fixed version of package B. However, I don't want to make a global change to the state of my planet cache. So in my `package.rktd` file for P, I specify that B should be obtained from my fork of B on GitHub. This change is self-contained, and doesn't require changes to any of the rest of the system. This is how the node.js package manager NPM works. It implies that most node.js programs have a full copy of their dependencies in their installation directory -- they in general avoid global installation. I'm not sure we should go that far, but I think making it possible is very useful. I know people who've had exactly the situation in my example, which they worked around using this capability of NPM. I'm not sure this can be done purely by Planet2, it may require more capabilities from Racket, probably in changing how the links data is specified. -- sam th sa...@ccs.neu.edu _________________________ Racket Developers list: http://lists.racket-lang.org/dev