On Jun 16, 2006, at 9:21 AM, Martijn Faassen wrote:
Jim Fulton wrote:
On Jun 15, 2006, at 10:42 AM, Martijn Faassen wrote:
I'm trying to develop with eggs now in a straight Zope 3.3
instance. I've make it all work with Schooltool, but that's
hardly a "normal" Zope 3 install, and now I'm trying to figure
out the way of working with egg dependencies in the face of a
Zope 3 instance home setup.
I'm working on something sort of along the same lines, but more
See the fledgeling zc.buildout project:
I looked at it for a bit, but I was a bit confused about the goals
of the project.
Perhaps something could be added to the README that explains what
kind of usecases this project is covering?
What does one do when one wants to set up an application into a
Zope 3 instance, say?
We don't have a Zope 3 instance recipe yet, but when we do, you'd
define a part, which is an instance, and, in the configuration of
that part, you'd
define what eggs you want. You won't have to define the dependencies
of the eggs,
as they will be installed automatically.
I expect to have the necessary recipes to demonstrate this at
Note that it doesn't matter where the eggs are physically installed.
What matters is that the Zope startup scripts include the eggs being
Anyway, I considered using zc.buildout but was a bit lost, and just
reverted to a simple approach.
Well, it is still evolving. Note that the ac.buildout project itself
is an example of a buildout.
I expect that there will be other examples in the near future.
Some things to note:
- We install scripts that have paths baked into them.
This has a number of advantages:
o You don't need a custom site.py.
o You can have multiple scripts that use different
o You don't need Python path set in special ways
o Scripts don't have to load setuptools
Those are indeed nice features. One of the things that bothers me
about eggs is the amount of site.py hackery that seems to be going
on. It works, but it just feels rather too magic.
Yup. I think it is a mistake to think of an application as being like a
- There is a test-runner recipe that generates a test runner
script based on eggs to be tested.
It was my intent to use this to manage eggs-based Zope
By this you mean an egg-managed Zope itself, right? I'm just
interested in getting eggs working with Zope 3 instances.
Right. When you checked out Zope, you'd get a buildout.
You'd have one or more source areas holding the software that was
actually part of the Zope project.
When you ran the buildout script, the source areas wold be
installed as develop egg links. All of their dependencies would be
installed as regular eggs. The buildout actually uses easy_install to
fetch any needed eggs.
Any script, like test runners or server control scripts will be
automatically, based on information provided in the buildout
I plan to present this work at EuroPython.
I saw it in the program and will attent the talk with interest. :)
Concretely, what do you think about making lib/python in a Zope 3.3
instance a site for now (calling site.addsitedir())?
I think it's a bad idea, mainly because it's too late to make such a
for 3.3. I tell you what I will do though, I'll promise, by the end
of EP, to
have a buildout that lets you define Zope 3.3 instances with the eggs
of your choice.
Jim Fulton mailto:[EMAIL PROTECTED] Python
CTO (540) 361-1714
Zope Corporation http://www.zope.com http://www.zope.org
Zope3-dev mailing list