[racket-dev] Is someone doing the redesign for PLaneT? Explicit PLaneT package installs please
One of the promises of PLaneT is that it makes it easy to use library
modules without explicit installation.
One of the peeves of PLaneT is that it makes it too easy to use
programs with implicit PLaneT package installation.
---
Explanation: when I run a program for the first time, and I see a long
delay with no output, I can't tell if the computer is stuck in a
infinite loop, or if it's installing PLaneT packages. It's usually
the latter.
I often end up Control-Cing it, and getting in a mess: a computer
setup where the PLaneT package is half installed and slow to execute
because the installation didn't complete.
I would greatly prefer it if, at module instantiation time, the system
stops and says up front something like this:
This program foo.rkt depends on PLaneT packages that haven't been
installed yet.
Please do ...1 to install the following pre-requisite packages: ...2
where ...1 should be something short and sweet, like:
raco install-planet-deps foo.rkt
on the command line, and ...2 is the immediate set of PLaneT
dependencies that Racket knows that it needs (thought it may be an
incomplete list since those packages may themselves require others.)
Generalize to DrRacket as well. Doing install-planet-deps on a
program whose PLaneT dependencies are satisfied should be a no-op.
The point is to make the PLaneT package installation process both (1)
visible and (2) user executable. Neither Run or Check Syntax should
allow PLaneT packages to install quietly: I really do want it also to
require an explicit installation of PLaneT packages.
I suppose if a PLaneT package is being dynamically required, that some
kind of invisible installation might be necessary. But, for the most
common case, make PLaneT package installation an explicit but easy
step to accomplish. The invisible installation is harmful from an
interaction perspective: whenever I demo a Racket program on a fresh
machine in front of an audience, I have to almost always apologize
when PLaneT starts its silent, implicit installation.