Folks, There is a lot of exciting development happening in Zope 3, which is open to the public in CVS, and it's really an answer to many of the concerns raised in the "open letters" in the past few days. Here are some of the things happening: - The structure of the Python packages has been redone. It will be much easier to see which packages can be used independently of Zope and which are meant for the Zope application. (There are many packages that can be separated already, but it's not easy to figure out.) - The new component architecture is having a very positive impact. Deep multiple inheritance is a thing of the past. The Python code is free of Zope framework clutter, besides occasional ZODB details. - There are interfaces for everything from authorization to folders, so the API is being documented as it is written. - ZPublisher has been refactored significantly and renamed to "Zope.Publisher". No more string exceptions, no more "maybe_webdav" hacks, no more publishing modules. Interfaces exist and more are planned. - The HTTP server has been redone. It is more optimized and there is a cleaner separation of the server (now "Zope.Server") and the publisher, making it easier to create alternate front-ends to the publisher (for speed). There are also tuning options. - There are unit tests for *everything*. - We're using page templates instead of DTML. I invite everyone to check out Zope 3X right away. But before you do, read carefully: We are first creating "Zope 3X", a version of Zope that is not compatible with Zope 2. We are taking off the shackles and blazing forward, applying the lessons we learned from Zope 2 and CMF. Soon we will create "Zope 3". Zope 3 will add Zope 2 backward compatibility. MINI-FAQ ======== Q: What is Zope 3X? A: Zope 3X is Zope rebuilt from the ground up, applying the lessons learned from Zope 2 and CMF. Q: What is Zope 3? A: Zope 3 is Zope 3X plus compatibility with Zope 2 products. Q: Will Zope 3X be compatible with Zope 2 products? A: No. Q: Will Zope 3 be compatible with Zope 2 products? A: Yes. Q: Will Zope 3X support DTML? A: Probably not. Q: Will Zope 3 support DTML? A: Yes. Q: Will Zope 3X be compatible with CMF? A: No. Q: Will Zope 3 be compatible with CMF? A: Very likely, but a lot of the CMF ideas will be folded directly into Zope 3. You might not need CMF anymore. Q: Are Zope 3X and Zope 3 licensed under the new GPL-compatible ZPL 2.0? A: Yes. Q: Why is Zope Corp. doing all this rearchitecting when Zope really needs feature XX? A: To make it easier for you, the developer. We make the flour, you make the cake. (Zope corp. will create major components also, but the best way to expand Zope is to empower developers.) Q: What is the component architecture? A: It's similar to other component architectures in that it lets you fit small pieces of functionality together. While Zope 2 has many parts welded together with inheritance, Zope 3 will let you take things apart and put them together like legos. See: http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/VisionState... Q: How hard will it be to migrate a product to the component architecture? A: There are patterns emerging that should make it straightforward and much easier than starting from scratch. Q: Is I18N in the plans? A: Yes. It is time to start planning for internationalization. If this is your strength, download and get to know Zope 3X and the component architecture wiki, get involved in the community, and please help! Q: How can I help? A: If you're interested in helping and you have time, educate yourself on the component architecture and Zope 3X then volunteer to assist in your particular area of expertise. Q: Is there a tutorial? A: Yes! Look at the /Docs directory in CVS. Note that it's still in development. Q: When will Zope 3 be ready? A: I don't really know, but it's moving forward quickly. INSTRUCTIONS ============ To check out Zope 3X from CVS: cvs -d :pserver:cvs.zope.org:/cvs-repository co -r Zope-3x-branch Zope3 To check out the tutorial: cvs -d :pserver:cvs.zope.org:/cvs-repository co -d Tutorial \ /Docs/ZopeComponentArchitecture/PythonProgrammerTutorial Zope 3X requires Python 2.2b2. To compile the extensions, run "python2.2 stupid_build.py". To start the HTTP server on port 8080, "python2.2 z3.py" (it's very barebones right now; all the meat is in the code.) To run all unit tests in /bin/bash (over 250 of them!): PYTHONPATH=lib/python python2.2 utilities/unittestgui \ Zope.Testing.allZopeTests Again, this is all quite exciting and I hope you can join the action. Shane
From: "Shane Hathaway" <shane@zope.com>
- The new component architecture is having a very positive impact. Deep multiple inheritance is a thing of the past.
Oh, DARN! I've been holding Zope up as an example that multiple inheritence DOES work to the people who religiously claim otherwise! :-)
A couple of additions to my mini-FAQ: Q: Will there be an official "Zope 3X" release? A: No. It will be available via CVS. Zope 3X is for developers only. Q: Is the component architecture set in stone? A: No, and we hope you'll give feedback, especially in the wiki. Shane
--- Shane Hathaway <shane@zope.com> wrote:
A couple of additions to my mini-FAQ:
Q: Will there be an official "Zope 3X" release? A: No. It will be available via CVS. Zope 3X is for developers only.
Hmmm, I get the feeling that if it is good enough, it might get "released" anyway... Kinda like the way those "killer bees" escaped from the lab. -Casey __________________________________________________ Do You Yahoo!? Buy the perfect holiday gifts at Yahoo! Shopping. http://shopping.yahoo.com
Zope 3X requires Python 2.2b2.
Shane Are you sure you mean Python2.2b2? I tried this but seem to get problems with the pyexpat module. Would a different version do, Or have you solved any problems with the pyexpat module in 2.2.b2? I have added a few print statements to my xml.sax.__init__.py and commented out the try, except block around the import of expatreader.py lines 16,18-22 This gives me a more usfull traceback: [root@legolas Zope3]# python2.2 z3.py ['xml.sax.expatreader'] xml.sax.expatreader Traceback (most recent call last): File "z3.py", line 38, in ? config(os.getcwd()) File "/usr/local/zope/Zope3/lib/python/Zope/App/config.py", line 34, in config xmlconfig(file) File "/usr/local/zope/Zope3/lib/python/Zope/Configuration/xmlconfig.py", line 96, in xmlconfig parser=make_parser() File "/usr/local/Python2.2b2/Lib/xml/sax/__init__.py", line 83, in make_parser return _create_parser(parser_name) File "/usr/local/Python2.2b2/Lib/xml/sax/__init__.py", line 107, in _create_parser drv_module = __import__(parser_name,{},{},['create_parser']) File "/usr/local/Python2.2b2/Lib/xml/sax/expatreader.py", line 17, in ? from xml.parsers import expat File "/usr/local/Python2.2b2/Lib/xml/parsers/expat.py", line 4, in ? from pyexpat import * ImportError: No module named pyexpat Cheers -AndyD
Hello. Just for fun ... I tried to run the tests too. I built Python2.2b2 from source and had to manually modify the Setup.dist file to build and include pyexpat. I then ran the zope test suite and all passed except one ... Traceback (most recent call last): File "/usr/local/namaste/zfs-lib/zope/zope-3.0.0/lib/python/Zope/TAL/tests/test_xmlparser.py", line 114, in check_simple_html self._run_check("""\ File "/usr/local/namaste/zfs-lib/zope/zope-3.0.0/lib/python/Zope/TAL/tests/test_xmlparser.py", line 95, in _run_check self.assert_(parser.get_events() == events, parser.get_events()) File "/usr/local/namaste/zfs-lib/lib/python2.2/unittest.py", line 256, in failUnless if not expr: raise self.failureException, msg AssertionError: [('starttag', u'html', []), ('data', u' \n'), ('comment', u'comment1a\n-></foo><bar><<?pi?></foo<bar\ncomment1b'), ('data', u'\n'), ('starttag', u'img', [u'src', u'Bar', u'ismap', u'']), ('endtag', u'img'), ('data', u'sample\ntext\n'), ('comment', u'comment2a- -comment2b'), ('data', u'\n'), ('endtag', u'html')] I'm ran on the linux platform with expat built from source (version 1.2 - ftp://ftp.jclark.com/pub/xml/expat-1.2.tar.gz). regards, - j p.s. It is my own personal taste but I don't really care for the tkgui interface for running the zope test suite. Any possibilites of making the test suite run in a fashion similar to the python installation test suite? At Tue, 04 Dec 2001 12:37:12 +0000, Andy Dawkins wrote:
Zope 3X requires Python 2.2b2.
Shane
Are you sure you mean Python2.2b2?
I tried this but seem to get problems with the pyexpat module.
Would a different version do, Or have you solved any problems with the pyexpat module in 2.2.b2?
I have added a few print statements to my xml.sax.__init__.py and commented out the try, except block around the import of expatreader.py lines 16,18-22
This gives me a more usfull traceback:
[root@legolas Zope3]# python2.2 z3.py ['xml.sax.expatreader'] xml.sax.expatreader Traceback (most recent call last): File "z3.py", line 38, in ? config(os.getcwd()) File "/usr/local/zope/Zope3/lib/python/Zope/App/config.py", line 34, in config xmlconfig(file) File "/usr/local/zope/Zope3/lib/python/Zope/Configuration/xmlconfig.py", line 96, in xmlconfig parser=make_parser() File "/usr/local/Python2.2b2/Lib/xml/sax/__init__.py", line 83, in make_parser return _create_parser(parser_name) File "/usr/local/Python2.2b2/Lib/xml/sax/__init__.py", line 107, in _create_parser drv_module = __import__(parser_name,{},{},['create_parser']) File "/usr/local/Python2.2b2/Lib/xml/sax/expatreader.py", line 17, in ? from xml.parsers import expat File "/usr/local/Python2.2b2/Lib/xml/parsers/expat.py", line 4, in ? from pyexpat import * ImportError: No module named pyexpat
Cheers
-AndyD
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
On Tue, Dec 04, 2001 at 10:37:55PM +0900, Joseph Wayne Norton wrote:
p.s. It is my own personal taste but I don't really care for the tkgui interface for running the zope test suite. Any possibilites of making the test suite run in a fashion similar to the python installation test suite?
You can just use the standard unittest module to run a text version of the tests. On my machine, unittest.py is executable, and I just type: PYTHONPATH=./lib/python /usr/lib/python2.2/unittest.py Zope.Testing.allZopeTests This is all one line, in bash. In csh, you'll have to set the PYTHONPATH env var by hand beforehand, I believe. -- Martijn Pieters | Software Engineer mailto:mj@zope.com | Zope Corporation http://www.zope.com/ | Creators of Zope http://www.zope.org/ ---------------------------------------------
On Tuesday, December 4, 2001, at 06:37 AM, Joseph Wayne Norton wrote: [SNIP[
p.s. It is my own personal taste but I don't really care for the tkgui interface for running the zope test suite. Any possibilites of making the test suite run in a fashion similar to the python installation test suite?
You can run unittest.py directly. Instead of doing "python2.2 utilities/unittestgui.py ...", do "python2.2 /usr/local/lib/python2.2/unittest.py ..." (based on wherever your python2.2 libraries are). It works just the same.
Andy Dawkins wrote:
Zope 3X requires Python 2.2b2.
Are you sure you mean Python2.2b2?
I tried this but seem to get problems with the pyexpat module.
Would a different version do, Or have you solved any problems with the pyexpat module in 2.2.b2?
Make sure you have expat, including the headers, installed when compiling Python (independently of Python). On Mandrake 8.1 I installed the RPMs libexpat1_95-1.95.2-1mdk, libexpat1_95-devel-1.95.2-1mdk, and expat-1.95.2-1mdk. Shane
YAY *There was much rejoicing* Thanks Shane, once again you have solved my problems. -Andy Shane Hathaway wrote:
Andy Dawkins wrote:
Zope 3X requires Python 2.2b2.
Are you sure you mean Python2.2b2?
I tried this but seem to get problems with the pyexpat module.
Would a different version do, Or have you solved any problems with the pyexpat module in 2.2.b2?
Make sure you have expat, including the headers, installed when compiling Python (independently of Python). On Mandrake 8.1 I installed the RPMs libexpat1_95-1.95.2-1mdk, libexpat1_95-devel-1.95.2-1mdk, and expat-1.95.2-1mdk.
Shane
Shane Hathaway wrote:
Q: Will Zope 3X be compatible with Zope 2 products? A: No.
What's up with the ZopeLegacy stuff in the co I'm getting now? Yes I am grabbing the branch...
To check out Zope 3X from CVS:
cvs -d :pserver:cvs.zope.org:/cvs-repository co -r Zope-3x-branch Zope3
:pserver:anonymous@cvs.zope.org:/cvs-repository And don't forget cvs login.
Again, this is all quite exciting and I hope you can join the action.
I hope to. Who's in charge of packaging and installation? I see an opportunity to do it right this time, I hope I'm not too late to the party.
Behrens Matt - Grand Rapids wrote:
Shane Hathaway wrote:
Q: Will Zope 3X be compatible with Zope 2 products? A: No.
What's up with the ZopeLegacy stuff in the co I'm getting now? Yes I am grabbing the branch...
ZopeLegacy is the home of the compatibility layer. It's symlinked in.
To check out Zope 3X from CVS:
cvs -d :pserver:cvs.zope.org:/cvs-repository co -r Zope-3x-branch Zope3
:pserver:anonymous@cvs.zope.org:/cvs-repository
And don't forget cvs login.
Oops, you're right. Thanks.
Again, this is all quite exciting and I hope you can join the action.
I hope to. Who's in charge of packaging and installation? I see an opportunity to do it right this time, I hope I'm not too late to the party.
Now is a good time. Join zope3-dev@zope.org and post your thoughts. BTW another correction: it turns out we will be implementing some DTML in Zope 3X. Shane
BTW another correction: it turns out we will be implementing some DTML in Zope 3X.
acckkk... why?
Because it still has legitimate uses (try formatting a MIME-multipart email message with ZPT...). The beauty of Z3, though, is that you should have much more flexibility in what you choose to use. Don't like DTML? Don't use it. Really hate it and feel motivated? Implement an alternative templating framework that works better for particular needs. I think the Z3 architecture will make it much easier to "use the right tool for the job". Brian Lloyd brian@zope.com Software Engineer 540.361.1716 Zope Corporation http://www.zope.com
The beauty of Z3, though, is that you should have much more flexibility in what you choose to use. Don't like DTML? Don't use it. Really hate
Thats really not the problem imho. The problem is that some products will use DTMLFile and standard_html_header/footer, and that is a real mess... /Magnus
Matt Behrens wrote:
Shane Hathaway wrote:
Again, this is all quite exciting and I hope you can join the action.
I hope to. Who's in charge of packaging and installation? I see an opportunity to do it right this time, I hope I'm not too late to the party.
I think this is an excellent area to bring in community members and let them have some ownership. There are a number of interesting initiatives out there -- in no particular order, Andy McKay, Andrew Milton, Adrian Hungate, Kapil Thangavelu, and Amos Latteier. We're interested in bringing more people into the core and giving them room to make decisions and have influence. It's an important lesson from the discussions over the last few days -- we don't scale that well and we need more leadership in the core. Thus, I'm looking for a couple of people willing to shepherd areas such as packaging and make a serious commitment for a fair duration. --Paul
participants (12)
-
Andy Dawkins -
Brian Lloyd -
Casey Duncan -
Chris Withers -
Jeffrey P Shell -
Joseph Wayne Norton -
Lennart Regebro -
Magnus Heino -
Martijn Pieters -
Matt Behrens -
Paul Everitt -
Shane Hathaway