[racket] input requested on tools for Racket library developers

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Tue Jan 3 00:10:53 EST 2012

If you develop Racket libraries, or would like to, this is a request for 

I want to make it easier for myself and others to develop reusable 
Racket libraries that wind up in PLaneT in a timely manner.

The initial problem was to make it easier to do documentation, by 
embedded it in the source files and not having to repeat info (e.g., 
info already captured in contracts or in Typed Racket info).  This, 
called McFly, has been close to complete, and is waiting for a few more 
features and for polish before people start using it and I can't change 
things easily anymore.

The next problem is how to *easily* and *reliably* manage PLaneT 
development links for lots of these packages, including sets of packages 
updated together, which solution I decided to add to McFly, since McFly 
already put PLaneT version information into "info.rkt".  This is mostly 
complete. There is now a "raco mcfly dev-links" (or "racket mcfly dl") 
command, to update PLaneT development links based on "info.rkt" files in 
zero or more specified directory trees (or current directory), 
information the PLaneT server has about current versions, and existing 
development links.  Here's an example run:

$ raco mcfly dl
Searching directory "/home/user/racket/"...
Keeping unknown development links (not overridden):
   neil/soundex:1:=4  /fake/path/one
Keeping specified development links:
   neil/mcfly:1:=0  /home/user/racket/mcfly
   neil/mcfly-tools:1:=0  /home/user/racket/mcfly-tools
Not adding specified development links (on PLaneT server):
   neil/html-parsing:1:=2  /home/user/racket/html-parsing
REMOVING specified development links (on PLaneT server):
   neil/soundex:1:=3  /home/user/racket/soundex
REMOVING unknown development links (to be overridden):
   neil/postnet:1:=2  /fake/path/two
ADDING specified development links:
   neil/postnet:1:=2  /home/user/racket/postnet

There will be misc. other "raco mcfly" commands, such as for building a 
package (with the additional stuff McFly does), building and viewing 
documentation, and releasing the package to the PLaneT (including being 
safe about expected version number and what files are included).

So, before I release McFly, and some things get set in stone, I was 
wondering whether anyone had any input on things they'd like to see in 
it.  (The scope of McFly is no longer well-defined -- something like 
'useful additional tools for Racket library developers' -- so difficult 
to say what does and does not belong in McFly.)


Posted on the users mailing list.