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