<div dir="ltr"><div><div><div>On second thought, you are right, and all your points are valid. The incremental part is the most important aspect of package development.<br></div><div>And if by "anti-stubbing" you mean "if you need a stub, then something in the design is wrong", then this is a very nice principle, although probably quite difficult to follow closely.<br>


</div><div></div></div></div><div><div><div><div><div><div class="gmail_extra"><br></div><div class="gmail_extra">As Greg pointed out, currently the most difficult part (though possibly the most important too) of the package development is writing docs, because there are many things that aren't obvious (module declaration, writing examples and interactions, all the defproc variants, grammars, not having identifiers underlined with red, single vs multi-part doc, etc.). I really like Greg's def-jambda [1] effort, and I even believe it may be the key component to  see the appearance of many more and much better packages. Currently writing docs just requires too much effort, and there is way too much redundancy (which is not Rackety!) in this process, easily leading to discrepancy. My old-and-ugly "lazy-doc" package [2] was also meant to greatly simplify writing documentation, but it was badly designed (not even Lispy). Neil's McFly [3] also has this purpose but unfortunately arrived right before the new package system (and so I haven't taken a good look into it).<br>

<br></div><div class="gmail_extra">So indeed it's not a stub that is needed, it's a much simpler way to write the docs. But it has been true for years now, even though Scribble is fantastic. I'd like to believe that if several Racket core devs took a deep look, discuss and develop def-djambda or something of the like, we could have an beautiful and simple official code documentation system that avoids redundancy within a month óbut I'm a dreamer, I know.<br>

</div><div class="gmail_extra"><br></div><div class="gmail_extra">Laurent<br>[1] <a href="https://github.com/greghendershott/def-jambda">https://github.com/greghendershott/def-jambda</a><br></div><div class="gmail_extra">

[2] (Don't use it) <a href="http://planet.racket-lang.org/display.ss?package=lazy-doc.plt&owner=orseau">http://planet.racket-lang.org/display.ss?package=lazy-doc.plt&owner=orseau</a><br></div><div class="gmail_extra">

[3] <a href="http://www.neilvandyke.org/mcfly/">http://www.neilvandyke.org/mcfly/</a><br></div><div class="gmail_extra"><br><div class="gmail_quote">
On Sat, Dec 14, 2013 at 3:45 PM, Jay McCarthy <span dir="ltr"><<a href="mailto:jay.mccarthy@gmail.com" target="_blank">jay.mccarthy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


I didn't respond to this thread originally because I believe that<br>
Racket is generally "anti-stubbing". The concept of a "racket project"<br>
basically doesn't exist, because everything is supposed to be "inside"<br>
the language. For instance, if you want to create a module with tests,<br>
then you just create a file named m.rkt and put in<br>
<br>
#lang racket/base<br>
(module+ test (require rackunit))<br>
<br>
and you're done. There's nothing more that you would want to do.<br>
<br>
You can write documentation inline too, but admittedly you have to<br>
create a info.rkt and at least one scrbl file.<br>
<br>
As far as the "boring stuff" of creating a package... the package<br>
system is designed so that that is just "mkdir pkg-name". You don't<br>
need to do anything else. Even if you want to distribute the package,<br>
you just need to make sure the directory is online somewhere. As you<br>
get more sophisticated as a developer you could do "git init", but<br>
it's supposed to be incremental and a low barrier.<br>
<br>
Jay<br>
<div><div><br>
<br>
<br>
On Sat, Dec 14, 2013 at 1:36 AM, Laurent <<a href="mailto:laurent.orseau@gmail.com" target="_blank">laurent.orseau@gmail.com</a>> wrote:<br>
> On Fri, Dec 13, 2013 at 11:14 PM, Ryan Davis <<a href="mailto:zenspider@gmail.com" target="_blank">zenspider@gmail.com</a>> wrote:<br>
>><br>
>> I'd also be perfectly happy with `raco new <projectname>` w/ a boilerplate<br>
>> project w/ a module, tests, and doco stubbed out.<br>
>><br>
>> Is there anything in the package ecosystem like this?<br>
><br>
><br>
> Not that I know of, but it's a good idea. It would probably look more like<br>
> `raco pkg new` (or `raco pkg init`).<br>
> A `raco pkg git-new` and a `raco pkg github-new` that do all the boring<br>
> stuff for you may also be quite convenient, if such things are possible.<br>
><br>
> Laurent<br>
><br>
><br>
</div></div>> ____________________<br>
> † Racket Users list:<br>
> † <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
><br>
<span><font color="#888888"><br>
<br>
<br>
--<br>
Jay McCarthy <<a href="mailto:jay@cs.byu.edu" target="_blank">jay@cs.byu.edu</a>><br>
Assistant Professor / Brigham Young University<br>
<a href="http://faculty.cs.byu.edu/~jay" target="_blank">http://faculty.cs.byu.edu/~jay</a><br>
<br>
"The glory of God is Intelligence" - D&C 93<br>
</font></span></blockquote></div><br></div></div></div></div></div></div></div>