[racket] raco pkg new (was: Learning Scribble)

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sat Dec 14 10:50:17 EST 2013

Greg Hendershott wrote at 12/14/2013 10:09 AM:
> - info.rkt with a few incantations
>    

"info.rkt" is the one thing for which ``stubs'' appear appropriate.  
This is why McFly generates/updates "info.rkt".  (At bottom of this 
message is an example stubbed "info.rkt" that I made by going into my 
"roomba" source directory, deleting the existing "info.rkt", and doing 
"raco mcfly init".  McFly can guess the package name and what files to 
include in its "mcfly-files" manifest, but there are a few important 
non-guessable variables that stubbing makes easier for the package author.)

> - optionally a .scrbl --

The ".scrbl" files *could* be the other thing that needs stubs, since 
there are some boilerplate-ish bits.  Instead, McFly eliminates ".scrbl" 
as a source file altogether, by doing the boilerplate-ish bits 
automatically, so the programmer only supplies the non-boilerplate 
Scribble bits, embedded in their code.

>   plus makefile or .sh to example of the magic
> flags to give `scribble` to generate the .html(s)
>    

This is done automatically by McFly.  I don't use makefiles or scripts 
for my packages anymore.

I'm mentioning McFly not because it's clever software (it's not; it's 
actually simple and dumb software), but because McFly comprises a bunch 
of small tweaks that smoothed over some of the obvious rough spots in 
releasing and maintaining lots of Racket packages.  My actual research 
interest here is in reuse ecology; the rough spots were just barriers to 
models of reuse that I wanted to see work and was advocating in my 
vaporware book.

Neil V.

---- BEGIN ----
#lang setup/infotab


;; TODO: Add the PLaneT owner and package name, and double-check the 
version:
(define mcfly-planet       '!!!/roomba:1:0)

;; TODO: Add the name of the package (may be capitalized and have spaces):
(define name               "!!!")

;; TODO: Add the subtitle string, or define "mcfly-title" instead:
(define mcfly-subtitle     "!!!")

(define blurb              (list name ": " mcfly-subtitle))

;; TODO: Add the Web home page URL for this package:
(define homepage           "http://!!!")

;; TODO: Add the author(s):
(define mcfly-author       "!!!")

(define repositories       '("4.x"))

(define categories         '(misc))

;; TODO: See 
http://doc.racket-lang.org/search/index.html?q=can-be-loaded-with
(define can-be-loaded-with 'all)

(define scribblings        '(("doc.scrbl" () (library))))

;; TODO: Double-check this:
(define primary-file       "main.rkt")

;; TODO: Set this to the file that has starting "doc" forms:
(define mcfly-start        "main.rkt")

;; TODO: Double-check that this includes all files for the PLaneT package:
(define mcfly-files        '(defaults "roomba-doc-utils.rkt" 
"roomba.rkt" "temporary-alist.rkt" "test-roomba.rkt"))

;; TODO: Add short name for license (e.g., "LGPLv3"). See 
http://www.gnu.org/licenses/
(define mcfly-license      "!!!")

;; TODO: Add copyright, license, disclaimers, and other legal information.
(define mcfly-legal        "Copyright !!!")
---- END ----


Posted on the users mailing list.