Welcome to the eighth Zope 3 newsletter.  Information about Zope 3
  and newsletter contributions and suggestions can be found at the
  bottom of this newsletter.


  Encounter a term in this newsletter you don't know?  Try this
  glossary:  http://dev.zope.org/Zope3/NewsletterGlossary


 - Jim Fulton plans to lead a sprint in Fredericksburg, VA, in the Zope
   Corporation offices, June 21-23.  Spaces are still available. See
   http://dev.zope.org/Zope3/Fredericksburg2003Sprint2 for more

 - A number of talented Zope 3 developers are sprinting prior to
   EuroPython in Louvain-la-Neuve, Belgium, June 22-24.  See
   http://dev.zope.org/Zope3/EuroPython2003Sprint for more information.

- Jim Fulton plans for a Zope 3 beta for end of June.

 - Jim Fulton is also scheduled to lead a sprint in Melbourne,
   Australia, July 9-13.  Spaces are still available.  See
   http://www.ozzope.org/OzSprintWiki for more information.

 - Note that some people's reports below have an "Older News" section:
   blame it on the newsletter editor.  We haven't had a newsletter since
   March 25.


  ZeOmega is converting all ZPTs and string constants in the Zope 3
  application subdirectory (zope.app) to make them i18n aware.

GUIDO VAN ROSSUM (PYTHONLABS, ZOPE CORP): Filesystem Synchronization

  This feature (abbreviated "fssync") lets you create a representation
  of a subtree of a Zope 3 server's object space on the filesystem, edit
  the files on the filesystem, and push them back to the server.  There
  is a command line utility which works somewhat like CVS that manages
  synchronization between filesystem and server.  The filesystem
  representation of common objects is natural and easy to edit: folders
  map to directories, page templates map to files containing the text of
  the page template, and so on.  Unrecognized objects are represented as
  a blob of XML.

  The command line utility is the script src/zope/fssync/main.py; invoke
  it without arguments to get help.  The README.txt file in the same
  directory has more project information, and links to Wiki pages.  It
  is possible to synchronize part of the site manager subtree
  (/++etc++site/) as well; the next stage of the project will be to
  extend the fssync machinery to allow installing and managing site
  management bundles (the envisioned primary mechanism for distributing
  Zope 3 software).



    The Pre-PyCon sprint was a great success! We got almost all tasks
    required for the Zope X3 release done. Page Templates are correctly
    hooked up to the Translation Services, the user's Locale is
    available in the request, translation of Python code is possible,
    the JobBoardI18n demo is updated and translation extraction tools
    have been written. The only tasks left to do is to implement the
    I18n support for ZCML, internationalize Zope 3 and translate it to a
    couple of languages. For a complete summary see


    I am working heavily these days on the Zope 3 Cookbook to provide
    some extensive and narrative documentation by example. All of the 10
    introduction chapters have been outlined and some recipes have been
    written. I am working currently on a section that builds a Message
    Board application from scratch. The cookbook can be found at
    http://dev.zope.org/Zope3/DevelCookbook and the example code is
    accessable via http://cvs.zope.org/Products3/demo/messageboard/. The
    book's content is currently placed under the Open Publication

    I recently had another Wiki cleanup session. The Wiki pages look
    pretty good at this point and most FrontPage linked pages are
    up-to-date. I am also pretty confident about pages having status
    badges, though there needs to be more work done in this area. For
    details see

SQL TALES Expressions

    This is a little product that adds another TALES expression to page
    templates. SQL expressions allow you to write SQL statements in your
    page templates directly without the need for creating new SQL
    Scripts, connection services and database adapters. The used
    database can be either specified with a connection object name or by
    directly specifying the RDB DA and the DSM. Example::

        <html tal:define="rdb string:psycopgda; dsn string:dbi://test">
                <li tal:repeat="contact sql: SELECT * FROM contact">
                   <b tal:content="contact/name" />

    Thanks goes to Alan Runyaga, who tickled the idea out of me. He was
    looking for allowing Zope to be more similar to PHP and other inline
    scripting tools, since they are more familiar to the Web scripter
    and therefore easier to learn.
    Link: http://cvs.zope.org/Products3/sqlexpr/

ZWiki for Zope 3

    I have rently ported the core functionality of ZWiki to Zope 3.
    Thanks goes to Simon Michael for his help. ZWiki for Zope 3 supports
    Plain Text, STX and ReST as input types, can mail modification
    notification, and has parenting support. For more details see

    On this page you will also find link to three very positive reviews
    about the product!


Mailing service

    Lately, we've been working on the transactionally-safe mailing
    service.  It's not yet there, but expect it in HEAD soon.  As an
    off-shoot of this project, Marius has written a proposal for a nice
    API for creating RFC822 messages, which would take care of things
    like MIME attachments and proper encoding of Unicode data.

Authenticated user names in logs

    Albertas has traced and added a minor feature which was missing:
    authenticated user names in the HTTP access logs.  Need to know what
    the users are doing! <wink>

Decorators (see also Steve's entry below)

    Marius has been pairing with Steve implementing decorators, but
    that's a separate story; besides, it was more than two weeks ago.

Older news from Marius (April 16)

    One thing worth attention is the new functional testing framework.
    Functional tests can test large parts of the system as a whole by
    simulating the publication process in an automated way.  One of the
    immediate merits of the functional test suite is that errors in ZCML
    files will be immediately noticed.  If you're interested, you can
    find the documentation in doc/FTEST.txt in your Zope 3 source tree,
    and the FunctionalTestingFramework page of the Zope 3 wiki.

    Albertas and I have also been working on virtual hosting.  It is now
    basically working in conjunction with Apache rewrite rules.  We have
    already deployed it on some of our production systems.  There are
    still some rough edges, e.g. the Javascript tree in the ZMI is not
    yet aware of virtual hosting.  More details can be found on the
    VirtualHosting page of the Zope 3 wiki.

BTW virtual hosting has full functional tests. ;-)

    One of the things we use virtual hosting for is a product I've
    written called z3checkins.  It displays a list of the most recent
    changes made to the Zope 3 CVS repository, and you can add it to
    your Mozilla sidebar.  Check it out at
    http://www.codeworks.lt/zope3-checkins .  If you like it, thank
    Steve Alexander for the idea.



    With help from Marius, I implemented a prototype of Decorators.
    Later, Jim and I simplified Decorators and implemented them.
    Decorators are specific kinds of Context Wrapper that you use to
    separate the conetext-specific implementation of a some content from
    the plain ole' Python implementation.  So, a Folder class implements
    basic folder functionality, and its decorator,
    ZopeContainerDecorator handles context-wrapping, sending events,
    calling hooks such as the 'afterAddHook', and that kind of thing. In
    practical terms, you no longer have to adapt a container to
    IZopeContainer before using it. The equivalent behaviour with a
    decorator now happens automatically when the container gets
    context-wrapped. There's some preliminary documentation in

__implements__ to implements

    With help from Philipp von Weitershausen, I converted almost all
    (about 350) of the uses of __implements__ in the Zope 3 code the new
    implements(...) syntax. In a lot of cases, the implements
    declaration was made shorter, or could be removed altogether.

Context Wrappers

    Jim and I reworked context wrappers a bit, breaking out
    zope-specific functionality in to a separate subclass in
    zope.app.context. I also removed the ContextAware base class because
    it had unpredictable and implicit side-effects, which broke some xml
    code Martijn Faassen had just checked into CVS under Products3.
    Sorry Martijn! Shortly after, I wrote a new ContextAware base class
    that works in a more explicit and predictable way.

Easier unit tests for local (placeful) components

    Jim refactored the PlacefulSetup code for writing unit tests. This
    made writing location-dependent tests much less painful.

Event service bug

    I fixed a subtle persistence related bug in the event service. Kudos
    to Marcus J. Ertl for tracking the bug down.

Older news from Steve (April 8):

    I rewrote in C the ContextWrapper code that was in Python. This
    resulted in much simpler wrapper code in Python. Now the unit tests
    run somewhere between 10% and 15% faster.

CHRISTIAN THEUNE (GOCEPT): Open source certification

  There has been a meeting with the TUEV-IT which is a German
  institution that is able to issue common criteria certificates. There
  is a sponsorship by the Mitcon GmbH who pays the fees for a EAL-1
  certification which makes Zope 3 the world's first certified open
  source product.

  The certification is in preparation and there will be a workshop in
  July where the first documents are drafted together with the TUEV and
  our people, who include Aroldo Souza-Leite, Steve Alexander, some
  other people and me. If you want to know more about the certification
  please see http://www.commoncriteria.org

Stay zoped!


  I have been working on integrating Zope 3 with Zope 2 on a Zope
  Corporation customer project.  The project leverages ZCML to only load
  the parts of Zope 3 pertinent to the project.  Jim Fulton hopes to
  leverage this experience for a Zope 2 release in the fall of this year
  that incorporates Zope 3.


  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.


  The central place to find Zope 3 information is currently

  The Zope 3 mailing list is archived and managed at

  The Zope 3 development IRC channel, #zope3-dev at irc.openprojects.net
  is (strictly) for discussion of Zope 3 development issues.

Newsletters are archived at http://dev.zope.org/Zope3/Zope3Newsletter

Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to