[Grok-dev] initial thoughts on grokproject

Tim Terlegård tim at se.linux.org
Sun Feb 25 15:08:30 EST 2007

I just tried out grok (or rather grokproject) now. When I used
grokproject I asked myself a few questions. I think a nice goal would be
to make people ask themselves as few questions as possible. When
everything just makes sense, then you've succeeded. Now when I'm a grok
newbie I have the possibility to say what isn't obvious to me. 4 things
puzzling me:

1) "If I run grokproject myproj, in what directory will the project be
created?". mkzopeinstance asks about the directory, so I'm often not in
the same directory as I want the instance in when I run mkzopeinstance.
Perhaps "grokproject --help" should be a bit more helpful.

It'd be really nice if I just needed grokproject and nothing else to get
started, no other documentation about grokproject or grok. A student
might go to school and find grokproject in the PATH and get curious. He
or she has no documentation, but knows that --help sometimes gives a few
clues. Today the student wouldn't get much help from "grokproject

So "grokproject --help" could say something like this:
"grokproject creates a home for a grok/zope/web project in the current
directory. It will download and use Zope 3.3.1, create a zope instance
and database in the project folder. Add your code to the src sub
folder and start the project with bin/runzope."

2) "grokproject asks for a module, a demo module, what is that about?".
I thought it wasn't that important so I just pressed enter, but it did
really want something. If it's just for giving an example, maybe it can
just be called demo.py and don't necessarily ask about it? To me it's a
non-obvious question that gets in my way to get started.

3) "I'm asked for a password, but will it be encrypted or not?"
mkzopeinstance asks if you want to use SHA, plain text or some other
hashing stuff. Does grok use plain as default? Can you change that? To
me it would make sense if grokproject asked for this, but maybe it's
because I'm used to mkzopeinstance asking me that.

4) "Now I have my project. But what are these directories about? Do I
need to run bootstrap/bootstrap.py? Do I need to know about eggs to get
going? Do I need to create them? How do I start the server and see the
result of my work?"

I think it would be great with a README.txt in the project root folder
that explains what is inside each toplevel folder. It should explain
what bin/test and bin/buildout does. It should explain what bootstrap
folder is about, how you use buildout.cfg and setup.py, what is inside
parts. "parts" is a weird name btw :)

I think bin/ should include runzope, zopectl and zpasswd.

This is my wishlist. We'd like to lower the bar (to zope) with grok,
right? Let's make it dead simple :)


More information about the Grok-dev mailing list