[racket] Scope of PLaneT was: (no subject)

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sun Nov 4 01:49:10 EDT 2012

Edward Blake wrote at 11/02/2012 06:23 PM:
> I've assumed until now that PLaneT to be appropriate mainly for
> libraries and development oriented tools, but with the submodules
> feature some Racket applications could also serve a dual purpose as
> libraries quite easily.

Yes.  For the forthcoming RackOut appliance, I've been breaking it up 
into a mix of more standalone modules that each become their own PLaneT 
package (e.g., the recent "vlc" and "sudo" packages), and some more 
application-specific modules, which will be collected together into a 
"rackout" PLaneT package.  Once internal interfaces stabilize, I foresee 
PLaneT packages also being the mechanism for adding third-party plug-in 
modules to the app, like can be done for DrRacket plug-ins.  
Additionally, there are already some not-too-application-specific 
modules, like "rackout-parted" and "rackout-xrandr", which eventually 
will probably move into their own PLaneT packages, but I can do that later.

Ideally, someone can install your app from PLaneT, and be able to run it 
from DrRacket just by hitting the Run button, which is conducive to open 
source development.  I'm doing this with RackOut, although I expect that 
most of the 5 or so people who will ever use RackOut will just boot the 
RackOut Live disk image, which will be distributed separate from 
PLaneT.  Of course, someone getting RackOut from PLaneT will be able to 
run "raco rackout-live-build" to make their own such bootable disk 
image, including whatever changes they made to the app.

> The kanji search app for example is mostly
> intended to be a end user thing and may be distributed with 90 megs of
> data files before compression (it contains a small subset of
> Wiktionary articles and precomputed stuff to match drawings) though
> for PLaneT these files could be omitted,

Yeah, huge data blobs that change less often than program code -- like 
mapping data, speech data, video files, etc. -- are often distributed 
separately from program code.  You can make your Racket package download 
them at install time or run time.

Neil V.

Posted on the users mailing list.