<div dir="ltr">I currently use PLTADDONDIR to make each repo's packages install to a different place, within the repo tree, so that they're both separate, and get cleaned up if and when I remove the repo. Will that still work with these changes?<br>
</div><div class="gmail_extra"><br clear="all"><div>Carl Eastlund</div>
<br><br><div class="gmail_quote">On Thu, Jul 25, 2013 at 1:59 PM, Matthew Flatt <span dir="ltr"><<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
We currently have three packages scopes:<br>
<br>
* 'installation --- specific to an installation of Racket, where<br>
package files are written into the installation (for all users of<br>
the installation)<br>
<br>
* 'user --- specific to a user and version, where packages files are<br>
written to a user-specific location<br>
<br>
* 'shared --- specific to a user, but not to a version of Racket<br>
<br>
I think we should change to two:<br>
<br>
* 'installation --- like now<br>
<br>
* 'user --- specific to a user and "installation", but where<br>
installations are identified by a configurable name (as opposed to,<br>
say, the installation's path)<br>
<br>
That is, every installation has a name. For a release, the name<br>
defaults to the release version. For a snapshot, the name defaults to<br>
"snapshot" --- which means that when you throw away your snapshot and<br>
install a new one, then you keep your package installations.<br>
(Distributors of releases and snapshots can adjust the default,<br>
obviously.) For a repository checkout, the name defaults to "checkout"<br>
--- which means that you keep your package installations when you `git<br>
pull' and the version changes.<br>
<br>
An installation name would be stored in the same configuration file<br>
that is used for package catalogs. A user who wants multiple snapshot<br>
installations, git-repo checkouts with different package sets, or<br>
multiple installations of Racket v6.0 can adjust one installation's<br>
name in its configuration. Similarly, a user who really wants to share<br>
packages between Racket v6.0 and v6.1 can give the installations the<br>
same name.<br>
<br>
I think this change would make the 'user installation scope the right<br>
default for pretty much everyone, instead of trying to make the default<br>
'user under some circumstances and 'installation in others. I think it<br>
also covers the goal of 'shared better than 'shared does.<br>
<br>
_________________________<br>
Racket Developers list:<br>
<a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
<br>
</blockquote></div><br></div>