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:
Hi there,

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 EuroPython.

Note that it doesn't matter where the eggs are physically installed.
What matters is that the Zope startup scripts include the eggs being uses in
their paths.

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
      egg versions.
  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
Python install.

- 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 generated automatically, based on information provided in the buildout configuration.

Would you

Certainly :)

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 change 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
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to