[racket-dev] Planet 2 Beta Release

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Sat Dec 1 18:20:43 EST 2012

Yes, what you describe is what we imagine "migrate" will do.

Jay

On Sat, Dec 1, 2012 at 4:10 PM, Eli Barzilay <eli at barzilay.org> wrote:
> Yesterday, Matthew Flatt wrote:
>> I've been working with Jay on a few more changes:
>>
>> Specifying metadata
>> -------------------
>>
>> "METADATA.rktd" is being replaced with "info.rkt", which is written in
>> the `setup/infotab' language as usual.
>>
>> Define `deps' for dependencies, like this:
>>
>>    #lang setup/infotab
>>    (define deps (list _package-source ...))
>>
>> For a short transition period (maybe a week?), `raco pkg' will continue
>> to recognize "METADATA.rktd".
>>
>>
>> Version-specific installation
>> -----------------------------
>>
>> Package installation is now both user-specific and version-specific
>> by default. The options are
>>
>>  * installation-specific
>>
>>  * user-specific and version-specific (the new default)
>>
>>  * user-specific and all-version (the old default)
>>
>> Use the `--shared' or `-s' flag to get the old all-version behavior.
>> Any previously installed user-specific packages that you have are still
>> in `--shared' mode.
>>
>> Not to speak too much on Jay's behalf, but I think he isn't convinced
>> that the new default is right. If `--shared' is the default, then a
>> `raco pkg update' could be enough to get all your installed packages
>> working with a new version. If installation is instead
>> version-specific, then you have to reinstall every package that you use
>> whenever you upgrade.
>>
>> I think that if installation is all-version by default, then users
>> who are going to end up with bad configurations that they have
>> trouble repairing. A better way to deal with upgrades would be
>> something like `raco pkg migrate'.
>
> Just to see if I get the trade-offs right: all-version installs have
> the advantage of not re-installing things, and the disadvantage of
> breaking often (for some value of "often")?
>
> If so, then something that I think is getting popular is keeping a
> (global) list of all explicitly installed packages, and then the
> version-specific installs get much easier to deal with because it's
> easy to crawl over the explicit names and re-install name.  Having
> this only for explicit names meams that I don't need to reinstall old
> stuff that was installed only for some other package.
>
> (But perhaps this is what you talk about with that `migrate' command.
> If so, then this is just a verbose +1.)
>
> --
>           ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                     http://barzilay.org/                   Maze is Life!
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev



--
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

"The glory of God is Intelligence" - D&C 93

Posted on the dev mailing list.