Re: [Zope3-dev] Re: zope.dottedname doesn't have a CHANGES.txt (again?)

2007-10-02 Thread Stephan Richter
On Tuesday 02 October 2007 17:14, Jim Fulton wrote:
> One hole I see is giving people guidance on what needs to be tested  
> (and how) before a release is made.  My preference would be to rely  
> heavily on judgement with a few checks so as not to make things too  
> heavy.  This might rule out some releasers.

I want tools! Actually, I just want one tool. 70% of the release process is 
repetition and that needs to be factored into a tool. This tool should have 
been written before the Zope trunk was blown into pieces, but it wasn't. :-(

There is no way that we will be able to support this many packages in the 
future, if we keep doing this manually. I have already spent days on doing 
eggs, when I really just wanted to code. :-(

Marius and I wrote down some notes what such a tool could do. I hope he will 
post them here.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: New package zc.configure provides an exclude directive for excluding zcml files

2007-10-02 Thread Philipp von Weitershausen

Jim Fulton wrote:

On Oct 2, 2007, at 3:29 AM, Martijn Faassen wrote:


Jim Fulton wrote:

[snip]
Maybe grok was already trimmed down.  In my case, I basically 
eliminated all ZMI support (since I didn't need it).  I got about 40%,


Grok is trimmed down in the sense that it doesn't depend on all Zope 3 
packages, though due to the interesting dependency structure it still 
relies on about 100 eggs. We didn't do any trimming down of ZMI support.


Note that it wasn't my goal to trim the number of eggs I got, although 
trimming that, or, in theory, using zipped eggs would speed startup as 
well.  I'm using the zope.app.zcmlfiles egg as my base.


Would it be possible to get a list of exclude statements that you use 
to eliminate ZMI support in your project? I imagine our list is far 
from complete.


Here is the zcml file I'm including rather than incliding 
zope.app.zcmlfiles/configure.zcml:

[snip]

+1 to that approach. I think in the long term, egg-based Zope 
application should want to get away from zope.app.zcmlfiles In 
particular, zope.app.zcmfiles is the epitome of the ZMI app: it loads 
all the browser stuff and configures the zmi_actions + zmi_views menu.


Not loading zope.app.zcmlfiles but instead selectively loading only the 
stuff we need will likely reduce the ZCML processing time as well.


Death to zope.app.zcmlfiles!



--
http://worldcookery.com -- Professional Zope documentation and training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: AW: major packaging reorganization happening in 3.4releases?

2007-10-02 Thread Philipp von Weitershausen

Roger Ineichen wrote:

On 02.10.2007, at 14:25, Jim Fulton wrote:


On Oct 2, 2007, at 5:25 AM, Martijn Faassen wrote:


Hi there,

Besides causing us a lot of problems here at the Grok 
sprint, I also 
wonder why in the world are we doing major packaging 
reorganizations 
and releasing them as minor 3.4.x releases? You'd think such a 
reorganization would warrant a 3.5 release!


Sorry, I can't resist to answer the question with some 
black humor:


I don't know, probably ask the release manager.
Ah, right, we do not have a releas manager anymore since 
all developer have to release their eggs by itself. 


Sorry, but blaming this on the eggification is just a cheap shot. We 
*do* have a release manager for 3.4. His name is Christian Theune. He 
wrote a wiki page [1] that specifically spells out instructions for 
release 3.4.x. eggs. And the 3.4.x eggs are in *stabilization*, as the 
wiki page accurately says. Stabilization does *NOT* imply moving stuff 
around like you did. This is 3.5.x business.


Again, don't take it personal! I'm not pointing with 
my finger to anybody. I just point my finger on the

situation we have right now.


I'm much in favour of the work you're doing (separating pure Python 
components from their browser views). But with all due respect, Roger, 
all you've been doing right now is pointing your finger at this 
situation. I think a more constructive point of view would be looking at 
how we can *improve* this situation. Let's hear it: what's *your* 
suggestion?


But what does slowdown mean? Do we need to slowdown the 
development or do we have to slowdown releasing eggs?


I *think* that Jim means slow down refactoring things and moving things 
around. Releasing already *stable* stuff is perfectly ok.


Or do we need to slow down till we have a better development 
process or tools? If so, can we make progress on that?


We should definitely discuss the development process. I've tried to 
write down some rules [2]. Let's discuss those. Let's improve them. 
Let's stick to them in the future.


The last two weeks have given us perfect examples of what NOT to do. I 
think we can all agree on that. Most of could've been avoided if the 
process had been followed. At this point, I don't really care much about 
what the process is, as long as it's clear, reliable and easy to follow.




[1] http://wiki.zope.org/zope3/StabilizeEggPackages
[2] 
http://svn.zope.org/*checkout*/Sandbox/philikon/foundation/maintaining-software.txt


--
http://worldcookery.com -- Professional Zope documentation and training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: zope.dottedname doesn't have a CHANGES.txt (again?)

2007-10-02 Thread Jim Fulton


On Oct 2, 2007, at 5:05 PM, Philipp von Weitershausen wrote:


Martijn Faassen wrote:
A release of zope.dottedname was made apparently today that refers  
to a CHANGES.txt but doesn't have one. Probable scenario: someone  
forgot to svn add a CHANGES.txt, then didn't check out before the  
tag before releasing...


Right. This is actually a *common* mistake. Not everybody believed  
me when I sad that it was. I think we've got proof of this once  
more now.


A couple of days ago I added some very explicit instructions on how  
you should make a release to my guide [1]. Basically it says you  
should *first* make a tag and only create the release *from the  
tag*. I hope that people will take this more seriously now.


I do,

It's not that I consider my guide to be a papal edict (I'm not Jim,  
after all),


:)

It would help if you would split out the release making part so we  
can focus on that.


but it *is* based on experience and best practices. Having made  
releases for many Zope eggs (if you want proof, just look at [2]),  
I think I can safely say that I know my way around the pitfalls now.


Agreed.

That said, I welcome any suggestion that other people have while  
creating releases. We need to get better at this stuff!


Yup. See above about separating the release instructions.

One hole I see is giving people guidance on what needs to be tested  
(and how) before a release is made.  My preference would be to rely  
heavily on judgement with a few checks so as not to make things too  
heavy.  This might rule out some releasers.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: zope.dottedname doesn't have a CHANGES.txt (again?)

2007-10-02 Thread Philipp von Weitershausen

Martijn Faassen wrote:
A release of zope.dottedname was made apparently today that refers to a 
CHANGES.txt but doesn't have one. Probable scenario: someone forgot to 
svn add a CHANGES.txt, then didn't check out before the tag before 
releasing...


Right. This is actually a *common* mistake. Not everybody believed me 
when I sad that it was. I think we've got proof of this once more now.


A couple of days ago I added some very explicit instructions on how you 
should make a release to my guide [1]. Basically it says you should 
*first* make a tag and only create the release *from the tag*. I hope 
that people will take this more seriously now.


It's not that I consider my guide to be a papal edict (I'm not Jim, 
after all), but it *is* based on experience and best practices. Having 
made releases for many Zope eggs (if you want proof, just look at [2]), 
I think I can safely say that I know my way around the pitfalls now. 
That said, I welcome any suggestion that other people have while 
creating releases. We need to get better at this stuff!



[1] 
http://svn.zope.org/*checkout*/Sandbox/philikon/foundation/maintaining-software.txt

[2] http://wiki.zope.org/zope3/StabilizeEggPackages


--
http://worldcookery.com -- Professional Zope documentation and training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



AW: [Zope3-dev] major packaging reorganization happening in 3.4releases?

2007-10-02 Thread Roger Ineichen
Hi all

> Betreff: Re: [Zope3-dev] major packaging reorganization 
> happening in 3.4releases?
> 
> 
> On 02.10.2007, at 14:25, Jim Fulton wrote:
> 
> >
> > On Oct 2, 2007, at 5:25 AM, Martijn Faassen wrote:
> >
> >> Hi there,
> >>
> >> Besides causing us a lot of problems here at the Grok 
> sprint, I also 
> >> wonder why in the world are we doing major packaging 
> reorganizations 
> >> and releasing them as minor 3.4.x releases? You'd think such a 
> >> reorganization would warrant a 3.5 release!

Sorry, I can't resist to answer the question with some 
black humor:

I don't know, probably ask the release manager.
Ah, right, we do not have a releas manager anymore since 
all developer have to release their eggs by itself. 

I think this question/answer describes our problem
very well we have now.

Again, don't take it personal! I'm not pointing with 
my finger to anybody. I just point my finger on the
situation we have right now.

> > Agreed. Someone needs to sloow down.  "Speed kills." 
> deserves to 
> > be added to the Zen of Python. (Actually, ZoP does have a 
> variation of 
> > that.)
> 
> +100.
> that was the most unproductive week in lovely systems HQ ever.

I agree, but that's another topic...
...and probably I'm the person to blame.

But what does slowdown mean? Do we need to slowdown the 
development or do we have to slowdown releasing eggs?

Or both?

Or do we need to slow down till we have a better development 
process or tools? If so, can we make progress on that?


Regards
Roger Ineichen

> jodok
> 
> >
> > Jim
> >
> > --
> > Jim Fulton
> > Zope Corporation
> >
> >
> > ___
> > Zope3-dev mailing list
> > Zope3-dev@zope.org
> > Unsub: http://mail.zope.org/mailman/options/zope3-dev/batlogg.lists%
> > 40lovelysystems.com
> >
> 
> --
> "Beautiful is better than ugly."
>-- The Zen of Python, by Tim Peters
> 
> Jodok Batlogg, Lovely Systems
> Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
> phone: +43 5572 908060, fax: +43 5572 908060-77
> 
> 
> 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] major packaging reorganization happening in 3.4 releases?

2007-10-02 Thread Jodok Batlogg


On 02.10.2007, at 14:25, Jim Fulton wrote:



On Oct 2, 2007, at 5:25 AM, Martijn Faassen wrote:


Hi there,

Besides causing us a lot of problems here at the Grok sprint, I  
also wonder why in the world are we doing major packaging  
reorganizations and releasing them as minor 3.4.x releases? You'd  
think such a reorganization would warrant a 3.5 release!


Agreed. Someone needs to sloow down.  "Speed kills." deserves  
to be added to the Zen of Python. (Actually, ZoP does have a  
variation of that.)


+100.
that was the most unproductive week in lovely systems HQ ever.

jodok



Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/batlogg.lists% 
40lovelysystems.com




--
"Beautiful is better than ugly."
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 908060-77




smime.p7s
Description: S/MIME cryptographic signature
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 26, 2007, at 6:14 PM, Jim Fulton wrote:
...
I agree that the develop egg case is problematic.  I'd like to  
think about that.


Well, I thought and I thought 

I could probably arrange that develop eggs created by buildout got  
their versions from the buildout spec. Something like:


  [buildout]
  develop =
 . ==1.4
 foo ==2.1

This would override whatever version was given in setup.py.

This wouldn't help people who don't develop with buildout though.

Alternatively, we could add some API that would allow our setup files  
to take a --version argument.


So our setup files on the trunk or branches might have something like:

  setup(
 version = comman_line_version()

or something.  I'm not an expert on extending setuptools.

I'm somewhat pessimistic about getting new features in setuptools as  
0.7 seems to have fairly grandiose objectives.  There don't seem to  
be incremental feature releases planned. :(


I have a feeling that we/I should learn how to extend setuptools to  
get the features we need.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 27, 2007, at 8:00 AM, Philipp von Weitershausen wrote:
...
buildout setup? I've never seen that. I can't find any  
documentation on it in zc.buildout.


G. Sure enough, the documentation doesn't mention it.  That's an  
annoying documentation bug,  I'm pretty sure it was documented at one  
time. Also, some examples in the documentation use it.




How does it work?


bin/buildout setup  setup arguments ...




Does it call setup.py for every development egg in buildout.cfg?


No.


Why not just call python setup.py?


Because:

- The setup you are invoking uses setuptools and you are using a  
clean Python, or


- The the setup.py you're using doesn't use setuptools but you want  
to use setuptools commands.


Basically, the setup command is a convenience that gets setuptools  
into the path and imported before invoking the given setup.  I find  
this quite useful.  One annoyance is that, although there are  
workarounds, it generally wants there to be a buildout.cfg file  
around and I often want to use it to run a setup.py that has nothing  
to do with a buildout.


Jim



--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 27, 2007, at 7:37 AM, Philipp von Weitershausen wrote:


On 27 Sep 2007, at 12:20 , Stephan Richter wrote:
egg_info does not validate the trove classifiers, for example. I  
tried this

last night before writing this mail.


Well, to be honest, I wonder how you can mess up with the  
classifiers. I just always copy them from http://pypi.python.org/ 
pypi?%3Aaction=list_classifiers. Anything else is just insane...


The classifiers are a PITA.  I suspect we should be very restrictive  
in using them.


It's especially annoying that release status can generally be  
inferred from the version number.


I'm beginning to wonder if we should have some setuptools extensions  
that automate some of these things,


Another idea I've been thinking about is a custom index that is used  
rather than PyPI.  The main motivation was to automate management of  
non-public distributions, but such a front end could also automate  
some aspects of releases that setuptools doesn't handle.


But, if you wish for such a tool, let your wish be my command. With  
the attached verifyclassifiers.py script, you may do so using the  
following command:


  python setup.py --classifiers | python verifyclassifiers.py


Cool.

Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] zope.dottedname doesn't have a CHANGES.txt (again?)

2007-10-02 Thread Martijn Faassen

Hi there,

A release of zope.dottedname was made apparently today that refers to a 
CHANGES.txt but doesn't have one. Probable scenario: someone forgot to 
svn add a CHANGES.txt, then didn't check out before the tag before 
releasing...


This is like the third time Grok (trunk *and* the 0.10 release) broke 
during this sprint alone.


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 27, 2007, at 7:18 AM, Philipp von Weitershausen wrote:


On 27 Sep 2007, at 13:07 , Martijn Faassen wrote:

On 9/27/07, Tres Seaver <[EMAIL PROTECTED]> wrote:
[snip]

Further, anybody who finds the effort of creating a "fresh' checkout
bevore making a release too burdensome should consider themselves
self-selected out of the "release manager" pool.

I'm *not* kidding about that:  taking shortcuts durng the release
process transfers pain / cost to everyone downstream.


While I fully agree that releases should be done with care and
attention, and that doing bad releases creates pain/cost for
everybody, this line of argumentation can be used to back up any form
of complication to the release process. :)

Let's focus on the reasons for each step and keep the discussion at
that level, please? I think it's useful if people ask "is that really
necessary?" for steps in the release process. Just weigh the pros and
cons. I'd like to understand more about the trouble Philipp ran into
doing releases from the original checkout and then tagging.


I've summarized this in another thread [1], but I'll be happy to  
elaborate here:


* People actually forget to make the tag. This happened to Roger  
the other day. It happened to Jim before with zc.buildout. I'm not  
mentioning their names to point fingers. I'm just pointing out that  
people who've been with us for a long time forget. If the process  
said they should actually check out the tag, they'll hardly forget.


Having a script we have to mindlessly follow will help.

* People create the wrong tags or tags in the wrong places. This  
happened to Jim the other day with ZODB 3.7.1. Again, I'm not  
blaming him. But I believe if he had to check out the tag to make  
the release, he would've caught his mistake.


I doubt it.  I would have probably just rereleased 3.7.1, possibly  
with 3.7.2 uselessly included.


* People forget to clean up the 'build' directory. This happened to  
me the other day. Let me elaborate: I have a trunk checkout of  
zopeproject that I use to develop it. Whenever I wanted to make a  
release, I'd just prepare it, tag it and generate the distributino  
from the trunk checkout. The problem was that I had moved stuff  
around, but the old stuff was still making it to the egg because it  
still sat around in the 'build' direcdtory that distutils leaves. I  
know it sucks that distutils doesn't clean up after itself, but  
that's just the way it is. If you're forced to use a clean  
checkout, this can't happen.


The build directory is really annoying.

* People forget to check in important files. This happened to Baiju  
the other day. He created a CHANGES.txt file and referred to it  
from setup.py. The only problem is that he forgot to check it in.  
It can happen, I'm not blaming him. The problem is that setuptools  
looks at which files are in svn in order to create the archive  
manifest. So CHANGES.txt wasn't in the tarball and the egg was  
completely uninstallable (because setup.py couldn't be executed  
since CHANGES.txt was missing).


These are four separate cases where I've actually witnessed myself  
or other people mess up. We're forgetful, we can't do anything  
about that. We can, however, force us to catch our mistakes. I  
believe that if we made everybody create the tarballs from the tag,  
it would improve the situation a lot.


I'm beginning to see a consensus that we should make it impossible  
to create distributions from the trunk or a release branch.


Yup. BTW, I find it helpful to test source releases by unpacking them  
and seeing if I can build eggs from the unpacked source.  Of course,  
it would be even better to run the tests.  I suspect that a buildout  
feature could automate this.  Something along the lines of a buildout  
command that: creates distros from the listed develop directories and  
then installs those distros rather than the develop eggs so that  
tests could be run against the distros.  This would probably be  
something good to do when I have some time to get back to buildout.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 27, 2007, at 4:45 AM, Philipp von Weitershausen wrote:


On 27 Sep 2007, at 02:29 , Tres Seaver wrote:

Further, anybody who finds the effort of creating a "fresh' checkout
bevore making a release too burdensome should consider themselves
self-selected out of the "release manager" pool.

I'm *not* kidding about that:  taking shortcuts durng the release
process transfers pain / cost to everyone downstream.


Amen, brother. Well said.


+1

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Couldn't install zope.dottedname-3.4.1

2007-10-02 Thread Tobias Rodäbel

Hi together,

looks like zope.dottedname-3.4.1 is broken.

[snip]
Getting distribution for 'zope.dottedname'.
error: /tmp/easy_install-mLVo5d/zope.dottedname-3.4.1/CHANGES.txt: No  
such file or directory
An error occured when trying to install zope.dottedname 3.4.1.Look  
above this message for any errors thatwere output by easy_install.

While:
  Updating anyband-app.
  Getting distribution for 'zope.dottedname'.
Error: Couldn't install: zope.dottedname 3.4.1
[snip]

Regards,
Tobias
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: PLEASE don't remove eggs [was Re: [Zope3-dev] faulty releases and pypi access [update]]

2007-10-02 Thread Jim Fulton


On Sep 26, 2007, at 10:35 AM, Jim Fulton wrote:
This is also a technical issue:  As long as zc.buildout and  
setuptools

foolishly accept dependency links from an egg, it'll be painful to
detect accidental reliance on external repositories.


That's a good point.  I wouldn't go so far as to say "foolishly",  
but I would say that this is a policy that should be overrideable.   
Checkins to buildout (with tests, of course) accepted.


Sort of that, a feature request in launchpad would be helpful so this  
idea doesn't get forgotten.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: faulty releases and pypi access [update]

2007-10-02 Thread Jim Fulton


On Sep 28, 2007, at 1:36 PM, Dieter Maurer wrote:
...

Your example:

 You have release 1.1.

 You start working on the next release: 1.2dev-r#.

 Someone fixes a bug in 1.1 and releases 1.1.1.

With quite high probability, the bug fix should go as well into
the 1.2 development.

Thus, the problem you describe (1.1.1 is newer than 1.2dev-r;
but it treated as older then 1.2dev by 'setuptools')
has an effect only for a very limited time -- the time until
the fix (1.1 --> 1.1.1) went into the 1.2dev release, which
would probably become some 1.2dev-r!.


Sure, but that time could stretch out quite a bit.  I suppose that  
this problem somewhat inherent in having multiple release branches.   
For example, whatever we do, there will always be the possibility  
that an x.y.z release could have fixes in it that aren't in an x.y+1  
release yet, especially if x.y is a non-final release.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: AW: AW: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Jim Fulton


On Oct 2, 2007, at 9:24 AM, Roger Ineichen wrote:


Hi Jim,


Betreff: Re: AW: [Zope3-dev] zope.app.securitypolicy deferred
imports errors.


[...]


Yes, please do.  It's up to people making changes to use some
judgement.  I mentioned in that thread that when I make changes to
"core" components, I often do test against the old trunk tree.
Despite all of your complaints about the need to do this, you didn't.


That's not true. I did test the package against the trunk.
But the problem was, I also adjusted the imports in the packages.


hehe.  This sort of practice makes any arguments for testing against  
the "trunk" kind of meaningless.




What I was missing is to run the tests against a older version of
the trunk.


So perhaps now you want people to test against old versions of the  
trunk?  How many old versions?


A better approach would have been to add backward compatibility tests  
for each backward-compatibility support change you made, as Lennart  
suggested.  Even then, to be more sure that you caught everything,  
you should have made the changes in two stages:


1. Refactor the package in question providing backward compatibility  
support, including tests of that support.  Test against other  
unchanged packages.


2. Then change the other packages is you must.

...


I know there is no difference between the old trunk and the new egg
development testing. This error whould also happen to me if I where
doing it in the old trunk setup. My problem was not test my work
against a older version of the trunk. Or like Lennart told,
the missing tests for integration (import changes).


The latter.  The 2-step process that we've used in the past would  
also have helped.





I personaly think, less test -- more errors.


So test! What's stopping you?  The old tree is still available!


The crapy "do it by your self test setup" is stopping me really
hard or at least slowing me down right now more then the it should.


Maybe it should slow you down more.


It's not easy to follow all the ideas behind egg, setuptools,
easy_install, buildout in such a speed like we changed to this
patterns. I agree "Speed kills", but I think switch to eggs
force us to "take it all or nothing".


We probably do need more formalized testing/release methodologies. As  
I'm sure Tres and others will rightly point out, there's probably a  
lot we can learn in this area from linux distributors.  In the mean  
time, changing packages that lots of other people depend on requires  
judgement and care.  If you don't think you're up to it, then don't  
try it.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



AW: AW: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Roger Ineichen
Hi Jim,

> Betreff: Re: AW: [Zope3-dev] zope.app.securitypolicy deferred 
> imports errors.

[...]

> Yes, please do.  It's up to people making changes to use some 
> judgement.  I mentioned in that thread that when I make changes to  
> "core" components, I often do test against the old trunk tree.   
> Despite all of your complaints about the need to do this, you didn't.

That's not true. I did test the package against the trunk.
But the problem was, I also adjusted the imports in the packages.

What I was missing is to run the tests against a older version of
the trunk.

[...]

> Most people aren't changing these components. Nevertheless, we still  
> have the old tree available for testing. We didn't lose anything.

I can agree with, we didn't loose anything. So let's say it's not
just there anymore.

> > And this is a very bad idea. If we don't recommend to run
> > all tests again form a single egg refactoring, we will
> > see more errors like this.
> 
> Don't you think it's a little hypocritical bemoaning that we're not  
> doing this when you don't do it yourself?

Again, I did run the tests against the runk, but I didn't recognize
that I should test my changes against a older version of packages.

Probably I'm not that smart to take care on everything and was
trusting on testing to much ;-)

I know there is no difference between the old trunk and the new egg 
development testing. This error whould also happen to me if I where 
doing it in the old trunk setup. My problem was not test my work 
against a older version of the trunk. Or like Lennart told,
the missing tests for integration (import changes).

> > I personaly think, less test -- more errors.
> 
> So test! What's stopping you?  The old tree is still available!

The crapy "do it by your self test setup" is stopping me really 
hard or at least slowing me down right now more then the it should. 

It's not easy to follow all the ideas behind egg, setuptools,
easy_install, buildout in such a speed like we changed to this
patterns. I agree "Speed kills", but I think switch to eggs 
force us to "take it all or nothing".

Regards
Roger Ineichen

[...]

> Jim
> 
> --
> Jim Fulton
> Zope Corporation
> 
> 
> ___
> Zope3-dev mailing list
> Zope3-dev@zope.org
> Unsub: 
> http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch
> 
> 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



AW: [Zope3-dev] Re: AW: AW: Re: AW: Are pagelets content providers?

2007-10-02 Thread Roger Ineichen
Hi Thomas

> Betreff: [Zope3-dev] Re: AW: AW: Re: AW: Are pagelets content 
> providers?
> 
> Roger Ineichen wrote:
> 
> > Yes you are right, that was the reason I didn't define the __init__ 
> > method in the interface. But I still think a IPagelet isn't a 
> > IContentProvider by default. Of corse another class can be 
> defined as 
> > IContentProvider and IPagelet. Such a class whould then provide a 
> > different __init__ method then the pagelet does right now.
> 
> See my other response I wrote before I read this message of yours.

As longer as I think about your idea, you are probably right.

I agree with not declaring __init__ in the interface. That's what
we did. The only concren I have right now with IPagelet is inherited
from IContentProvider is the default TALES expression which 
uses the following code for lookup IContentProvider:

class TALESProviderExpression(expressions.StringExpr):
...
# Try to look up the provider.
provider = zope.component.queryMultiAdapter(
(context, request, view), interfaces.IContentProvider, name)
...

This requieres a specific __init__ method.

What do you recommend to do? I'm open to improve it but how can
we reflect the different adaption concepts like we have with the
different __init__ used by IPagelet and IContentProvider.

I agree that __init__ is not a part of the interface. But I also
think it should be a part of a (probably another) interface since 
this is required by a specific lookup pattern.

But that's probably over designed.

Any idea?


> > Should we implement a z3c.form/z3c.pagelet package? There we could 
> > support z3c.form base classes built up on pagelets.
> > 
> > Probably called z3c.formpagelet which contains IPageletForm, 
> > IPageletAddForm etc.
> 
> This would solve my use case but sounds like a lot of 
> architecture, to be honest. I think this is exactly what I 
> hoped to avoid by pinning the internal communication between 
> pagelets and pagelet renderers down to talking 
> IContentProvider and thereby allowing pagelets to be used as 
> content providers from everywhere. See the "dead chicken" 
> remark in my first reply to you.

Ok, I see your idea

Regards
Roger Ineichen 

> --
> Thomas
> 
> 
> 
> ___
> Zope3-dev mailing list
> Zope3-dev@zope.org
> Unsub: 
> http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch
> 
> 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: AW: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Jim Fulton


On Oct 2, 2007, at 6:03 AM, Roger Ineichen wrote:


Hi Lennart


Betreff: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

Roger Inechens split of zope.app.securitypolicy into
zope.securitypolicy cause loads of problems, because many of
the deferred imports were incorrect. I saw Stefan Richter
fixed some, and I have fixed some more.


Yes you are right


First somebody that can make releases (which may or may not
include me, I honestly don't know who can make releases of
eggs) needs to make a new one. But we also need to avoid this
stuff in the future.


Yes, we always have to avoid errors, but sometimes it happens.
And since we dont test against the trunk, we don't see this
kind of errors anymore. This means we test against custom
projects. I didn't fully recognize this and was trusting the
tests. But I was wrong. We don't have tests for this anymore.
We probably didn't have test for my error at all.

In other words; Right now we only test if a egg works
within their dependency. But we don't test other eggs
if they work with the egg we develop.


See all my different mails about this topic!


Yes, please do.  It's up to people making changes to use some  
judgement.  I mentioned in that thread that when I make changes to  
"core" components, I often do test against the old trunk tree.   
Despite all of your complaints about the need to do this, you didn't.





How is the recommended process to solve this? Some sort of
unittest to make sure the deferred impoirt work? Is there an
example of this somewhere?


I'm proposing to test against a set of possible breaking
stuff. This means we need a kind of zope3 trunk egg which
our test will deoend on.


As I mentioned in the thread you want us to pay attention to, this  
isn't necessary.  In fact, I doubt it would be useful.  I think we  
need a Zope 3 application buildout that builds the traditional Zope 3  
app. You can then introduce a develop egg for the package you are  
changing there.  In the mean time, all you need is a trunk checkout  
and, possibly, to adjust an external. (I don't remember how the  
externals are set up there.)



See the mails form Stpehan Richter about that. Jim also
agrees on that but is thinking this should be optional
as far as I understand the mails between Stephan and Jim.

We defently lost the overall tests we had in the trunk setup.


Most people aren't changing these components. Nevertheless, we still  
have the old tree available for testing. We didn't lose anything.



And this is a very bad idea. If we don't recommend to run
all tests again form a single egg refactoring, we will
see more errors like this.


Don't you think it's a little hypocritical bemoaning that we're not  
doing this when you don't do it yourself?


...


I personaly think, less test -- more errors.


So test! What's stopping you?  The old tree is still available!

If someone wants to make this better, a working Zope 3 application  
buildout would help a lot.  I doubt it would be that hard to finish  
at this point.


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] major packaging reorganization happening in 3.4 releases?

2007-10-02 Thread Jim Fulton


On Oct 2, 2007, at 5:25 AM, Martijn Faassen wrote:


Hi there,

Besides causing us a lot of problems here at the Grok sprint, I  
also wonder why in the world are we doing major packaging  
reorganizations and releasing them as minor 3.4.x releases? You'd  
think such a reorganization would warrant a 3.5 release!


Agreed. Someone needs to sloow down.  "Speed kills." deserves to  
be added to the Zen of Python. (Actually, ZoP does have a variation  
of that.)


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: New package zc.configure provides an exclude directive for excluding zcml files

2007-10-02 Thread Jim Fulton


On Oct 2, 2007, at 3:29 AM, Martijn Faassen wrote:


Jim Fulton wrote:

[snip]
Maybe grok was already trimmed down.  In my case, I basically  
eliminated all ZMI support (since I didn't need it).  I got about  
40%,


Grok is trimmed down in the sense that it doesn't depend on all  
Zope 3 packages, though due to the interesting dependency structure  
it still relies on about 100 eggs. We didn't do any trimming down  
of ZMI support.


Note that it wasn't my goal to trim the number of eggs I got,  
although trimming that, or, in theory, using zipped eggs would speed  
startup as well.  I'm using the zope.app.zcmlfiles egg as my base.


Would it be possible to get a list of exclude statements that you  
use to eliminate ZMI support in your project? I imagine our list is  
far from complete.


Here is the zcml file I'm including rather than incliding  
zope.app.zcmlfiles/configure.zcml:


  http://namespaces.zope.org/zope";
 xmlns:i18n="http://namespaces.zope.org/i18n";
 i18n_domain="zope"
 package="zope.app.zcmlfiles"
 >













file="session.zcml" />
file="ftpplugins.zcml" />
file="httpplugins.zcml" />
file="groupfolder.zcml" />
file="password.zcml" />
file="principalfolder.zcml" />














  



  



  

  
  












  


  


  
  
  














  


  



  




  
  




  




  

Note that this was made by just copying the configure.zcml from  
zope.app.zcmlfiles and commenting out some things and adding  
excludes. I basically kept commenting things or excluding things  
until my tests failed. :) I could probably go a little further if I  
worked a lot harder, so of course, I stopped. :) I'll also probably  
have to add some things back later when I pay attention to i18n.  
(This app uses extjs for it's UI and I haven't figured out how I'm  
going to approach i18n for that. extjs rocks btw.)


Jim

--
Jim Fulton
Zope Corporation


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Lennart Regebro
On 10/2/07, Roger Ineichen <[EMAIL PROTECTED]> wrote:
> In other words; Right now we only test if a egg works
> within their dependency. But we don't test other eggs
> if they work with the egg we develop.

Well, first of all we need tests in the modules that the deferred import works.

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: AW: AW: Re: AW: Are pagelets content providers?

2007-10-02 Thread Thomas Lotze
Roger Ineichen wrote:

> Yes you are right, that was the reason I didn't define the __init__ method
> in the interface. But I still think a IPagelet isn't a IContentProvider by
> default. Of corse another class can be defined as IContentProvider and
> IPagelet. Such a class whould then provide a different __init__ method
> then the pagelet does right now.

See my other response I wrote before I read this message of yours.

> Should we implement a z3c.form/z3c.pagelet package? There we could support
> z3c.form base classes built up on pagelets.
> 
> Probably called z3c.formpagelet which contains IPageletForm,
> IPageletAddForm etc.

This would solve my use case but sounds like a lot of architecture, to be
honest. I think this is exactly what I hoped to avoid by pinning the
internal communication between pagelets and pagelet renderers down to
talking IContentProvider and thereby allowing pagelets to be used as
content providers from everywhere. See the "dead chicken" remark in my
first reply to you.

-- 
Thomas



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: AW: Re: AW: Are pagelets content providers?

2007-10-02 Thread Thomas Lotze
Roger Ineichen wrote:

> Probably we should say;
> "Pagelets are views which support the publisher __call__ attribute and
> provide the update/render pattern."

True.

> You are wrong here. A IContentProvider doesn't define content. A
> IContentProvider provides content. That's different.

I see difference between creating content and providing it by a content
provider interface, but since the content created by some code must
somehow be passed to whatever then provides IContentProvider if it isn't
the same object anyway, that "some code" might as well provide
IContentProvider itself. In the case of pagelets the implementation does
that already anyway.

> I a component defines content it provides the IPresentation interface
> which is the case for IPagelet.

No, it isn't. The ancestry of IPagelet doesn't include anything named
IPresentation or similar.

> A IContentProvider knows only how to get content for another component.
> Again, it's a delegation pattern.

So what's the business with all that delegation? Why must the source of
content be distinct from the content provider? It certainly isn't that way
for viewlets. What more is there to the delegation than in the case of
pagelets, the need to access the same pagelet instance for creating
content that has already been instantiated as the view?

> You are saying, that we have IContentProvider providing content and
> defining content. Define content is the part of the IPresentation
> interface.

Which, in turn, does appear in the ancestry of IContentProvider. Provision
of IPresentation doesn't seem to be a reason for pagelets not to be
content providers.

> Probably I don't understand this correct. Are you thinking about a
> IContentProvider which collects more then one pagelet?

Exactly. Or rather, more than one content provider, more than one of which
might just happen to be pagelets if someone thought it might make sense to
also use them that way directly.

> Probably I don't
> see your idea. Can you descibe it what do you mean with "as long as ...
> page of its own" and "pagelet as content provider".

Well, z3c.form is about creating an HTML form from a schema. Such a form
appears somewhere on a page, which might be the place the pagelet content
ought to go. If this is all you want, the implementation of a form as a
pagelet is fine. However, you might want something more complex to fill
that place, something that contains a form among other elements. Now
you're in a pinch: you want to use z3c.form for its functionality of
assembling an HTML form from a schema, but what you get is a pagelet that,
by being denied recognition as a content provider, shouldn't be used as a
part of what makes up the pagelet content.

> I don't understand how a pagelet can get called as a content provider.
> The adaption doesn't work because they support different __init__ method
> signatures.

Unless I'm mistaken, this has to do with the way view classes are created
by the ZCML viewlet directive - which is how I've used it so far.

> Did you recognize that the __init__ are different.
> 
> A IContentProvider defines:
> 
> def __init__(self, context, request, view)

An interface does not define the constructor signature of classes that
might implement it. Interfaces are about communicating with instances of
classes implementing them, not about creating those instances.

> I guess there is nothing wrong with your idea, you can allways mix
> IContentProvider and IPagelet in a new interface. But the existing
> implementation of IPagelet is not a IContentProvider out of the box.

I think that it would be better to define pagelets to be content providers
so as to know what to deal with than to have to repeat that
IContentProvider thing for every extension interface and implementation.
It's not as if IContentProvider was all that specific anyway. Having to
add it explicitly again and again sounds like a dead chicken.

> A IPagelet called by the IContentProvider TALES expression whould have
> to support __init__(self, context, request, view) which isn't the case
> in the Pagelet implementation.

This isn't the interface's business but sounds more like a factory
function that instantiates the pagelet without passing the view to the
constructor and adds it as the __parent__ attribute afterwards.

> Does this make sense for you?

I understand the problems that have to be solved, but as long as you're
talking about __init__ being specified in interfaces, it doesn't make
sense to me.

> what do you think about to remove the formlib implementation from the
> z3c.pagelet package?

I think it would make things cleaner and make it easier to see what
belongs where. Plus there's possibly not much need to wrap zope.formlib in
pagelets given the existence of z3c.form. Removing the stuff sounds like
applying "there ought to be only one way to do it", so I'm all for it.

-- 
Thomas



___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope

AW: AW: [Zope3-dev] Re: AW: Are pagelets content providers?

2007-10-02 Thread Roger Ineichen
Hi Jacob, Thomas

> Betreff: Re: AW: [Zope3-dev] Re: AW: Are pagelets content providers?
> 
> Hi Roger,
> 
> I didn't follow this discussion closely but thought this 
> needed a comment.
> 
> Roger Ineichen wrote:
> 
> [snip lots of context...]
> > Did you recognize that the __init__ are different.
> >
> > A IContentProvider defines:
> >
> > def __init__(self, context, request, view)
> > self.context = context
> > self.request = request
> > self.view = view
> >
> > and a IPagelet defines:
> >
> > def __init__(self, context, request):
> > self.context = context
> > self.request = request
> >
> > Probably we should describe this in the interface too.
> > This whould manifest the difference of content provider 
> which provide 
> > content and pagelets whcih defines content in a better way.
> >   
> It would make sense to have the 'view' attribute a part of 
> the IContentProvider interface, and *that* might make them 
> different.  The constructor signature  is all about the class 
> instead of the instance and should therefore *not* be part of 
> the interface.
> 
> It is perfectly reasonable to have a number of different 
> (multi-)adapters with different signatures that adapt to the 
> same interface.
> 
> Hope this makes sense.  I'll go back to lurking now.

Yes you are right, that was the reason I didn't define the 
__init__ method in the interface. But I still think a 
IPagelet isn't a IContentProvider by default. Of corse 
another class can be defined as IContentProvider and IPagelet. 
Such a class whould then provide a different __init__ method 
then the pagelet does right now.

Thomas;
Should we implement a z3c.form/z3c.pagelet package?
There we could support z3c.form base classes built
up on pagelets.

Probably called z3c.formpagelet which contains
IPageletForm, IPageletAddForm etc.

Regards
Roger Ineichen

> Regards
> 
>   Jacob
> 
> --
> Jacob Holm
> CTO
> Improva ApS
> 
> ___
> Zope3-dev mailing list
> Zope3-dev@zope.org
> Unsub: 
> http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch
> 
> 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: AW: [Zope3-dev] Re: AW: Are pagelets content providers?

2007-10-02 Thread Jacob Holm

Hi Roger,

I didn't follow this discussion closely but thought this needed a comment.

Roger Ineichen wrote:

[snip lots of context...]

Did you recognize that the __init__ are different.

A IContentProvider defines:

def __init__(self, context, request, view)
self.context = context
self.request = request
self.view = view

and a IPagelet defines:

def __init__(self, context, request):
self.context = context
self.request = request

Probably we should describe this in the interface too.
This whould manifest the difference of content provider
which provide content and pagelets whcih defines content
in a better way.
  
It would make sense to have the 'view' attribute a part of the 
IContentProvider interface, and *that* might make them different.  The 
constructor signature  is all about the class instead of the instance 
and should therefore *not* be part of the interface.


It is perfectly reasonable to have a number of different 
(multi-)adapters with different signatures that adapt to the same 
interface.


Hope this makes sense.  I'll go back to lurking now.

Regards

 Jacob

--
Jacob Holm
CTO
Improva ApS

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



AW: [Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Roger Ineichen
Hi Lennart
 
> Betreff: [Zope3-dev] zope.app.securitypolicy deferred imports errors.
> 
> Roger Inechens split of zope.app.securitypolicy into 
> zope.securitypolicy cause loads of problems, because many of 
> the deferred imports were incorrect. I saw Stefan Richter 
> fixed some, and I have fixed some more.

Yes you are right

> First somebody that can make releases (which may or may not 
> include me, I honestly don't know who can make releases of 
> eggs) needs to make a new one. But we also need to avoid this 
> stuff in the future.

Yes, we always have to avoid errors, but sometimes it happens.
And since we dont test against the trunk, we don't see this
kind of errors anymore. This means we test against custom 
projects. I didn't fully recognize this and was trusting the 
tests. But I was wrong. We don't have tests for this anymore.
We probably didn't have test for my error at all. 

In other words; Right now we only test if a egg works
within their dependency. But we don't test other eggs
if they work with the egg we develop.


See all my different mails about this topic!

> How is the recommended process to solve this? Some sort of 
> unittest to make sure the deferred impoirt work? Is there an 
> example of this somewhere?

I'm proposing to test against a set of possible breaking
stuff. This means we need a kind of zope3 trunk egg which 
our test will deoend on.

See the mails form Stpehan Richter about that. Jim also 
agrees on that but is thinking this should be optional
as far as I understand the mails between Stephan and Jim.


We defently lost the overall tests we had in the trunk setup.
And this is a very bad idea. If we don't recommend to run
all tests again form a single egg refactoring, we will 
see more errors like this.

Some of us are thinking about to automate this
tests with buildbot. But this tests will only test released 
packages which is also bad. I think the only way to automate
such tests can be supported by a staging server.

I personaly think, less test -- more errors.
Even if we try hard to avoid errors during development.

Regards
Roger Ineichen


> --
> Lennart Regebro: Zope and Plone consulting.
> http://www.colliberty.com/
> +33 661 58 14 64
> ___
> Zope3-dev mailing list
> Zope3-dev@zope.org
> Unsub: 
> http://mail.zope.org/mailman/options/zope3-dev/dev%40projekt01.ch
> 
> 

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



AW: [Zope3-dev] Re: AW: Are pagelets content providers?

2007-10-02 Thread Roger Ineichen
Hi Thomas
 
> Betreff: [Zope3-dev] Re: AW: Are pagelets content providers?
> 
> Roger Ineichen wrote:
> 
> > I was carfully skip some additional method decalration because I 
> > didn't know if we gona use IPagelets without render and update in 
> > other implementations.
> 
> The z3c.pagelet README.txt says that "Pagelets are views 
> which can be called and support the update and render 
> pattern." So either this refers to the particular 
> implementation only, in which case I'd say an independent 
> definition of the concept of pagelets is missing, or 
> otherwise it doesn't leave much room for implementations 
> without update and render methods.

Probably we should say;
"Pagelets are views which support the publisher __call__
attribute and provide the update/render pattern."


> > I disagree, the IPagelet is not a IContentProvider. The 
> pagelet is the 
> > component which defines the content and the renderer is the content 
> > provider. It's a delegation pattern.
> > 
> > I explicit didn't implement IContentProvider in IPagelet because a 
> > pagelet has to conceptual functionality of a page and not 
> of a content 
> > provider or viewlet thing.
> 
> So the pagelet is really two things: a specific 
> implementation of a browser page, and a component which 
> defines content. Both should reflect in its interface, and 
> why should something which defines content and follows the 
> update/render pattern not formally be declared a content 
> provider? Calling it something else with the same methods 
> serves only to keep around an interface twice, by different names.

You are wrong here. A IContentProvider doesn't define content.
A IContentProvider provides content. That's different.

I a component defines content it provides the IPresentation
interface which is the case for IPagelet.

A IContentProvider knows only how to get content for another
component. Again, it's a delegation pattern. 


> AFAICS, there's nothing wrong with two content providers 
> taking part in delivering the pagelet's content: one that 
> originally creates the content behind the scenes, and one 
> that is called from the layout template and delegates content 
> creation to the former. You don't have to prohibit a pagelet 
> to be called a content provider in order not to call it from 
> the template directly. The issue might just be about 
> interfaces describing how an object can be used instead of 
> what code is supposed to use it.

You are saying, that we have IContentProvider providing content
and defining content. Define content is the part of the 
IPresentation interface.

> OTOH, there's real value in pagelets being content providers: 
> library or application developers wouldn't have to decide up 
> front whether their content providing component is to be used 
> for primary or supplementary page content by deciding whether 
> to implement it as a pagelet or a content provider; it could 
> be both without adding any dead chicken abstractions.
> 
> A real-world use case is z3c.form forms: they are implemented 
> as pagelets which is fine as long as each form makes up a 
> page of its own. However, we'd like to combine forms with 
> other stuff, such as a search form with a result list. This 
> is possible by using a form (a pagelet) as a content 
> provider, but that feels like a hack as long as it isn't 
> backed by formal interfaces.

Probably I don't understand this correct. Are you thinking
about a IContentProvider which collects more then one 
pagelet? Probably I don't see your idea. Can you descibe it
what do you mean with "as long as ... page of its own" 
and "pagelet as content provider".

I don't understand how a pagelet can get called as a 
content provider. The adaption doesn't work because
they support different __init__ method signatures.

> > The interface IPagelet(IBrowserPage) should reflect the 
> page replacement.
> > 
> > The IPageletRenderer(IContentProvider) should describe the 
> pattern how 
> > the pagelet content get accessed.
> > 
> > Dou you see my idea behind this declarations?
> 
> I do, but I can't follow the conclusion that pagelets should 
> not at the same time be declared content providers, which 
> they de facto are.
> 
> > What do you think, should we add render/update to the 
> IPagelet which 
> > is not defined in IBrowserPage?
> > 
> > Or should we add a IRenderUpdate interface in zope.? which 
> we can use 
> > in zope.formlib, z3c.form, z3c.pagelet and probably many 
> more interfaces?
> 
> Having thought some more about it since asking it as a 
> question yesterday, I now definitely think that IPagelet 
> should extend both IBrowserPage and IContentProvider. I can't 
> see any value in a new IRenderUpdate interface since the 
> distinction from IContentProvider would be very academic IMO.

Did you recognize that the __init__ are different.

A IContentProvider defines:

def __init__(self, context, request, view)
self.context = context
self.request = request
self.v

[Zope3-dev] Re: major packaging reorganization happening in 3.4 releases?

2007-10-02 Thread Martijn Faassen

Martijn Faassen wrote:
Besides causing us a lot of problems here at the Grok sprint, I also 
wonder why in the world are we doing major packaging reorganizations and 
releasing them as minor 3.4.x releases? You'd think such a 
reorganization would warrant a 3.5 release!


What doesn't help release managers is that the package reorganization 
wasn't discussed in CHANGES.txt. This means that a release manager can 
release what *they* think is a minor bugfix release but actually release 
pretty disruptive changes.


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] major packaging reorganization happening in 3.4 releases?

2007-10-02 Thread Martijn Faassen

Hi there,

Besides causing us a lot of problems here at the Grok sprint, I also 
wonder why in the world are we doing major packaging reorganizations and 
releasing them as minor 3.4.x releases? You'd think such a 
reorganization would warrant a 3.5 release!


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] zope.app.securitypolicy deferred imports errors.

2007-10-02 Thread Lennart Regebro
Roger Inechens split of zope.app.securitypolicy into
zope.securitypolicy cause loads of problems, because many of the
deferred imports were incorrect. I saw Stefan Richter fixed some, and
I have fixed some more.

First somebody that can make releases (which may or may not include
me, I honestly don't know who can make releases of eggs) needs to make
a new one. But we also need to avoid this stuff in the future.

How is the recommended process to solve this? Some sort of unittest to
make sure the deferred impoirt work? Is there an example of this
somewhere?

-- 
Lennart Regebro: Zope and Plone consulting.
http://www.colliberty.com/
+33 661 58 14 64
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: New package zc.configure provides an exclude directive for excluding zcml files

2007-10-02 Thread Martijn Faassen

Jim Fulton wrote:

[snip]


Maybe grok was already trimmed down.  In my case, I basically eliminated 
all ZMI support (since I didn't need it).  I got about 40%,


Grok is trimmed down in the sense that it doesn't depend on all Zope 3 
packages, though due to the interesting dependency structure it still 
relies on about 100 eggs. We didn't do any trimming down of ZMI support.


Would it be possible to get a list of exclude statements that you use to 
eliminate ZMI support in your project? I imagine our list is far from 
complete.


Regards,

Martijn

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com