Personal tools
You are here: Home Development Teams Documentation Team Missing documentation
Document Actions

Missing documentation

by Martin Aspeli last modified February 12, 2006 - 17:43

This page describes some of the things we'd like to see documented. Helping us fill some of these gaps is a great way to get involved, learn and grow in the community.

As great as Plone's documentation is, there are a number of areas where documentation could be improved. This page is a call for help. We want you to share your knowledge and experience with the rest of the Plone universe.

Q: Do I have to be a Plone expert to help out?
A:
Not at all! You probably need to have a bit of relevant experience, but this is as much a chance to learn and grow. The community will help you - just mentioning that you are asking for help to produce documentation normally makes people more excited to offer their assistance. If you need help with specifics, don't be afraid to ask.

Q: How do I write documentation?
A:
Documentation should be added to the documentation area. Most of the bounties here lend themselves to tutorials or reference manuals (as opposed to quick how-tos), but that may not always be the case. Use your judgement, and ask if in doubt.

Q: Is there a deadline?
A:
There are no formal deadlines or anything of that sort. That said, we're hoping to get people to commit to completing what they start. It's ok if you get stuck and need help, but please try to ensure that you get it done eventually, so that we don't end up with stale documentation.

Q: Great! So how do I sign up?
A:
Start by sending an email to the documentation list to register your interest. It's probably a good idea to include a bit of background - why do you want to help, what relevant experience do you have? Then we'll add your name against one of the bounties below, and try to help and shepherd you into getting the documentation finished

The bounties

The list below shows the bounties we have identified to date, and some information on getting started.

Server Setup Guide
This should be a tutorial or possibly a reference manual. It should cover how to set up Zope and Plone behind Apache 1.3 and 2.0, behind IIS and behind Squid. In fact, this information exists already, in various how-tos and tutorials, but needs to be pulled together into a single, defining document. At the moment is some degree of confusion about which document to point people to.


Skills required:
You should know how to set up a "production-worthy" server, and you will need to be able to assimilate and re-work some of the material that's already in the various tutorials and how-tos out there. 

Plone Skinning Guide
This should be a reference manual covering how to set up a skin product, based on DIYPloneStyle and the custom skin how-to.


David and Ben have already done most of the work here, but the documentation should be a little more task-focused. One section should focus on how to set up a DIYPloneStyle-based skin, and another should cover a bit on the theory of skin layers and the resource registries (both of these are found in David's tutorial). Then, the manual should describe the basics of "real-world" skinning, such as a guide to finding what to customise using the Mozilla DOM inspector, guidelines (or pointers to guidelines) making proper XHTML and CSS etc, examples of Plone's HTML/CSS conventions around forms etc. and some guidelines on using ZPT macros to split up your templates and mamee them more easily re-usable.

Skills required: You should have made a few skins in the real world, understand filesystem-based development of skins, and be in control of ZPT, XHTML and CSS.

A usable Archetypes manual
Archetypes has a lot of interspersed documentation, including the MySite tutorial and RichDocument tutorial. There are also some documents in the Archetypes documentation are . Archetypes also ships with some documentation in text files, and the various books cover it pretty well.


However, it is still too difficult for new users to find out what this framework is all about. We need to pull the various pieces of Archetypes documentation together. Note that the MySite and RichDocument tutorials should stay where they are, as should documentation about ArchGenXML and third-party Archetypes extensions. An Archetypes manual should focus on explaining the basics and making them accessible. It should cover some background on what Archetypes is, how to lay out an Archetypes product's files, include comprehensive field, widget and storage reference, explain how to make custom views and actions, and a contain section on common patterns with Archetypes, such as modifying the BaseSchema, making an Archetypes type addable by anonymous, having different add-permissions for different types in the same product etc.

Skills required: You should be a competent Archetypes-in-Plone developer, and you should be able to pull together the various pieces of existing documentation in a comprehensible and well-focused manner.

Using LDAP and Active Directory for authentication and member data
This should probably be pased on PAS/PlonePAS, since this is the new preferred authentication architecture, available for Plone 2.0 and 2.1 and shipping with 2.5. This tutorial should cover how to set up authentication against an LDAP server, and preferably also some background on how to get that LDAP server configured outside Plone.


Skills required: Some real-world experience deploying with authentication on LDAP with PAS.

Using SQL databases in Plone
As great as the ZODB may be, many people have a need to talk to SQL databases in Plone. We should be making that a little easier with a tutorial to cover some of the basic patterns and approaches.

There are ZSQL methods in Zope, and there are plain-python libraries like SQLObject and SQLAlchemy. There are Zope SQL database adapters, and there are simpler python connection APIs. There are compatability layers like Archetypes' SQLStorage and SQLWindowStorage. We may not want to cover all that in detail, but at least give people the skills they need to understand how to use these tools.


Fundamentally, there are three patterns that will need to be covered. One is the ZSQL approach, where you write code to talk to an SQL database and a page template to view it, independent of the content hierarchy. This doesn't necessarily have to be done with ZSQL methods, though - for example a tool could do the querying using e.g. SQLAlchemy, and this tool could be called by a page template. Second, one can use SQL as a simple storage layer, with Archetypes' SQLStorage. Note that SQLStorage does not appear to be well-maintained and is not very flexible. Martin F. Krafft's SQLWindowStorage aims to be a better object-relational mapping tool at the Archetypes storage level. Finally, content objects could be used as proxies to the database, for example by having fields that correspond to keys in the database. When displayed, the view template in such a content object may call a method on that object that in turn issues an SQL query, returning the result as simple objects or data structures for the view template to display.

Skills required: You must have some experience using SQL with Zope, and preferably also some insight into the other SQL frameworks that exist in the Python world, e.g. SQLAlchemy or SQLObject.

Plone 3 documentation

Posted by Robert Gravina at July 10, 2008 - 23:27
Martin, thanks for starting this initiative! What I think Plone really needs even more than good documentation, is *consistent* documentation - and by that I mean, Plone 3 centric documentation. As a relative newcomer to Plone I don't want to waste time on old Plone 2 development techniques when there are cleaner, more elegant, Zope 3 ways of tackling the problem. In fact, the Zope Component Architecture is what brought me back to Plone when I was considering using Django or rolling my own CMS on top of another web framework!

I think you covered this very well in your book - it would be great of the Plone docs provided information/tutorials of that quality and focussed on Plone 3.

Perhaps a wiki would be useful for this? Is there a wiki on plone.org? I think we could definately make use of one, if not for this, for docs in general.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by