[Zope-dev] Re: new zope.org, sphinx, and documentation management

Martin Aspeli optilude at gmx.net
Wed Apr 23 15:01:58 EDT 2008


Hi Paul,

> I guess I have officially volunteered to write content for the new
> zope.org site in the zope 3 section.  Part of that involves describing
> what zope 3 is in a concise manner.  I realize there are probably a
> lot of different opinions about what zope 3 is, so I would like to
> solicit the community to provide me with some ideas of what zope 3 is
> to you.  It doesn't have to be anything fancy or publishable, just a
> bulleted list of "what zope 3 means to me" would be fine.  I will
> aggregate these ideas and try to present it in an easy to read form.
> I don't want to start any arguments about what zope 3, so let's wait
> until I have something written before we start arguing :).

I've tried to sum up my understanding of how Zope 3 fits in with the 
Zope universe here:

http://zode01.lovelysystems.com/projects

Beyond that, I think Zope 3 is becoming more and more a collection of 
libraries and less of an application server.

> Besides giving the 10000 foot view of zope 3, there is also a section
> for zope 3 documentation on the new site, which should probably
> include detailed developer documentation along with tutorials, howtos,
> references, etc.  Fortunately, a little known fact is that there is
> already a fair amount of up-to-date documentation about many zope3
> packages in the form of doctests (some better written for end-user
> consumption than others). 

I think this is true, but doctests are only useful if you know where to 
look and you have the required background.

I would argue that we need more "prose-style" introduction/background 
documentation. We probably also need a human-edited overview of the most 
important Zope 3 packages. We can then point to doctests for more 
detailed stuff.

> Few people know about this because the
> documentation is not aggregated anywhere (except for some bits on
> apidoc.zope.org).  You have to know to look on svn.zope.org or pypi
> pages to find the rest of it.  Rather than writing a bunch of new
> documentation on the new zope.org site from scratch, I would like to
> harness the existing documentation, and just publish it in a nice way.

Yep!

Please note that we can enable the reST parser in Plone so that we can 
paste reST into a document and have it render somewhat-nicely. That 
still presumes some manual work though.

>  To this end I have taken a look at sphinx, the new documentation
> publishing tool used by python.org.  In short, it looks really good,
> and I think we could use it for zope documentation.  Here is my
> thinking:

Cool!

> Keeping *lots* of documentation maintained in any CMS or wiki style
> website is hard, because the people writing the code want to maintain
> everything (including documentation) in one place: subversion.  It is
> too much to ask every developer to update a website every time they
> make a change to the codebase, because the website lives in firefox,
> while the code lives in vim or emacs.  But if the documentation lives
> with the code, updating the documentation can become part of the
> normal flow of writing software (just like writing tests is part of
> the normal flow).  So ideally, all package specific documentation
> *including tutorials and other end user docs* should live along side
> the code in subversion.  Now the trick is just publishing this
> documentation.

I agree with this assessment.

> ***** THE POINT OF THIS EMAIL IS BELOW *****
> 
> I would like to develop a buildout recipe that generates aggregated
> documentation for a package (like z3c.form) using sphynx and publishes
> it to the new zope.org website.  I want updating of zope documentation
> on zope.org to be as easy as uploading a package to pypi:

Nice. :)

I wonder if perhaps it would be easier to start with, to create a static 
HTML site out of this documentation. If zope.org (as per 
http://zode01.lovelysystems.com) is the "shop window" to Zope, then we 
can focus on telling a compelling story there. We can have links to, 
say, doc.zope.org (much like python.org does with doc.python.org), which 
can be static HTML that's generated by this stuff.

> When you are ready to make a release of a package, you would then do:
>  $ cd z3c.form/tags/2.0/
>  $ python setup.py register sdist upload
>  $ ./bin/buildout
>  $ ./bin/update-documentation
> 
> You would then be able to go to
> http://www.zope.org/projects/zope3/documentation/z3c.form and see
> everything from developer docs, to tutorials, to how-tos, etc.

We could also write some code that pushes this into Plone over XML-RPC 
or HTTP requests (or even zope.testbrowser...).

Or: we could write some kind of Plone content type, parameterised with 
an svn url, that pulled straight from svn and rendered doctests inline 
(this means we wouldn't need a buildout recipe or sphinx, though we 
would need some in-Plone caching and it'd be a bit of work to set up all 
the packages).

> What do people think of this idea and who wants to help me implement
> it this weekend?

I would start with the simple HTML approach, personally. It may be all 
we need.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book



More information about the Zope-Dev mailing list