[racket] raco pkg new (was: Learning Scribble)
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 ----