Welcome to the ninth Zope 3 newsletter. Information about Zope 3 and newsletter contributions and suggestions can be found at the bottom of this newsletter.
GLOSSARY FOR THE UNINITIATED
Encounter a term in this newsletter you don't know? Try this glossary: http://dev.zope.org/Zope3/NewsletterGlossary
NEWS SNIPPETS:
- Jim Fulton released the third Zope X3 milestone release on June 30. A few "geddon"s (big changes to Zope 3) are still planned before the beta release.
- The Australian OzZope Zope 3 sprint, organized by Jan Smith, was a big success. See http://www.ozzope.org/OzSprintWiki for a fun summary, and http://www.ozzope.org/news/LinMagAu for a link to a nice explanatory interview about Zope, Zope 3, and sprints with Jan.
FRED DRAKE:
Vocabulary Fields and Widgets
A vocabulary is an object which represents a collection of distinct values (where distinct means that any two of them compare as not equal using !=, and no two compare equal using ==). These are most interesting when the set of values is highly dynamic. A vocabulary may be provided by (for example) some object in the ZODB, a query to an external database, the contents of a file maintained by another process, or static data provided by a separately maintained piece of code.
Vocabulary fields provide a field type for situations in which the set of options is defined by a vocabulary. This is most useful when the set of possible values may be highly dynamic or otherwise be decoupled from the schema definition itself. A vocabulary field in a schema contains either a vocabulary object (``IBaseVocabulary``) or the name of a vocabulary. If a name is used, the specific vocabulary to use will be supplied by a registry when the schema field is bound to an instance of a content object. Entries in the registry may be made through an API or using ZCML.
More information is available in the Zope 3 source tree in the file doc/schema/vocabularies.txt. This is an especially important document to read before creating or configuring widgets to use with vocabulary fields.
ZConfig for Zope 3 (Submitted June 30)
Zope 3 will be using a configuration file defined by a ZConfig schema for site administration. This change is intended to make the operation of a site easier for system administrators to work with. Additional configuration parameters will be added to the configuration file during the continuing development of Zope 3.
PHILIPP VON WEITERSHAUSEN (submitted July 1):
XML:
After Martijn Faassen and I had implemented a first bit of XML in Zope3 in Louvain-la-Neuve, I thought it was time again to advance things in that department. After discussing things with Martijn on IRC, I moved all zopeproducts concerning XML to one zopeproducts.xml package. The ParsedXML DOM implementation, which Martijn had ported to Zope3 looked like the most advanced part of the whole xml package. It was not yet ready to be used as components though, so I wrote interfaces for the DOM, following the W3C specs tightly, and added ZCML configuration directives for the classes.
I also attempted to implement something like ParsedXML in the form of DOM Document, which was simply a persistent document node. While providing views for it and simple adapters to and fro IXMLText (XML contained in a string) was - thanks to the CA - quite easy, trying to implement editing capabilities turned out to be a trip with much ContextWrapper pain, so I finally had to give up realizing that ContextWrappers were not the right choice for a DOM implementation. Martijn had used them because ParsedXML's DOM implementation used acquisition and ContextWrappers are its successors.
It is therefore questionable whether we will hang onto this DOM implementation. It is also questionable whether we will have to implement our own DOM at all. In order to store a DOM persistently, we will most certainly have to, but it would be wise to research use cases first before starting to re-implement the whole DOM API.
XHTML compliance ("xhtml-gheddon"?):
When browsing through some page templates I realized that a lot of the times, XHTML compliancy was neglected. Thus I validated all page templates against XHTML 1.0 Transitional with the xmllint command line tool from http://xmlsoft.org/ and corrected all obvious errors that it reported. Unfortunately, the tool was very disturbed by the TAL and METAL namespaces and the flood of error messages was enormous, so I might have missed a few errors. I am yet looking for a solution to this problem, so that we can maintain XHTML compliance by validating page templates once in a while.
For all emacs users: I used emacs's grep-find mode entering the following command::
find . -name "*pt" -exec xmllint --noout --dtdvalid \ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd {} \;
The grep-find mode can parse this output. Instead of specifying the URL, one can also download the DTD to speed up the process.
Zope products:
I kept a few zopeproducts up to date with the changes in Zope3 head (package refactorings, new-style implements, configuration -> registration). Most time I spent on the NewsSite product which was grossly out of date. I got it to work so that I could add a news site and news entries, but it's not pretty.
This question goes out to both the initial developers (participants of the DZUG sprint) and other people interested in this product: is anyone willing to take further care of this product? If it is only kept up to date with changes in Zope3, it will remain in its miserable state for eternity. Then we might just as well remove it.
CHRISTIAN THEUNE: Zope Security evaluation gains speed
The Zope Security Evaluation aims at getting Zope 3 security mechanisms certified with a "common criteria certificate" which is an approved certificate within 15 countries. (http://www.commoncriteria.org)
During the 9. and 10. july there was a workshop at the TUV-IT (http://www.tuev-it.de) which included Steve Alexander, Aroldo Souza-Leite, 3 people from the TUV and me.
We have begun explaining them the Zope 3 security model which produced a fair explicit layout of components that are involved and started writing the documentation of the security target which means determining the components that belong to security, possible threats to them as well as selecting functional and environmental security requirements and objectives to defend against those threats.
We gained a pretty good picture of what the certificate will give us (better understanding of the whole complexity of the security machinery) and that even the entry level certification means a lot of explanation work and in-front work
I now continue writing the security target and am aiming to finish it before end of june (which is some kind of unlikely but possible).
Everybody who likes to see the progress of the certification work can find a page including the schedule in the "Subprojects" area of the Zope3 Wiki named "SecurityEvaluation". Also there are first checkins within the Zope 3 file tree to find under Zope3/doc/security. The documentation format is reStructuredText and is additionally checked in as a rendered .html file.
Stay Zope3ed.
STEPHAN RICHTER
Documentation
I have made significant progress with the Zope 3 Development Cookbook. The "Content Components" section with 12 recipes (roughly 124 pages) is now done, some in outline form and others fully written out. The source code can be found at ZopeProducts/demo/messageboard. The recipes build a message board product from scratch and start out relatively easy and become then more involved. There are a couple other recipes dispersed throughout the book outline, which you can find at http://dev.zope.org/Zope3/DevelCookbook.
For everyone who does not know yet, the Zope 3 Python Developers Cookbook will be published by Sams (same people as New Riders who did the Zope Book). I will be the primary author, and Jim and Steve signed up as technical editors. The book will be published under an open content license (http:// creativecommons.org/licenses/by-nd-nc/1.0/).
Please send me or post comments about the recipes. The more early feedback I have, the better the book will be!
Online Help
While writing the recipes, I also fixed the Online Help to look for views correctly. One of the above mentioned recipes (http://dev.zope.org/Zope3/ OnlineHelpForZopeApps) has detailed information on how to use it. The Zope 3 Development team would like to encourage people to start developing help screens.
SQLExpr
Alan Runyan had the great idea to support a TALES expression that would evaluate SQL statements. Short story: He told me, 2 hours later it was done. The syntax looks as follows::
<html tal:define="rdb string:PsycopgDA; dsn string:dbi://test"> <body> <ul tal:define="name string:Stephan; table string:contact"> <li tal:repeat=" contact sql: SELECT * FROM ${table} WHERE name = '${name}'"> <b tal:content="contact/name" /> </li> </ul> </body> </html>
The add-on is mainly aimed at scripters, who do not want to worry about design so much. You can find the product at http://cvs.zope.org/ZopeProducts/ sqlexpr. BTW, I think it would be easy to port this code to Zope 2, since very little is Zope 3 specific.
Making zope3.org our Home
It has been in our heads since last year, but we did not have the time to do it (other than registering the domain). But now it is time! We have a ZWiki product and soon I will also have a Bug Collector ready for Zope 3, so that we can start moving the content over to www.zope3.org. I hope to be able to move there in the next weeks.
CONTRIBUTING
Please send Zope 3 news, and newsletter suggestions and requests, to [EMAIL PROTECTED], with "Zope 3 newsletter" somewhere in the subject line. As you can see above, casual and quick news items are acceptable and even desirable.
MORE INFORMATION ON ZOPE 3
The central place to find Zope 3 information is currently http://dev.zope.org/Zope3
The Zope 3 mailing list is archived and managed at http://lists.zope.org/mailman/listinfo/zope3-dev
The Zope 3 development IRC channel, #zope3-dev at irc.openprojects.net is (strictly) for discussion of Zope 3 development issues.
Newsletters are (supposed to be, blame the editor) archived at http://dev.zope.org/Zope3/Zope3Newsletter
_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )