Philipp von Weitershausen wrote:
On 3 Feb 2007, at 22:13 , Martin Aspeli wrote:
Philipp von Weitershausen wrote:
You don't have to. You can still ship Plone 3.0 as a traditional
tarball for now, though not one for INSTANCE/Products but one for
INSTANCE/lib/python. In that tarball, you have a 'Products'
directory with all the old products in it. Just the __init__.py
needs to say pkg_resources.declare_namespace('Products'). That
was really all of my point. Plone 3.0 can be *1* tarball :)
True. However, that may make it harder using eggs for the plone.*
namespace.
Why?
Because if lib/python/plone/locking was the source of plone.locking,
then I presume setuptools wouldn't know about it. You then couldn't
interrogate it using tools like yolk, or update it using easy_install.
Similarly, a non-egg'd lib/python/Products/statusmessage would not be
known to setuptools; if we then released an egg of statusmessage, the
two could conflict.
I would say that if we want to have lib/python/Products it should
be for real eggs. If we're not using eggs, then Products/ is
better, since it keeps the two separate.
Why would you want to keep them separate? Who cares about that
separation?
I imagine the developers who eventually migrate those things to "proper"
eggs. I'm not sure how hard it would be to manage this, it just feels to
me like having a tree in lib/python full of code that we were "manually"
managing would be a step backwards when everything in there *except* for
the Product.* ones can be released as eggs (and they could too if we
organised ourselves).
I may be getting too concerned, though. It's mostly a gut feeling.
That means we need to do a bit of a setuptools dance (probably not
too hard, possibly harder to convince the PAS and CMF guys to
bother) and make eggs there. Of course, that doesn't preclude
people from putting stuff in Products/ it just means that the
svn:externals link gets a another directory longer or so.
Realistically, we're going to have to support and document doing it
the $INSTANCE_HOME/Products/ way for a long, long time anyway.
Support: yes. Encourage: ?
Well, we already (or at least as of 3.0) strongly encourage people to
make eggs instead of products. Just not Products.* eggs. :)
Yes. My proposal is pretty much superfluous. Yay!
There's still the entry point bit, no? I mean, for products outside
Products.*
Well that's the point. The entry point bit is superfluous (the
namespace stuff isn't).
Right. So Zope scans Products.* in the PYTHONPATH, I guess. I was
thinking about things outside Products.* wanting to be discovered by
Zope. I suppose we have ZCML slugs which are similar, but they present a
similar deployment problem.
Martin
_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team