I think that's a better idea Matthew. On Fri, Aug 16, 2013 at 2:27 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > At Thu, 15 Aug 2013 11:07:07 -0400, Asumu Takikawa wrote: >> On 2013-08-15 08:19:06 -0600, Jay McCarthy wrote: >> > As for what we could do going forward, I think either of these >> > approaches could be 'automated'. >> >> Yes, that'd be great. >> >> > For instance, we could add a command like >> > >> > $ raco pkg replace x11 new-x11-source >> > >> > This would behave like either of those (which would be invisible to the >> > user). >> > >> > Do you have any opinions about how you'd want to do this replacement? >> >> Maybe `raco pkg install` can have an additional flag that lets you >> replace existing packages? Or maybe it should allow conflicts if the >> package has the same name as an already installed package (possibly >> prompting/warning the user)? > > How about allowing a package source as an argument to `raco pkg update`? > > After all, removing an old package implementation and installing a new > one is already the job of `raco pkg update`, not `raco pkg install`. > > Then again, dealing with package sources and recording a new > name->source mapping is already the job of `raco pkg install`, not > `raco pkg update`. > > I lean toward changing `raco pkg update`, because I think it's > reasonable to treat a package source other than a package name as a > "replace" request by default. In contrast, I don't think `raco pkg > install` should ever overwrite an existing package implementation by > default. > > For example, I can imagine > > raco pkg install stuff.zip > ... get a new "stuff.zip" ... > raco pkg update stuff.zip > > and that seems better to me than > > raco pkg install stuff.zip > ... get a new "stuff.zip" ... > raco pkg install --replace stuff.zip > > I have in mind that `raco pkg update` would treat as package name as it > does now, instead of like other package sources. That is, it would > update based on how the package was previously installed. There's a > difference only if the package was installed from a package source > other than a package name, though. > > Naturally, the special treatment of package names would necessitate a > new flag for consistent treatment of package sources. Specifically, if > you wanted to replace an existing package installation with a catalog > reference, then you'd have to use a flag to `raco pkg update'. >
-- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 _________________________ Racket Developers list: http://lists.racket-lang.org/dev