[PEAK] peak.web in October

Phillip J. Eby pje at telecommunity.com
Tue Oct 5 11:12:34 EDT 2004

As some of you may have noticed from last week's flurry of checkins, I'm 
finally doing the peak.web refactoring I've been talking about off and on 
for the last several months.  At this point, the plan is to complete at 
least these peak.web "Tier 1" features this month:

  * Overhauled traversal system to be fast, flexible, and extensible (DONE)

  * Add a "views" subsystem that allows you to declare how traversals will 
be interpreted for arbitrary objects in arbitrary subparts of a site, 
without creating a decorator class (DONE)

  * Overhaul PWT to use the new this:/content: attribute mechanism 
(Started; the needed XML parser is in a draft status)

  * Design and implement an XML dialect for site configuration, similar in 
functionality to Zope 3's ZCML, but with the capability of structuring a 
site or application's URL layout and "local" as well as "global" 
configuration.  (Not started, but will use the same draft XML parser)

  * Create view registration mechanisms for both .ini files and .xml files

  * Implementation that can be plugged into any WSGI (PEP 333) compatible 
web server

  * All of PEAK's internal web gateways (CGI, FastCGI, and local_server) 
will offer a WSGI interface for running other applications

  * PEAK will be distributed with a WSGI reference library

  * Miscellaneous cleanups and minor features, such as adding the ability 
to set a rule for extracting a skin name from a request.

When the above items are completed, we will finally have a peak.web worthy 
of the 0.5a4 version number.  ;)  Specifically, it will be well-suited to 
creating simple applications whose contents have uniform security 
requirements for all visitors (i.e. no logins required) and no complex 
behavior (like form processing or workflow).  It will be especially useful 
for creating static sites from a data repository of some type, which is 
good because the first three applications I intend to create all fit that 
profile: a blogging tool, a Python documentation tool, and a bookmark 
indexer that creates Yahoo-like or DMoz-like web pages.

Of course, it will be *possible* to create more sophisticated apps, but 
until the Tier 2 features (authentication, forms, layout, widgets) and Tier 
3 features (sessions, i18n, preferences, pagelets) start showing up, it 
won't be nearly as easy.  And, at this point I'm not making any projections 
or commitments with respect to tiers 2 and 3, because I don't have an 
immediate need for them in my current non-position.  :)

Anyway, once the peak.web features are complete, I'll probably be busy for 
a while with the three apps I mentioned.  The documentation tool at least 
will probably be added to PEAK itself, and used to help document PEAK.  The 
other two apps may get added to the examples directory.

At present, the main open issue in Tier 1 is the design of the site 
configuration language.  I'd like to align it with ZCML in terms of 
expressiveness and features, but there are features I want that ZCML didn't 
have the last time I looked.  So, I'm going to have to read up on that a 
bit.  I'm probably also going to post a rambling requirements-and-design 
document here soon, to work out the details.

More information about the PEAK mailing list