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

From: Greg Hendershott (greghendershott at gmail.com)
Date: Sat Dec 14 10:09:46 EST 2013

>>> I'd also be perfectly happy with `raco new <projectname>` w/ a boilerplate
>>> project w/ a module, tests, and doco stubbed out.
>> `raco pkg new` (or `raco pkg init`).
>> A `raco pkg git-new` and a `raco pkg github-new` that do all the boring
>> stuff for you may also be quite convenient, if such things are possible.
> I didn't respond to this thread originally because I believe that
> Racket is generally "anti-stubbing". The concept of a "racket project"
> basically doesn't exist, because everything is supposed to be "inside"
> the language. ...

Yeah I was starting to type a similar post when I saw yours arrive.

I think it's kind of a "language smell" when people need to use tools
to create projects. I like that Racket doesn't need this. I worry
adding it would give the wrong idea.

On the other hand I empathize with confusion re how to configure
Scribble-based documentation. Also the new package manager isn't hard,
but it's easier to work from examples. Also there are conventions like
a main.rkt that merely re-provides, and so on, that aren't obvious
when you begin with Racket.

One half-formed idea: It would be neat if there were a couple repos on
GitHub that are stubs for projects.  Although people _could_ `git
clone` them (and there's your new-project tool), that's not really the
main point.  Instead the point is to show just how little "plumbing"
is required:

- main.rkt
- info.rkt with a few incantations
- optionally a .scrbl -- plus makefile or .sh to example of the magic
flags to give `scribble` to generate the .html(s)
- optionally a .travis.yml if you're into that
(and the usual non-Racket-specific things like .gitignore, README, etc.)

I think such repos almost already exist, in the case of some very
simple packages by very experienced Racket devs. But maybe people
don't know where to find them. So what I'm suggesting (I think) is
that the official `plt` account on GitHub add one or two of these stub
repos, and the docs link to that?

Posted on the users mailing list.