SlideShare a Scribd company logo
1 of 8
Download to read offline
The State of Zope 3                                              file:///Users/aclark/Desktop/StateOfZope3-PC08.html




          The State of Zope 3
          The State of Zope 3
          Location: Plone Conference 2008, Washington, DC
            Date: October 10, 2008
          Presenter: Stephan Richter, Keas Inc.

          Changing Dynamics


          The Pre-historic Past
                 Started development of Zope 3 in January 2002
                 Used 42 Sprints to complete it
                 Release of Zope X3.0.0 on November 6, 2004
                 Other Releases
                       Zope 3.1.0: October 2, 2005
                       Zope 3.2.0: March 16, 2006
                       Zope 3.3.0: September 27, 2006
                       Zope 3.3.1: January 14, 2007


          The Last 20 Months
                 Zope Explosion - Packages and the KGS
                 API Stabilization
                 Grok
                 Lots of Add-on Packages

          (since February 1, 2007)


          The Last 20 Months in Numbers
                 Contributors: 149 (total: 290)
                 New Contributors: 77
                 Checkins: 27187 (total: 91893)
                 Total Amount of Packages: 581
                 New Packages: 372 (exluding explosion: 283)
                 Package Releases: 1331


1 of 8                                                                                            8/3/09 10:03 AM
The State of Zope 3                                                                     file:///Users/aclark/Desktop/StateOfZope3-PC08.html


          (Statistics include work on Zope 2)


          Packages By PyPI Categories
                  Packages in PyPI: 5199
                  Buildout: 112 (2.2%)
                  Plone: 375 (7.2%)
                  ZODB: 9 (0.2%)
                  Zope2: 328 (6.3%)
                  Zope3: 617 (11.9%)
                  Total Zope-related: 1441 (27.7%)

          (Based on Trove Environment classifiers. Some packages might be double counted, if multiple
          environments were specified.)


          Packages By Namespaces
          New packages by namespace (since April 1, 2007)

           cc   :2             lovely     : 10         zam   :4
           gocept     :3       megrok     : 12         zamplugin        :8
           grokcore       :4   plone     :2            zc   : 32
           grokui     :2       vanguardistas       : 1 zope : 28
           gzo   :2            z3   :1                 zopeorg        :2
           hurry     :6        z3c   : 99              zopyx       :2
           jquery     :7       z3ext     : 17          five      :5
           keas   :2


          Top Contributors By Releases
           srichter:       241 gary : 36           baijum    : 13       shane   :7
           ctheune      : 129 jens : 34            rossp    : 12        schwendi:6
           andreasj       : 87 faassen : 32        mkerrin    : 12      shh   :5
           philikon       : 82 dobe : 22           zagy   : 11          nathan     :5
           jim   : 82          berndroe       : 19 hannosch:10          jackie     :5
           fafhrd     : 72     benji_yo       : 19 tlotze : 9           satchit    :4



2 of 8                                                                                                                   8/3/09 10:03 AM
The State of Zope 3                                                                        file:///Users/aclark/Desktop/StateOfZope3-PC08.html



           fdrake     : 59      mgedmin   : 17     pcardune     :9     nadako    :4
           rogerine     : 58 batlogg : 16          janwijbr     :9     mauritsv:4
           jukart     : 58      aaron   : 14       ulif   :8           malthe    :4
           tseaver     : 45     ccomb   : 13       jinty   :8


          Top Contributors By Checkins
           philikon     : 1555     hannosch      : 330     blackburnd        : 243 ccomb : 111
           ctheune     : 1405      wichert      : 328      luciano     : 237      gotcha   : 109
           srichter     : 1180     jens   : 319            benji...      : 235    thefu...:103
           andreas...:1163 mgedmin              : 305      yuppie     : 207       kteague   : 102
           ulif   : 1102           zagy   : 301            adamg     : 185        chrism   : 102
           jim   : 1099            gary   : 300            regebro     : 172      batlogg   : 95
           rogeri...:756           darrylc...:297          mkerrin     : 170      shane   : 93
           faassen     : 723       janwijb...:         285 alex : 170             witsch   : 79
           malthe     : 507        pcardune      : 280     rossp     : 164        nikhil_n   : 78
           dobe   : 460            jukart      : 274       shh   : 150            jinty   : 78
           tseaver     : 448       fafhrd      : 257       tlotze     : 143       icemac   : 76
           fdrake     : 433        baijum      : 255       maurits...        : 139 paran... : 75

          (Data for the entire repository from February 1, 2007 to October 8, 2008.)


          Eggification - An Explosive Story
                  Goal: Split up Zope 3 source tree into small, reusable packages
                  Enabled by packaging work: distutils and setuptools
                  Work began in February 2006 (as far as I can tell)
                  Final packages converted in March 2007


          Explosive Hazards (1)
                  No tools for project/package management
                        zc.buildout to provide a deployment solution
                        Today there are 112 buildout related packages on PyPI, mostly recipes
                        zope3project/grokproject to assemble minimum setup
                  Unreliable package server


3 of 8                                                                                                                      8/3/09 10:03 AM
The State of Zope 3                                                          file:///Users/aclark/Desktop/StateOfZope3-PC08.html


                       The python.org PyPI server had frequent outages, stalling development
                       z3c.pypimirror/zc.mirrorcheeseshopslashsimple provide scripts to produce mirrors
                       of the PyPI package index.


          Explosive Hazards (1)
                 Complex package inter-dependencies

                       Requiring one package pulls in about 60 other packages.
                       It's very tedious to unscrew dependencies
                       Tools like gtkeggdeps help with discovery
                       zc.configuration (<zope:exclude> directive) and ZAM (zam.* and zamplugin.*)
                       help

                 zc.configuration    enables a developer to ignore all browser-related ZCML declarations of a
                 package, thus usally reducing the list of dependencies. ZAM, on the other hand, is a pluggable
                 replacement for the management aspects of the Rotterdam skin, which reduces the dependency
                 tree drastically.

                 No version management

                       A typical Zope application uses about 200 packages
                       Package-tests themselves have about 80 packages
                       Everyone uses different sets of package releases for tests and application development
                       Version-dependencies are hard-coded in setup.py causing version conflicts and stalled
                       development
                       Caused huge disarray in the community in October 2007


          The Known Good Set (KGS)
                 Goal: Provide a standard set of packages and their versions that is guaranteed to work together
                 Serves as a base for everyone to develop on
                       A starting point for custom applications
                 Works together with existing infrastructure and software
                       Creates an index with limited version availability of controlled packages
                       Creates an index containing only the controlled packages
                       Creates "version"-block for usage in buildout configuration
                       Creates a package links page
                       Creates a complete buildout configuration for testing


          Zope 3 KGS

4 of 8                                                                                                        8/3/09 10:03 AM
The State of Zope 3                                                               file:///Users/aclark/Desktop/StateOfZope3-PC08.html


                 A KGS for all Zope 3 related packages maintained in http://svn.zope.org

                 Introduction URL: http://download.zope.org/zope3.4/intro.html

                 Zope 3's KGS serves as a base to Grok's or Plone's KGS (for example)

                 Managed Packages: 170

                 Combined tests: 12217

                 Currently all tests are passing: http://zope3.pov.lt/buildbot/

                 (except for some random non-deterministic ZODB-related failures)


          Plans for Zope 3.4
                 Yes, there is a plan!

                 Work on a Zope 3 KGS based release since November 2007 (3.4.0b2)

                 Most recent release: September 5, 2008 (3.4.0c7)

                 Commitment to produce a tree-based source release

                 We have a script to do this for us.

                 No commitment on a time scale due to lack of interest


          Zope 3.4 Release
                 Work done
                      Create a KGS with all tests passing
                      Release process
                      Backward-compatibility
                 Work to be done
                      Script to produce change log
                      Tweaks to the KGS site (i.e. include dates in release, improve wording, maybe a skin)
                      Cut the release and announcement


          Trends
                 Stability
                 Performance
                 Scalability


5 of 8                                                                                                             8/3/09 10:03 AM
The State of Zope 3                                                           file:///Users/aclark/Desktop/StateOfZope3-PC08.html


                 Portability
                 Security
                 Deployment


          Stability
                 Only few enhancements to the core packages' feature sets
                 Lots of bug fixes
                 Several buildout recipes provide features to maintain code


          Performance
                 lovely.responsecache / z3c.versionedresource / z3c.resourcecollector
                 ZODB BLOB support
                 zc.zodbactivitylog / z3c.zodbtracing / z3c.profiler
                 RelStorage (RDB storage backend for ZODB)
                 ZODB Object Cache improvements
                 z3c.pt from Malthe Borch improves rendering 18-20 times
                       Keas pays Malthe to port z3c.form*, z3c.template, z3c.pagelet, z3c.macro to z3c.pt


          Scalability
                 lovely.memcached / lovely.session (memchached integration)
                 lovely.remotetask / zc.async (async-based task execution)
                 gocept.zeoraid (A RAID controller system for ZODB)
                 z3c.extfile (Storing files external to Zope App)
                 Soon: keas.messaging, an Amazon Simple Queue Service connector
                 Soon: keas.sharding, a sharding solution for the ZODB


          Portability
                 Good support for WSGI
                 Support for Paster
                 Google Summer of Code project to port Zope libraries to Jython
                 Initial Google App Engine work


          Security
                 z3c.password   (Advanced password generation and verification utility)



6 of 8                                                                                                         8/3/09 10:03 AM
The State of Zope 3                                                          file:///Users/aclark/Desktop/StateOfZope3-PC08.html


                 z3c.tan (Temporarily granting additional permissions)
                 z3c.securitytool (Discovery of security settings)
                 gocept.registration (Hash-based registration confirmation)
                 keas.kmi (Key Management Infrastructure - PCI and HIPAA compliant)
                 Unfortunately Common Criteria certification cancelled


          Deployment
                 buildout
                 many recipes
                 zc.sourcerelease   (creates complete archives)


          Relevance to Plone
                 All Zope 3 packages can be used within Plone
                       some integration (Five) code might be needed
                       Zope 3 packages usually do not have a UI
                       for example: z3c.form --> plone.z3cform
                 buildout also changed the deployment story for Plone
                 Scalability and performance tuning benefits Plone directly


          The Future
                 Package dependency resolution
                 Easier entry into Zope 3 world
                 Stablize core further
                 Concentrate on scalability
                 Build more add on packages


          Challenges
                 Rich client-side apps lessens importance of heavy app servers
                 Opportunity and Challenge
                 Web 2.0 and REST
                 Much more JS support needed
                 Zope becomes a middleware server
                 Documentation


          In case you wonder ...

7 of 8                                                                                                        8/3/09 10:03 AM
The State of Zope 3                                                      file:///Users/aclark/Desktop/StateOfZope3-PC08.html


                 I joined a startup called Keas, Inc.
                 Preliminary site: keas.com
                 We are in stealth mode, so I cannot give many specifics yet
                 We are looking for Zope 3 and other Web developers in SF and NY


          Questions and Comments




8 of 8                                                                                                    8/3/09 10:03 AM

More Related Content

Similar to State Of Zope 3 - Stephan Richter

Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
 
2012 12-08-travis-ci-could-do
2012 12-08-travis-ci-could-do2012 12-08-travis-ci-could-do
2012 12-08-travis-ci-could-doKenichi Murahashi
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)yarry
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsHisaki Ohara
 
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Hideki Yamane
 
Sourcefire Vulnerability Research Team Labs
Sourcefire Vulnerability Research Team LabsSourcefire Vulnerability Research Team Labs
Sourcefire Vulnerability Research Team Labslosalamos
 
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementGitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementJohn Anderson
 

Similar to State Of Zope 3 - Stephan Richter (8)

Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
2012 12-08-travis-ci-could-do
2012 12-08-travis-ci-could-do2012 12-08-travis-ci-could-do
2012 12-08-travis-ci-could-do
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
 
Sourcefire Vulnerability Research Team Labs
Sourcefire Vulnerability Research Team LabsSourcefire Vulnerability Research Team Labs
Sourcefire Vulnerability Research Team Labs
 
GitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo ManagementGitGot: The Swiss Army Chainsaw of Git Repo Management
GitGot: The Swiss Army Chainsaw of Git Repo Management
 
Docker as an every day work tool
Docker as an every day work toolDocker as an every day work tool
Docker as an every day work tool
 

More from Jeffrey Clark

Python memory management_v2
Python memory management_v2Python memory management_v2
Python memory management_v2Jeffrey Clark
 
Jwt with flask slide deck - alan swenson
Jwt with flask   slide deck - alan swensonJwt with flask   slide deck - alan swenson
Jwt with flask slide deck - alan swensonJeffrey Clark
 
Genericmeetupslides 110607190400-phpapp02
Genericmeetupslides 110607190400-phpapp02Genericmeetupslides 110607190400-phpapp02
Genericmeetupslides 110607190400-phpapp02Jeffrey Clark
 
Pyramiddcpythonfeb2013 131006105131-phpapp02
Pyramiddcpythonfeb2013 131006105131-phpapp02Pyramiddcpythonfeb2013 131006105131-phpapp02
Pyramiddcpythonfeb2013 131006105131-phpapp02Jeffrey Clark
 
Zpugdc2007 101105081808-phpapp01
Zpugdc2007 101105081808-phpapp01Zpugdc2007 101105081808-phpapp01
Zpugdc2007 101105081808-phpapp01Jeffrey Clark
 
Zpugdc deformpresentation-100709203803-phpapp01
Zpugdc deformpresentation-100709203803-phpapp01Zpugdc deformpresentation-100709203803-phpapp01
Zpugdc deformpresentation-100709203803-phpapp01Jeffrey Clark
 
Zpugdccherry 101105081729-phpapp01
Zpugdccherry 101105081729-phpapp01Zpugdccherry 101105081729-phpapp01
Zpugdccherry 101105081729-phpapp01Jeffrey Clark
 
Using Grok to Walk Like a Duck - Brandon Craig Rhodes
Using Grok to Walk Like a Duck - Brandon Craig RhodesUsing Grok to Walk Like a Duck - Brandon Craig Rhodes
Using Grok to Walk Like a Duck - Brandon Craig RhodesJeffrey Clark
 
What Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonWhat Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonJeffrey Clark
 
What Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonWhat Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonJeffrey Clark
 
Plone I18n Tutorial - Hanno Schlichting
Plone I18n Tutorial - Hanno SchlichtingPlone I18n Tutorial - Hanno Schlichting
Plone I18n Tutorial - Hanno SchlichtingJeffrey Clark
 
Real World Intranets - Joel Burton
Real World Intranets - Joel BurtonReal World Intranets - Joel Burton
Real World Intranets - Joel BurtonJeffrey Clark
 
KSS Techniques - Joel Burton
KSS Techniques - Joel BurtonKSS Techniques - Joel Burton
KSS Techniques - Joel BurtonJeffrey Clark
 

More from Jeffrey Clark (20)

Python memory management_v2
Python memory management_v2Python memory management_v2
Python memory management_v2
 
Python meetup
Python meetupPython meetup
Python meetup
 
Jwt with flask slide deck - alan swenson
Jwt with flask   slide deck - alan swensonJwt with flask   slide deck - alan swenson
Jwt with flask slide deck - alan swenson
 
Genericmeetupslides 110607190400-phpapp02
Genericmeetupslides 110607190400-phpapp02Genericmeetupslides 110607190400-phpapp02
Genericmeetupslides 110607190400-phpapp02
 
Pyramiddcpythonfeb2013 131006105131-phpapp02
Pyramiddcpythonfeb2013 131006105131-phpapp02Pyramiddcpythonfeb2013 131006105131-phpapp02
Pyramiddcpythonfeb2013 131006105131-phpapp02
 
Dc python meetup
Dc python meetupDc python meetup
Dc python meetup
 
Zpugdc2007 101105081808-phpapp01
Zpugdc2007 101105081808-phpapp01Zpugdc2007 101105081808-phpapp01
Zpugdc2007 101105081808-phpapp01
 
Zpugdc deformpresentation-100709203803-phpapp01
Zpugdc deformpresentation-100709203803-phpapp01Zpugdc deformpresentation-100709203803-phpapp01
Zpugdc deformpresentation-100709203803-phpapp01
 
Zpugdccherry 101105081729-phpapp01
Zpugdccherry 101105081729-phpapp01Zpugdccherry 101105081729-phpapp01
Zpugdccherry 101105081729-phpapp01
 
Tornado
TornadoTornado
Tornado
 
Science To Bfg
Science To BfgScience To Bfg
Science To Bfg
 
The PSF and You
The PSF and YouThe PSF and You
The PSF and You
 
Using Grok to Walk Like a Duck - Brandon Craig Rhodes
Using Grok to Walk Like a Duck - Brandon Craig RhodesUsing Grok to Walk Like a Duck - Brandon Craig Rhodes
Using Grok to Walk Like a Duck - Brandon Craig Rhodes
 
What Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonWhat Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike Robinson
 
What Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike RobinsonWhat Makes A Great Dev Team - Mike Robinson
What Makes A Great Dev Team - Mike Robinson
 
Plone I18n Tutorial - Hanno Schlichting
Plone I18n Tutorial - Hanno SchlichtingPlone I18n Tutorial - Hanno Schlichting
Plone I18n Tutorial - Hanno Schlichting
 
Real World Intranets - Joel Burton
Real World Intranets - Joel BurtonReal World Intranets - Joel Burton
Real World Intranets - Joel Burton
 
KSS Techniques - Joel Burton
KSS Techniques - Joel BurtonKSS Techniques - Joel Burton
KSS Techniques - Joel Burton
 
Zenoss: Buildout
Zenoss: BuildoutZenoss: Buildout
Zenoss: Buildout
 
Opensourceweblion
OpensourceweblionOpensourceweblion
Opensourceweblion
 

Recently uploaded

My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfInfopole1
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingFrancesco Corti
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3DianaGray10
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud DataEric D. Schabell
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1DianaGray10
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 

Recently uploaded (20)

My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdfExtra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
Where developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is goingWhere developers are challenged, what developers want and where DevEx is going
Where developers are challenged, what developers want and where DevEx is going
 
UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3UiPath Studio Web workshop Series - Day 3
UiPath Studio Web workshop Series - Day 3
 
3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data3 Pitfalls Everyone Should Avoid with Cloud Data
3 Pitfalls Everyone Should Avoid with Cloud Data
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series  - Day 1UiPath Studio Web workshop series  - Day 1
UiPath Studio Web workshop series - Day 1
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 

State Of Zope 3 - Stephan Richter

  • 1. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html The State of Zope 3 The State of Zope 3 Location: Plone Conference 2008, Washington, DC Date: October 10, 2008 Presenter: Stephan Richter, Keas Inc. Changing Dynamics The Pre-historic Past Started development of Zope 3 in January 2002 Used 42 Sprints to complete it Release of Zope X3.0.0 on November 6, 2004 Other Releases Zope 3.1.0: October 2, 2005 Zope 3.2.0: March 16, 2006 Zope 3.3.0: September 27, 2006 Zope 3.3.1: January 14, 2007 The Last 20 Months Zope Explosion - Packages and the KGS API Stabilization Grok Lots of Add-on Packages (since February 1, 2007) The Last 20 Months in Numbers Contributors: 149 (total: 290) New Contributors: 77 Checkins: 27187 (total: 91893) Total Amount of Packages: 581 New Packages: 372 (exluding explosion: 283) Package Releases: 1331 1 of 8 8/3/09 10:03 AM
  • 2. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html (Statistics include work on Zope 2) Packages By PyPI Categories Packages in PyPI: 5199 Buildout: 112 (2.2%) Plone: 375 (7.2%) ZODB: 9 (0.2%) Zope2: 328 (6.3%) Zope3: 617 (11.9%) Total Zope-related: 1441 (27.7%) (Based on Trove Environment classifiers. Some packages might be double counted, if multiple environments were specified.) Packages By Namespaces New packages by namespace (since April 1, 2007) cc :2 lovely : 10 zam :4 gocept :3 megrok : 12 zamplugin :8 grokcore :4 plone :2 zc : 32 grokui :2 vanguardistas : 1 zope : 28 gzo :2 z3 :1 zopeorg :2 hurry :6 z3c : 99 zopyx :2 jquery :7 z3ext : 17 five :5 keas :2 Top Contributors By Releases srichter: 241 gary : 36 baijum : 13 shane :7 ctheune : 129 jens : 34 rossp : 12 schwendi:6 andreasj : 87 faassen : 32 mkerrin : 12 shh :5 philikon : 82 dobe : 22 zagy : 11 nathan :5 jim : 82 berndroe : 19 hannosch:10 jackie :5 fafhrd : 72 benji_yo : 19 tlotze : 9 satchit :4 2 of 8 8/3/09 10:03 AM
  • 3. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html fdrake : 59 mgedmin : 17 pcardune :9 nadako :4 rogerine : 58 batlogg : 16 janwijbr :9 mauritsv:4 jukart : 58 aaron : 14 ulif :8 malthe :4 tseaver : 45 ccomb : 13 jinty :8 Top Contributors By Checkins philikon : 1555 hannosch : 330 blackburnd : 243 ccomb : 111 ctheune : 1405 wichert : 328 luciano : 237 gotcha : 109 srichter : 1180 jens : 319 benji... : 235 thefu...:103 andreas...:1163 mgedmin : 305 yuppie : 207 kteague : 102 ulif : 1102 zagy : 301 adamg : 185 chrism : 102 jim : 1099 gary : 300 regebro : 172 batlogg : 95 rogeri...:756 darrylc...:297 mkerrin : 170 shane : 93 faassen : 723 janwijb...: 285 alex : 170 witsch : 79 malthe : 507 pcardune : 280 rossp : 164 nikhil_n : 78 dobe : 460 jukart : 274 shh : 150 jinty : 78 tseaver : 448 fafhrd : 257 tlotze : 143 icemac : 76 fdrake : 433 baijum : 255 maurits... : 139 paran... : 75 (Data for the entire repository from February 1, 2007 to October 8, 2008.) Eggification - An Explosive Story Goal: Split up Zope 3 source tree into small, reusable packages Enabled by packaging work: distutils and setuptools Work began in February 2006 (as far as I can tell) Final packages converted in March 2007 Explosive Hazards (1) No tools for project/package management zc.buildout to provide a deployment solution Today there are 112 buildout related packages on PyPI, mostly recipes zope3project/grokproject to assemble minimum setup Unreliable package server 3 of 8 8/3/09 10:03 AM
  • 4. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html The python.org PyPI server had frequent outages, stalling development z3c.pypimirror/zc.mirrorcheeseshopslashsimple provide scripts to produce mirrors of the PyPI package index. Explosive Hazards (1) Complex package inter-dependencies Requiring one package pulls in about 60 other packages. It's very tedious to unscrew dependencies Tools like gtkeggdeps help with discovery zc.configuration (<zope:exclude> directive) and ZAM (zam.* and zamplugin.*) help zc.configuration enables a developer to ignore all browser-related ZCML declarations of a package, thus usally reducing the list of dependencies. ZAM, on the other hand, is a pluggable replacement for the management aspects of the Rotterdam skin, which reduces the dependency tree drastically. No version management A typical Zope application uses about 200 packages Package-tests themselves have about 80 packages Everyone uses different sets of package releases for tests and application development Version-dependencies are hard-coded in setup.py causing version conflicts and stalled development Caused huge disarray in the community in October 2007 The Known Good Set (KGS) Goal: Provide a standard set of packages and their versions that is guaranteed to work together Serves as a base for everyone to develop on A starting point for custom applications Works together with existing infrastructure and software Creates an index with limited version availability of controlled packages Creates an index containing only the controlled packages Creates "version"-block for usage in buildout configuration Creates a package links page Creates a complete buildout configuration for testing Zope 3 KGS 4 of 8 8/3/09 10:03 AM
  • 5. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html A KGS for all Zope 3 related packages maintained in http://svn.zope.org Introduction URL: http://download.zope.org/zope3.4/intro.html Zope 3's KGS serves as a base to Grok's or Plone's KGS (for example) Managed Packages: 170 Combined tests: 12217 Currently all tests are passing: http://zope3.pov.lt/buildbot/ (except for some random non-deterministic ZODB-related failures) Plans for Zope 3.4 Yes, there is a plan! Work on a Zope 3 KGS based release since November 2007 (3.4.0b2) Most recent release: September 5, 2008 (3.4.0c7) Commitment to produce a tree-based source release We have a script to do this for us. No commitment on a time scale due to lack of interest Zope 3.4 Release Work done Create a KGS with all tests passing Release process Backward-compatibility Work to be done Script to produce change log Tweaks to the KGS site (i.e. include dates in release, improve wording, maybe a skin) Cut the release and announcement Trends Stability Performance Scalability 5 of 8 8/3/09 10:03 AM
  • 6. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html Portability Security Deployment Stability Only few enhancements to the core packages' feature sets Lots of bug fixes Several buildout recipes provide features to maintain code Performance lovely.responsecache / z3c.versionedresource / z3c.resourcecollector ZODB BLOB support zc.zodbactivitylog / z3c.zodbtracing / z3c.profiler RelStorage (RDB storage backend for ZODB) ZODB Object Cache improvements z3c.pt from Malthe Borch improves rendering 18-20 times Keas pays Malthe to port z3c.form*, z3c.template, z3c.pagelet, z3c.macro to z3c.pt Scalability lovely.memcached / lovely.session (memchached integration) lovely.remotetask / zc.async (async-based task execution) gocept.zeoraid (A RAID controller system for ZODB) z3c.extfile (Storing files external to Zope App) Soon: keas.messaging, an Amazon Simple Queue Service connector Soon: keas.sharding, a sharding solution for the ZODB Portability Good support for WSGI Support for Paster Google Summer of Code project to port Zope libraries to Jython Initial Google App Engine work Security z3c.password (Advanced password generation and verification utility) 6 of 8 8/3/09 10:03 AM
  • 7. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html z3c.tan (Temporarily granting additional permissions) z3c.securitytool (Discovery of security settings) gocept.registration (Hash-based registration confirmation) keas.kmi (Key Management Infrastructure - PCI and HIPAA compliant) Unfortunately Common Criteria certification cancelled Deployment buildout many recipes zc.sourcerelease (creates complete archives) Relevance to Plone All Zope 3 packages can be used within Plone some integration (Five) code might be needed Zope 3 packages usually do not have a UI for example: z3c.form --> plone.z3cform buildout also changed the deployment story for Plone Scalability and performance tuning benefits Plone directly The Future Package dependency resolution Easier entry into Zope 3 world Stablize core further Concentrate on scalability Build more add on packages Challenges Rich client-side apps lessens importance of heavy app servers Opportunity and Challenge Web 2.0 and REST Much more JS support needed Zope becomes a middleware server Documentation In case you wonder ... 7 of 8 8/3/09 10:03 AM
  • 8. The State of Zope 3 file:///Users/aclark/Desktop/StateOfZope3-PC08.html I joined a startup called Keas, Inc. Preliminary site: keas.com We are in stealth mode, so I cannot give many specifics yet We are looking for Zope 3 and other Web developers in SF and NY Questions and Comments 8 of 8 8/3/09 10:03 AM