[racket] info.rkt `deps` (was: Package fails to compile during 'make in-place' but not 'raco pkg install')

From: Sam Tobin-Hochstadt (samth at cs.indiana.edu)
Date: Fri Dec 20 13:58:00 EST 2013

On Fri, Dec 20, 2013 at 1:48 PM, Greg Hendershott
<greghendershott at gmail.com> wrote:
>
> By contrast if I need e.g. Racket's `net/url`, I have _not_ been
> listing that in `deps`.  Should I be doing so?

Yes. `net/url` is in the "base" package, which is even more special,
but should still be declared as a dependency. [1]

Similarly, if you depend on scribble, that's in `scribble-lib` and
associated other packages.

> If so, why? (Right now I can't seem to find this discussed in the
> package docs.) Is the answer to do with supporting people using
> Minimal Racket?

The basic reason to do this is that otherwise, your package won't work
with an install that doesn't already have those packages, the same as
if you didn't list a dependence on "markdown".  When might this
situation occur?

- Someone might start with a current Minimal Racket install.
- Someone might want to build a slim version of Racket themselves from source.
- The core of Racket might change, and not ship `net/url` by default
any more, moving it to an external library (with the name "base" of
course).

In general, the plan is to move to a model where most things (ie,
everything currently in the pkgs directory) is managed the way that
"third-party" libraries on pkg.racket-lang.org are managed now.
Declaring dependencies on relevant packages that are shipped as part
of 6.0 is an important part of that.

Sam

[1] Technically, it's in `'core`, which is the only package whose name
isn't written as a string literal, but that's a detail too far.

Posted on the users mailing list.