<div dir="ltr">I currently use PLTADDONDIR to make each repo&#39;s packages install to a different place, within the repo tree, so that they&#39;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">&lt;<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>&gt;</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>
 * &#39;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>
 * &#39;user --- specific to a user and version, where packages files are<br>
    written to a user-specific location<br>
<br>
 * &#39;shared --- specific to a user, but not to a version of Racket<br>
<br>
I think we should change to two:<br>
<br>
 * &#39;installation --- like now<br>
<br>
 * &#39;user --- specific to a user and &quot;installation&quot;, but where<br>
    installations are identified by a configurable name (as opposed to,<br>
    say, the installation&#39;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>
&quot;snapshot&quot; --- 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 &quot;checkout&quot;<br>
--- which means that you keep your package installations when you `git<br>
pull&#39; 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&#39;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 &#39;user installation scope the right<br>
default for pretty much everyone, instead of trying to make the default<br>
&#39;user under some circumstances and &#39;installation in others. I think it<br>
also covers the goal of &#39;shared better than &#39;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>