State of Zope 3 =============== Stephan Richter Neckar Sprint Tübingen, October 6, 2005 *License:* http://creativecommons.org/licenses/by/2.5/ The last 12 months ------------------ - Zope 2.8 - Zope X3 3.0 - Lots of new Zope 3 applications + Tiks + Life Site + Bebop + SchoolBell/SchoolTool + Launchpad + Custom Projects (ZC, Dylan R., ...) + Five Projects (i.e. TextIndexNG, Silva) Zope 3 applications ------------------- - Work on Zope 3 itself slowed as people began working on applications - Many interesting Zope 3 applications emerging - Contributions reflecting application experience. **Zope 3 Development is driven by application development now!** Zope 3.1 -------- - Dropped the “X”; we believe the code is not experimental anymore - Major cleanups (more on next slides...) - Many new features based on applications - Too many goodies to mention ...(for an overview see the release notes) - Too to long Component Arch. Simplifications ------------------------------- - Merged services and utilities - Generalized “implements” to factories - Provided adaptation declarations - declaration decorators - Major cleanup of local registration - Simpler declaration API (mainly for tests and non-Zope applications). Security -------- - Groups - Pluggable authentication - canAccess/canWrite helper functions - New Granting UI with “advanced” search - Simpler alternative security policy (ZC plan to release it later this year) ZCML Simplification ------------------- - Leverage declarations in Python - Greater use of adapter directive (as alternative to view/page etc.; zc.formlib) - Conditional processing using features or modules as criteria API Doc ------- - Fantastic tool for seeing how things fit together - Handy ZCML reference - Committed to introspection API that can be used by other applications - Many usability improvements - Need a static version (3.2) *Possible Sprint Task!* Cataloging ---------- - int ids (utility) - Basic catalog - TextIndex NG - Martijn's query work Deprecation ----------- - Began putting new deprecation policy into practice - Many APIs to aid generation of warnings (zope.deprecation) - Need more feedback earlier! People need to come out of the closet! ++debug++ --------- - source – See where things came from - tal – leave tal attributes in output - error – Get error tracebacks Other ----- - Sessions - Preferences - zopectl debug - sources - better containment constraints – but still not good enough - Better date formatting; support for timezones - Better build system that supports 3rd party packaging Time based releases ------------------- - Starting with Zope 2.9,Zope 3.2,ZODB 3.6 - Every 6 months,June and December - Starting December 2005 - Feature freeze November 1! - Zope 2.9 to include Zope 3.2 - Python 2.4 required in Dec 2005 releases - Maybe simpler naming scheme in future Zope 3.2 -------- Many new features! Whatever is ready! New server architecture ----------------------- - WSGI (better method) - Twisted integration - Better streaming (via publisher results) - Beginning to get out of the server business - Implement HTTP sub-protocol selection using component architecture (?) *Possible Sprint Task!* Publisher --------- - Iteration rather than write method - Greater use of events in publication (?) - Post-processing – May allow better separation of concerns for page production (?) Better XML integration ---------------------- - I want at least ubiquitous XSLT and XPATH - Want lxml – if the requirement is not too burdensome Testing ------- - Great progress with Selenium + Zope 2 projects led the way! - Selenium integration in Zope 3 (?) - New test runner + Layers provide better test separation + Better foundation for future testing features - Test Browser - Test Recorder (not in core) UI definition from ZCML to Python --------------------------------- - ZCML is a good configuration language – It is not a good definition language - formlib provides far more Pythonic and flexible forms - zope.formlib.page suggests defining pages in Python too Other ----- - Blobs (?) - External Editor (Kupu) - Finish WebDAV (? Please!) - Messages - Better widget APIs (in progress) *Possible Sprint Task!(WebDAV)* Looking forward --------------- - Zope 2 to Zope 3 transition + Maybe someday, Zope 2 and Zope 3 will only be different configurations - Better page composition - Content Management - Better definition of “core” Better page composition ----------------------- - METAL page macros haven't worked well - Non-template-based page composition (ala CPS skins)? - Pipelines? (or similar schemes) - Viewlets/resource library - AJAX? - Push models Better definition of “core” --------------------------- - Zope 3 is mature enough to define core and non-core - Bobo versus the object file system **Zope 3 suffers an dent ty crisis!** Content management ------------------ - Zope 3 provides an opportunity for greater collaboration - Z3ECM - Tiks - Goldegg Through-the-web development --------------------------- - Still needed (IMO) - Scripting - Prototyping + Fast turn around + Conversion to packages Possible Sprint Task Summary ---------------------------- - Static API doc - Twisted Integration - HTTP sub-protocol via CA - Finish WebDAV - Implement Object Introspector - Implement Developer Mode - Container views reimplementation - Password Managers - zope3.org collaboration Web site