[racket-dev] Planet 2 Beta Release

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Nov 30 21:09:59 EST 2012

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'.

If we decide that version-specific is the right default to keep, and if
some would still like a more convenient way to manage all-version
packages, we could add an environment variable that makes `--shared'
the default.


Setup after installation
------------------------

Previously, `raco pkg install' would run the equivalent of `raco setup'
with no arguments after installing packages. Now, `raco pkg install'
runs the equivalent of `raco setup <collection> ...', where the
<collection>s are all the ones represented installed packages, plus
"scribblings/main/user" and/or "scribblings/main".

To control the set of <collection>s added to `raco setup' for a
package, define `setup-collects' in the package's "info.rkt". Use 'all
to get the old behavior (i.e., global setup) back.


Posted on the dev mailing list.