Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mar 10, 2009, at 03:33 , Martin Aspeli wrote:

 There are some discussions about licensing going on with the Plone
 Foundation, but chances are good that it can be licensed in such a way
 that CMF could adopt it you want.

IMHO the licensing issue is of general interest beyond this one  
software bit. If there are any changes to Plone licensing I'm sure  
people on this list would be happy if you or someone else could  
provide some summary, if and when something is being changed :-)

jens



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkm2GO0ACgkQRAx5nvEhZLJs9gCgo69+c0mzg4rIjDSO+h2DEUM1
H90AoIEzoTI2kkYlTq/dX483KZFsFBnc
=8P7y
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Raphael Ritz
Jens Vagelpohl wrote:


Hi Jens,

 IMHO the licensing issue is of general interest beyond this one  
 software bit. If there are any changes to Plone licensing I'm sure  
 people on this list would be happy if you or someone else could  
 provide some summary, if and when something is being changed :-)
 

Some people including Wichert and Martin are pushing the Plone
foundation to allow for an alternative license for Plone packages
that are more of a underlying framework/library nature on
request.

As I see it, chances are good that we'll see this changing within
the next few month even. At the moment, the discussion is about
whether we (the Plone foundation) should generally allow one
or several alternative licenses (- one seems to be the current
favorite) and whether this one (if so decided) should be
LGPL or BSD(-like).

If there would be a strong preference from the CMF community
here I'm sure this would be honored in our discussion.

Opinions anyone? (ideally including a reasoning beyond
I want ZPL because that's what Zope itself uses) ;-)

Raphael


 jens
 
 
 
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.8 (Darwin)
 
 iEYEARECAAYFAkm2GO0ACgkQRAx5nvEhZLJs9gCgo69+c0mzg4rIjDSO+h2DEUM1
 H90AoIEzoTI2kkYlTq/dX483KZFsFBnc
 =8P7y
 -END PGP SIGNATURE-
 ___
 Zope-CMF maillist  -  Zope-CMF@lists.zope.org
 http://mail.zope.org/mailman/listinfo/zope-cmf
 
 See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests
 

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Charlie Clark

Am 10.03.2009 um 09:14 schrieb Raphael Ritz:

 If there would be a strong preference from the CMF community
 here I'm sure this would be honored in our discussion.

 Opinions anyone? (ideally including a reasoning beyond
 I want ZPL because that's what Zope itself uses) ;-)

Actually that is itself a very valid opinion - any company that is  
interested in software licences prefers as few of them as possible. My  
preference is always for a no-strings attached licence (ZPL, modifieid  
BSD, Apache).

It's nice to hear that there is some discussion within Plone about  
licensing.

If there is framework code in Plone that might be better placed lower  
down the stack in CMF then the sooner the better. There is a heap of  
stuff that could do with refactoring and reengineering along component  
architecture principles. It is not a little ironic in an open source  
context that the next release of Plone requires a new release of CMF  
to which it itself has (hardly?) contributed. This may often be  
unintentional as Plone developers write libraries for Plone unaware of  
the problem of backwards licence incompatability - the wrapper for  
z3c.forms springs to mind - but it is a problem just the same.

Concentrating on a content management framework for Zope as the basis  
for Plone and other approaches is a good thing IMHO.

Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mar 10, 2009, at 09:14 , Raphael Ritz wrote:

 Opinions anyone? (ideally including a reasoning beyond
 I want ZPL because that's what Zope itself uses) ;-)

In general, commercial adoption of a software stack is made easier if  
it is not accompanied by a whole soup of different licenses. The fewer  
licenses, the better. I'm sure that issue is on your radar already.

As you know, all code you'd like pushed down the stack into the CMF or  
Zope must be licensed under the ZPL. That's also a prerequisite for  
being stored in the Zope Foundation repositories (a.k.a. svn.zope.org).

In the end I hope that whatever decision is being made does not serve  
to widen the distance between the Plone community and the rest of the  
Zope universe.

jens


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkm2JqkACgkQRAx5nvEhZLJNMACeJvlVOK8y1hxx5dkyP1pmwP/M
fqAAoJXXclf5a7Gy0tDiAhH5db0oCJLU
=mIFf
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Wichert Akkerman
Previously Jens Vagelpohl wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 
 On Mar 10, 2009, at 09:14 , Raphael Ritz wrote:
 
  Opinions anyone? (ideally including a reasoning beyond
  I want ZPL because that's what Zope itself uses) ;-)
 
 In general, commercial adoption of a software stack is made easier if  
 it is not accompanied by a whole soup of different licenses. The fewer  
 licenses, the better. I'm sure that issue is on your radar already.

It is, which is why the ZPL has already been rejected as an option: it
is pretty much equivalent to the BSD license, which is much more widely
accepted. The ZPL is a Zope Foundation-only license, while one goal of
this push in Plone is to encourage wider adoption of generic components,
even outside of the Zope community where possible.

The debate is currently focusing on GPL versus BSD license. Any opinions
on a choice between those two would be very welcome.

 As you know, all code you'd like pushed down the stack into the CMF or  
 Zope must be licensed under the ZPL. That's also a prerequisite for  
 being stored in the Zope Foundation repositories (a.k.a. svn.zope.org).

I do not think the Plone Foundation board is willing to consider
donating some of its intellectual property to the Zope Foundation. I am
already happy they are willing to consider selective relicensing.

But that does not need to be a problem: reusable packages such as
plone.indexer can be used by CMF even if they are not covered by the ZPL
or managed in svn.zope.org, as long as there is the license is
acceptable.

Wichert.

-- 
Wichert Akkerman wich...@wiggy.netIt is simple to make things.
http://www.wiggy.net/   It is hard to make things simple.
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Charlie Clark

Am 10.03.2009 um 10:01 schrieb Wichert Akkerman:

 The debate is currently focusing on GPL versus BSD license. Any  
 opinions
 on a choice between those two would be very welcome.


Speaking as someone who hasn't written a whole lot of code: BSD.

I have a real dislike of the GPL because I think it fails to emphasise  
the real benefits of open source and it is a real pain if you wish to  
integrate with other non-GPL stuff whether it's commercial or not. The  
same discussion came up for Trac a few years ago because of the desire  
for closer integration with subversion.

Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mar 10, 2009, at 10:01 , Wichert Akkerman wrote:

 Previously Jens Vagelpohl wrote:
 In general, commercial adoption of a software stack is made easier if
 it is not accompanied by a whole soup of different licenses. The  
 fewer
 licenses, the better. I'm sure that issue is on your radar already.

 It is, which is why the ZPL has already been rejected as an option: it
 is pretty much equivalent to the BSD license, which is much more  
 widely
 accepted.

If they are equivalent, why not dual-license?


 The debate is currently focusing on GPL versus BSD license. Any  
 opinions
 on a choice between those two would be very welcome.

The discussion has been rehashed in several places, but given a choice  
between pretty much anything and the GPL I'd vote -1 on the GPL.


 As you know, all code you'd like pushed down the stack into the CMF  
 or
 Zope must be licensed under the ZPL. That's also a prerequisite for
 being stored in the Zope Foundation repositories (a.k.a.  
 svn.zope.org).

 I do not think the Plone Foundation board is willing to consider
 donating some of its intellectual property to the Zope Foundation. I  
 am
 already happy they are willing to consider selective relicensing.

To me this really sounds like the rift has widened, by a whole lot. It  
reads like we're happy to base our stuff on yours, but we really  
don't want to give back. I'm sure it's not meant that way, but it  
reads like that.


 But that does not need to be a problem: reusable packages such as
 plone.indexer can be used by CMF even if they are not covered by the  
 ZPL
 or managed in svn.zope.org, as long as there is the license is
 acceptable.

That's not the issue I was trying to address. I was specifically  
talking about putting functionality in the most appropriate part of  
the stack, meaning moving it further towards the core. If there are  
bits and pieces that make more sense in the CMF then saying well,  
just install our package may satisfy users, but developers will  
continue wasting time maintaining different implementations.

jens



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkm2NA8ACgkQRAx5nvEhZLLy0wCfehi6WBVBHEcwJZXORFpM2tx4
aD4Anip87gouzSsnK/o4jI57ibOjt3YS
=dvw+
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Wichert Akkerman
Previously Jens Vagelpohl wrote:
 On Mar 10, 2009, at 10:01 , Wichert Akkerman wrote:
  Previously Jens Vagelpohl wrote:
  In general, commercial adoption of a software stack is made easier if
  it is not accompanied by a whole soup of different licenses. The  
  fewer
  licenses, the better. I'm sure that issue is on your radar already.
 
  It is, which is why the ZPL has already been rejected as an option: it
  is pretty much equivalent to the BSD license, which is much more  
  widely
  accepted.
 
 If they are equivalent, why not dual-license?

What would the advantage be? The ZPL is an exercise of license
proliferation and as far as I can see gives no benefits over BSD.

  The debate is currently focusing on GPL versus BSD license. Any  
  opinions
  on a choice between those two would be very welcome.
 
 The discussion has been rehashed in several places, but given a choice  
 between pretty much anything and the GPL I'd vote -1 on the GPL.

I made a typo there: the discussion is focusing on LGPL versus BSD. I
suspect that will not change your vote though :)

  As you know, all code you'd like pushed down the stack into the CMF  
  or
  Zope must be licensed under the ZPL. That's also a prerequisite for
  being stored in the Zope Foundation repositories (a.k.a.  
  svn.zope.org).
 
  I do not think the Plone Foundation board is willing to consider
  donating some of its intellectual property to the Zope Foundation. I  
  am
  already happy they are willing to consider selective relicensing.
 
 To me this really sounds like the rift has widened, by a whole lot. It  
 reads like we're happy to base our stuff on yours, but we really  
 don't want to give back. I'm sure it's not meant that way, but it  
 reads like that.

It is not that way at all. Plone does want to give back, and by
relicensing components does exactly that. If the BSD is chosen you can
do anything you want with that Plone code, except upload it to
svn.zope.org since that implies transferring ownership, which is not
allowed. This is no different than Zope policies:  you can not
copy code from svn.zope.org to the plone repository either. Or move code
from Repoze to Zope, from Zope to FSF, etc. etc.  The license is
not the limiting factor there, but the surrounding policies are.

  But that does not need to be a problem: reusable packages such as
  plone.indexer can be used by CMF even if they are not covered by the  
  ZPL
  or managed in svn.zope.org, as long as there is the license is
  acceptable.
 
 That's not the issue I was trying to address. I was specifically  
 talking about putting functionality in the most appropriate part of  
 the stack, meaning moving it further towards the core. If there are  
 bits and pieces that make more sense in the CMF then saying well,  
 just install our package may satisfy users, but developers will  
 continue wasting time maintaining different implementations.

Why would there be multiple implementations if they can just use the
existing one? I do not see that. I do agree that work should be in in
CMF itself, and this particular instance of the indexable wrappers is an
excellent example of that. I hope that in the last few years we have
already demonstrated that we really do want to work closer with the
CMF and Zope communities. 

Perhaps in the future the Plone Foundation would be willing to donate
code to the Zope Foundation. At this moment that is a bridge too far,
and I fear that as soon as I suggest that at this point in time the
entire relicensing movement will die in a never-ending debate. Lets
save that one for a later day.

Wichert.

-- 
Wichert Akkerman wich...@wiggy.netIt is simple to make things.
http://www.wiggy.net/   It is hard to make things simple.
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Martin Aspeli
Jens Vagelpohl wrote:

 That's not the issue I was trying to address. I was specifically  
 talking about putting functionality in the most appropriate part of  
 the stack, meaning moving it further towards the core. If there are  
 bits and pieces that make more sense in the CMF then saying well,  
 just install our package may satisfy users, but developers will  
 continue wasting time maintaining different implementations.

I think we all agree on this. In retrospect, it would've been a better 
idea to push for plone.indexer to be a part of CMF. However, I 
implemented it driven by Plone's release cycle and feature proposal 
process, which is why it ended up as it did. *I* want this feature for 
Plone, but it'd be even better if others could benefit.

Of course, it's not too late for that. If the license issue can be 
overcome (and I'm pretty sure that it will by April/May), then CMF can 
depend on plone.indexer if it so wants, and I'm willing to help make 
that possible if it means changing plone.indexer or helping with the CMF 
level implementation.

In the future, it may be that we can meet in the middle on this. When 
the PLIP process kicks off, it'd be good if the CMF developers had a 
look in as well. We should probably be better at announcing the various 
deadlines and proposals on this list, but if you guys see something that 
you feel would be a good fit further down, it doesn't hurt to raise 
that, lest the developer hasn't thought about it.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mar 10, 2009, at 11:08 , Martin Aspeli wrote:

 I think we all agree on this. In retrospect, it would've been a better
 idea to push for plone.indexer to be a part of CMF. However, I
 implemented it driven by Plone's release cycle and feature proposal
 process, which is why it ended up as it did. *I* want this feature for
 Plone, but it'd be even better if others could benefit.

IMHO the release cycle argument doesn't wash. We've always had CMF  
releases in preparation for important Plone releases, and I'm happy to  
continue that.


 Of course, it's not too late for that. If the license issue can be
 overcome (and I'm pretty sure that it will by April/May), then CMF can
 depend on plone.indexer if it so wants, and I'm willing to help make
 that possible if it means changing plone.indexer or helping with the  
 CMF
 level implementation.

Thanks, I appreciate that.

Generally, I think now that the ZF has cleared up the remaining issues  
about code ownership etc. we finally have two entities, the ZF and the  
Plone Foundation, that are the perfect platform for official issues  
like code donations, or for coordinating other cooperation issues. I  
can't judge how the Plone Foundation acts within the Plone community,  
but as far as the Zope Foundation goes, Martijn has been doing a lot  
of work to make it more relevant and an important player in the actual  
software development process.


 In the future, it may be that we can meet in the middle on this. When
 the PLIP process kicks off, it'd be good if the CMF developers had a
 look in as well. We should probably be better at announcing the  
 various
 deadlines and proposals on this list, but if you guys see something  
 that
 you feel would be a good fit further down, it doesn't hurt to raise
 that, lest the developer hasn't thought about it.

Is there any kind of low-traffic announcement list for things like  
PLIPs? I'm not subscribed to any Plone list because of (for me at  
least) signal to noise ratio fears.

jens


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkm2PwIACgkQRAx5nvEhZLJs8QCfYsGqkD63R9+isOhA0nXzeWy+
IgoAoJ8xfUzIMdGmlOSXUEreYgF7ErI+
=owJ7
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread yuppie
Hi!


Wichert Akkerman wrote:
 Previously Jens Vagelpohl wrote:
 That's not the issue I was trying to address. I was specifically  
 talking about putting functionality in the most appropriate part of  
 the stack, meaning moving it further towards the core. If there are  
 bits and pieces that make more sense in the CMF then saying well,  
 just install our package may satisfy users, but developers will  
 continue wasting time maintaining different implementations.
 
 Why would there be multiple implementations if they can just use the
 existing one? I do not see that.

For the CMF project it is essential to have full control over its own 
layer of the stack and to participate in the development of the Zope 
layer. Using packages from the Plone repository means either using them 
as a black box or joining the Plone Foundation to participate in their 
development. IMO both options are not acceptable.

 I do agree that work should be in in
 CMF itself, and this particular instance of the indexable wrappers is an
 excellent example of that. I hope that in the last few years we have
 already demonstrated that we really do want to work closer with the
 CMF and Zope communities. 

For technical reasons this collaboration is asymmetric. Plone is built 
on top of Zope and CMF, not the other way round. If you want to work 
really close with these communities, you have to be part of them and use 
their repository.


Cheers,

Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Miles
Thanks!

 You already noticed that the wrapper is instantiated directly, so  
 that's what's going on. No magic, no component architecture.

Thanks for the clarification.  The bits that confused me were:

class IndexableObjectSpecification(ObjectSpecificationDescriptor)
...

class IndexableObjectWrapper(object):

 implements(IIndexableObjectWrapper)
 __providedBy__ = IndexableObjectSpecification()

What does this code actually achieve (I get the implements bit, obviously)?!

 Whether that is good or bad or should be changed is a different issue.

I will write up a short proposal.

Miles

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Miles
Thanks

 Can anyone tell me if it is possible to register an adapter to

snip

 This should work with plain CMF and be simple to hook into the catalogue 
 tool.

(For me) this is the root of the problem - it can only be hooked into 
the catalog by subclassing at the moment, there is no other mechanism to 
use different implementations.  If there was, then plone.indexer (or 
whatever) could be used directly.

Therefore, can I make a proposal (which I am happy to carry out), as I 
think this is a desirable change?

PROPOSAL: Use CA to look up the indexable object wrapper

PROBLEM: It is not possible to provide alternative implementations of 
the IndexableObjectWrapper class at the moment - this prevents 
customising the indexing process.

SOLUTION: Look up the IndexableObjectWrapper using the Component 
Architecture.  The catalog tool will look up a named utility that 
creates a wrapped object suitable for indexing.

The default implementation of the utility will return the object 
wrapped using the current IndexableObjectWrapper.

If required, Local Site configuration can be used to provide different 
implementations as needed.

BACKWARDS COMPATIBILITY: Any catalog implementation that used a 
different wrapper class would have to subclass the main catalog and 
override the relevant function, so will be unaffected by the change.

Any thoughts?

Miles

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Andrew Sawyers
On 3/10/09 1:17 AM, Charlie Clark char...@begeistert.org wrote:

 
 Am 10.03.2009 um 10:01 schrieb Wichert Akkerman:
 
 The debate is currently focusing on GPL versus BSD license. Any
 opinions
 on a choice between those two would be very welcome.
 
 
 ...: BSD.
 
+2 
 Charlie
 --
 Charlie Clark
 Helmholtzstr. 20
 Düsseldorf
 D- 40215
 Tel: +49-211-938-5360
 GSM: +49-178-782-6226
 
 
 
 ___
 Zope-CMF maillist  -  Zope-CMF@lists.zope.org
 http://mail.zope.org/mailman/listinfo/zope-cmf
 
 See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread yuppie
Hi!


Miles wrote:
 Thanks for the clarification.  The bits that confused me were:
 
 class IndexableObjectSpecification(ObjectSpecificationDescriptor)
 ...
 
 class IndexableObjectWrapper(object):
 
  implements(IIndexableObjectWrapper)
  __providedBy__ = IndexableObjectSpecification()
 
 What does this code actually achieve (I get the implements bit, obviously)?!

This makes the wrapper transparent, allowing the index to look up 
adapters for the interfaces of the object. TextIndexNG3 works that way.

 Whether that is good or bad or should be changed is a different issue.
 
 I will write up a short proposal.

AFAICS wrapping the object before looking up adapters is unnecessary. 
The catalog should do the lookup directly and the existing features 
provided by IndexableObjectWrapper should be reimplemented as adapters.


Cheers,

Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Charlie Clark

Am 10.03.2009 um 10:49 schrieb Wichert Akkerman:

 Perhaps in the future the Plone Foundation would be willing to donate
 code to the Zope Foundation. At this moment that is a bridge too far,
 and I fear that as soon as I suggest that at this point in time the
 entire relicensing movement will die in a never-ending debate. Lets
 save that one for a later day.


I suspect you're right on that and that we on this list can all say  
that, with hindsight, the licence debate should never have happened.  
Let's hope it can be resolved in the future. I hope this will become  
easier as development moves to a more library-based approach -- all  
hail TurPlango!

What we cannot (dual-)license for the CMF but think we need for the  
CMF we will have to reimplement. I have to agree with Jens that saying  
something was added to Plone rather than the CMF because of the Plone  
release cycle is disingenuous. As long as I have been following the  
list the CMF releases have been timed for Plone. It would be good to  
see this change from now on as I suspect the number of core developers  
on both projects is limited and both projects would benefit from  
effectively pooled resources and clear ideas of what goes where.

I also have to agree with Jens that the Plone mailing lists are way  
too noisy.

Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226



___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Miles
 class IndexableObjectWrapper(object):

  implements(IIndexableObjectWrapper)
  __providedBy__ = IndexableObjectSpecification()

 What does this code actually achieve (I get the implements bit, obviously)?!
 
 This makes the wrapper transparent, allowing the index to look up 
 adapters for the interfaces of the object. TextIndexNG3 works that way.

Brilliant! Now it all makes sense.  Any objections to me adding some 
comments into IndexableObjectSpecification to this effect?

Mile

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Martin Aspeli
yuppie wrote:
 Hi!
 
 
 Wichert Akkerman wrote:
 Previously Jens Vagelpohl wrote:
 That's not the issue I was trying to address. I was specifically  
 talking about putting functionality in the most appropriate part of  
 the stack, meaning moving it further towards the core. If there are  
 bits and pieces that make more sense in the CMF then saying well,  
 just install our package may satisfy users, but developers will  
 continue wasting time maintaining different implementations.
 Why would there be multiple implementations if they can just use the
 existing one? I do not see that.
 
 For the CMF project it is essential to have full control over its own 
 layer of the stack and to participate in the development of the Zope 
 layer. Using packages from the Plone repository means either using them 
 as a black box or joining the Plone Foundation to participate in their 
 development. IMO both options are not acceptable.

You don't need to join the Plone Foundation to develop packages in 
svn.plone.org. You *do* need to sign a contributor agreement granting 
some IP rights over that code to the Plone Foundation, in return for a 
promise that it will always be available under an open source license. 
There are no limits on who can sign that agreement or for what purpose 
they choose to work with the code in that repository.

Of course, the same goes for svn.zope.org: you need to sign a document 
and grant certain rights over your work to the Zope Foundation.

If CMF really cannot use packages not in svn.zope.org, then that's a bit 
sad and will invariably lead to a lot of re-invention rather than 
re-use. I don't really understand why it is essential to have this 
level of control over every line of code you use. This is entirely a 
self-imposed restriction.

 I do agree that work should be in in
 CMF itself, and this particular instance of the indexable wrappers is an
 excellent example of that. I hope that in the last few years we have
 already demonstrated that we really do want to work closer with the
 CMF and Zope communities. 
 
 For technical reasons this collaboration is asymmetric. Plone is built 
 on top of Zope and CMF, not the other way round. If you want to work 
 really close with these communities, you have to be part of them and use
 their repository.

I wrote a package that, I hope, is useful. I am pretty sure it'll work 
with plain CMF and therefore with other consumers of the CMF, and if 
doesn't, I'd consider that a bug and fix it. I'm willing to work to make 
that package a part of the CMF platform, whether optional or fully 
integrated.

To a certain extent, it already is: someone suing the CMF can choose to 
use plone.indexer in their own project, though they'll need to install 
it themselves. I don't quite see how this is asymmetric. Rather, it is 
an outcome of the evolution of this particular package.

It's up to the CMF maintainers to decide whether it is desirable to 
actually adopt this package as part of a standard release.

It's not always going to be appropriate (or even if it is, it's not 
always going to be the case) for every new line of code that *could* be 
useful to all/most CMF consumers to be built as part of the CMF itself 
from the outset. If the CMF project has no model for incorporating code 
from outside its (rather small) community, then I think that is more to 
the detriment of CMF than to those who created those packages and chose 
to put the effort in to reduce their dependencies and make them more 
generally useful.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Martin Aspeli
Hi Miles,


 This should work with plain CMF and be simple to hook into the catalogue 
 tool.
 
 (For me) this is the root of the problem - it can only be hooked into 
 the catalog by subclassing at the moment, there is no other mechanism to 
 use different implementations.  If there was, then plone.indexer (or 
 whatever) could be used directly.
 
 Therefore, can I make a proposal (which I am happy to carry out), as I 
 think this is a desirable change?
 
 PROPOSAL: Use CA to look up the indexable object wrapper

+1 - Plone already has this, and it's pretty easy to do. If CMF got 
this, then Plone could drop its own custom adapter and use the CMF one 
to hook in plone.indexer, as could anyone else wanting to use this package.

 PROBLEM: It is not possible to provide alternative implementations of 
 the IndexableObjectWrapper class at the moment - this prevents 
 customising the indexing process.
 
 SOLUTION: Look up the IndexableObjectWrapper using the Component 
 Architecture.  The catalog tool will look up a named utility that 
 creates a wrapped object suitable for indexing.

Actually, I'd suggest you look it up as an adapter on the object being 
indexed. Also, it probably shouldn't be named, as there's nothing to 
switch the name on.

 The default implementation of the utility will return the object 
 wrapped using the current IndexableObjectWrapper.
 
 If required, Local Site configuration can be used to provide different 
 implementations as needed.
 
 BACKWARDS COMPATIBILITY: Any catalog implementation that used a 
 different wrapper class would have to subclass the main catalog and 
 override the relevant function, so will be unaffected by the change.
 
 Any thoughts?

+1 in general

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Martin Aspeli
Jens Vagelpohl wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 
 On Mar 10, 2009, at 11:08 , Martin Aspeli wrote:
 
 I think we all agree on this. In retrospect, it would've been a better
 idea to push for plone.indexer to be a part of CMF. However, I
 implemented it driven by Plone's release cycle and feature proposal
 process, which is why it ended up as it did. *I* want this feature for
 Plone, but it'd be even better if others could benefit.
 
 IMHO the release cycle argument doesn't wash. We've always had CMF  
 releases in preparation for important Plone releases, and I'm happy to  
 continue that.

I'm not arguing. I'm saying that it didn't really cross my mind, because 
I was improving something that was already Plone specific (the 
ExtensibleIndexableObjectWrapper) in response to a Plone demand and 
working towards a Plone deadline. Hindsight is a good thing, and maybe 
it would've been better to try to all of it down into the stack. In this 
case, I didn't.

Except that I kind of did... I created a package with no other Plone 
dependencies, in the hope that it *could* be useful. I didn't take the 
time to discuss it on this list, which I should have. However, the 
desire for it to be re-usable by other CMF consumers is clearly in evidence.

 Of course, it's not too late for that. If the license issue can be
 overcome (and I'm pretty sure that it will by April/May), then CMF can
 depend on plone.indexer if it so wants, and I'm willing to help make
 that possible if it means changing plone.indexer or helping with the  
 CMF
 level implementation.
 
 Thanks, I appreciate that.
 
 Generally, I think now that the ZF has cleared up the remaining issues  
 about code ownership etc. we finally have two entities, the ZF and the  
 Plone Foundation, that are the perfect platform for official issues  
 like code donations, or for coordinating other cooperation issues. I  
 can't judge how the Plone Foundation acts within the Plone community,  
 but as far as the Zope Foundation goes, Martijn has been doing a lot  
 of work to make it more relevant and an important player in the actual  
 software development process.

Indeed!

Bear in mind that the Plone Foundation has an explicit goal *not* to 
interfere with software development. However, it does deal with issues 
of IP and so I agree the two foundations are the right forum for this 
type of thing.

 In the future, it may be that we can meet in the middle on this. When
 the PLIP process kicks off, it'd be good if the CMF developers had a
 look in as well. We should probably be better at announcing the  
 various
 deadlines and proposals on this list, but if you guys see something  
 that
 you feel would be a good fit further down, it doesn't hurt to raise
 that, lest the developer hasn't thought about it.
 
 Is there any kind of low-traffic announcement list for things like  
 PLIPs? I'm not subscribed to any Plone list because of (for me at  
 least) signal to noise ratio fears.

There's plone-announce, but I don't think this was announced there. I 
actually think the Plone release manager should cross-post a few 
important announcements to this list, though.

The actual feature discussion happens on the medium-traffic 
framework-team list, which you can join. In fact, it'd be great if you 
did, as we'd appreciate your input, but I realise it may not be 
something you want to spend a lot of time on.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On Mar 10, 2009, at 14:21 , Martin Aspeli wrote:

 The actual feature discussion happens on the medium-traffic
 framework-team list, which you can join. In fact, it'd be great if you
 did, as we'd appreciate your input, but I realise it may not be
 something you want to spend a lot of time on.

I'll join, sure. Joining does not imply activity beyond reading ;-)

If there was a narrow-scoped announce-type list that contains  
announcements like PLIPs or important development decisions that may  
be of interest to the CMF developers as well then it would be useful  
to pipe it into this list. That's one reason I asked.

jens



-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkm2bQkACgkQRAx5nvEhZLKP4wCeK5mW5+r4Ie0s1sghrz20zqWG
gDgAnjQelFAI2qdpRiZMCog+JpCIGW0s
=JEV8
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Hanno Schlichting
Martin Aspeli wrote:
 Jens Vagelpohl wrote:
 Is there any kind of low-traffic announcement list for things like  
 PLIPs? I'm not subscribed to any Plone list because of (for me at  
 least) signal to noise ratio fears.
 
 There's plone-announce, but I don't think this was announced there.

plone-announce is targeted at consumers of Plone, so has information
like New Symposium coming up, Plone 3.2 released.

 I actually think the Plone release manager should cross-post a few 
 important announcements to this list, though.

We could probably do that. There is a lot of information which isn't
relevant at all to the CMF level nor the Zope level in the same ways.

 The actual feature discussion happens on the medium-traffic 
 framework-team list, which you can join. In fact, it'd be great if you 
 did, as we'd appreciate your input, but I realise it may not be 
 something you want to spend a lot of time on.

One way to get quite a filtered list is to look at the PLIP's themselves
from time to time. For Plone 3.3 this is:
http://plone.org/products/plone/releases/3.3 We can make sure to post
the important dates for our release process to this list and provide at
least this kind of URL.

For Plone 4.0 we haven't probably started the process yet (my fault) but
have some things available in the listing at:
http://dev.plone.org/plone/milestone/4.0

The items on the 4.0 list here are basically all of my personal pet
peeves and there's a lot of more things we are going to do, like
completely revamp the admin UI and probably use Dexterity for the
default types, while retaining backwards compatible support with Archetypes.

Hanno

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread Martin Aspeli
yuppie wrote:

 AFAICS wrapping the object before looking up adapters is unnecessary. 
 The catalog should do the lookup directly and the existing features 
 provided by IndexableObjectWrapper should be reimplemented as adapters.

Bear in mind that there is a difference between getting the wrapper 
itself, and getting the value to catalogue for a particular *attribute* 
of the wrapper (e.g. allowedRolesAndUsers).

The CatalogTool subclass in Plone solves the former. plone.indexer uses 
the hook it puts in place to solve the latter.

I think at a minimum, CMF should just make the whole wrapper swappable 
by looking it up as an adapter. Then people could choose to use 
plone.indexer if they so needed (we'd obviously need to change 
plone.indexer to provide an appropriate adapter based on a CMF interface 
rather than a Plone one, and then deprecate the Plone version). For 
smaller applications, it may just be unnecessary complexity.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread yuppie
Hi Martin!


Martin Aspeli wrote:
 yuppie wrote:
 For the CMF project it is essential to have full control over its own 
 layer of the stack and to participate in the development of the Zope 
 layer. Using packages from the Plone repository means either using them 
 as a black box or joining the Plone Foundation to participate in their 
 development. IMO both options are not acceptable.
 
 You don't need to join the Plone Foundation to develop packages in 
 svn.plone.org. You *do* need to sign a contributor agreement granting 
 some IP rights over that code to the Plone Foundation, in return for a 
 promise that it will always be available under an open source license. 
 There are no limits on who can sign that agreement or for what purpose 
 they choose to work with the code in that repository.
 
 Of course, the same goes for svn.zope.org: you need to sign a document 
 and grant certain rights over your work to the Zope Foundation.
 
 If CMF really cannot use packages not in svn.zope.org, then that's a bit 
 sad and will invariably lead to a lot of re-invention rather than 
 re-use. I don't really understand why it is essential to have this 
 level of control over every line of code you use. This is entirely a 
 self-imposed restriction.

Just to make it clear: I'm talking about the code in the CMF and the 
Zope layer. Not about lower level layers. I'm absolutely fine with 
having Python and some other libraries in different repositories. And 
I'm not talking about CMF users. I'm sure there are good reasons to use 
Plone libraries together with the CMF.

I'm talking about closely related code. Maintaining it in different 
repositories with different code ownership, license and policies creates 
extra costs. Either everybody has to work in both repositories or you 
have to ask people to make changes are releases. Refactoring code across 
repository boundaries becomes almost impossible.

 For technical reasons this collaboration is asymmetric. Plone is built 
 on top of Zope and CMF, not the other way round. If you want to work 
 really close with these communities, you have to be part of them and use
 their repository.
 
 I wrote a package that, I hope, is useful. I am pretty sure it'll work 
 with plain CMF and therefore with other consumers of the CMF, and if 
 doesn't, I'd consider that a bug and fix it. I'm willing to work to make 
 that package a part of the CMF platform, whether optional or fully 
 integrated.
 
 To a certain extent, it already is: someone suing the CMF can choose to 
 use plone.indexer in their own project, though they'll need to install 
 it themselves. I don't quite see how this is asymmetric. Rather, it is 
 an outcome of the evolution of this particular package.
 
 It's up to the CMF maintainers to decide whether it is desirable to 
 actually adopt this package as part of a standard release.
 
 It's not always going to be appropriate (or even if it is, it's not 
 always going to be the case) for every new line of code that *could* be 
 useful to all/most CMF consumers to be built as part of the CMF itself 
 from the outset. If the CMF project has no model for incorporating code 
 from outside its (rather small) community, then I think that is more to 
 the detriment of CMF than to those who created those packages and chose 
 to put the effort in to reduce their dependencies and make them more 
 generally useful.

I don't think it's the role of the CMF project to integrate all the code 
that could be useful for people building applications. Others like Plone 
can do that much better.

The CMF has to become simpler, not more complex. Third party products 
always add complexity. Incorporating new code means replacing old code 
in a backwards compatible way, not just adding another hook.

Code evolution is useful, but it can't replace discussions and 
consolidation.


Cheers,

Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] IndexableObjectWrapper

2009-03-10 Thread yuppie
Martin Aspeli wrote:
 yuppie wrote:
 
 AFAICS wrapping the object before looking up adapters is unnecessary. 
 The catalog should do the lookup directly and the existing features 
 provided by IndexableObjectWrapper should be reimplemented as adapters.
 
 Bear in mind that there is a difference between getting the wrapper 
 itself, and getting the value to catalogue for a particular *attribute* 
 of the wrapper (e.g. allowedRolesAndUsers).

Why do we need the wrapper? Why can't we look up directly the adapter 
for the particular attribute?

Cheers, Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] SVN: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py Clean out module-scope imports.

2009-03-10 Thread yuppie
Tres Seaver wrote:
 Log message for revision 97800:
   Clean out module-scope imports.
 
 Changed:
   U   Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
 
 -=-
 Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
 ===
 --- Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py 
 2009-03-10 12:59:04 UTC (rev 97799)
 +++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py 
 2009-03-10 13:20:03 UTC (rev 97800)
 @@ -16,17 +16,7 @@
  
  
  import unittest
 -import Testing
  
 -from AccessControl.SecurityManagement import getSecurityManager
 -from AccessControl.SecurityManagement import newSecurityManager
 -from DateTime import DateTime
 -from zope.interface.verify import verifyClass
 -
 -from Products.CMFCore.tests.base.dummy import DummyContent
 -from Products.CMFCore.tests.base.dummy import DummySite
 -from Products.CMFCore.tests.base.security import OmnipotentUser
 -from Products.CMFCore.tests.base.security import UserWithRoles
  from Products.CMFCore.tests.base.testcase import SecurityTest

What was wrong with these imports?

Cheers, Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] SVN: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py Clean out module-scope imports.

2009-03-10 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

yuppie wrote:
 Tres Seaver wrote:
 Log message for revision 97800:
   Clean out module-scope imports.

 Changed:
   U   Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py

 -=-
 Modified: Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
 ===
 --- Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
 2009-03-10 12:59:04 UTC (rev 97799)
 +++ Products.CMFCore/trunk/Products/CMFCore/tests/test_CatalogTool.py
 2009-03-10 13:20:03 UTC (rev 97800)
 @@ -16,17 +16,7 @@
  
  
  import unittest
 -import Testing
  
 -from AccessControl.SecurityManagement import getSecurityManager
 -from AccessControl.SecurityManagement import newSecurityManager
 -from DateTime import DateTime
 -from zope.interface.verify import verifyClass
 -
 -from Products.CMFCore.tests.base.dummy import DummyContent
 -from Products.CMFCore.tests.base.dummy import DummySite
 -from Products.CMFCore.tests.base.security import OmnipotentUser
 -from Products.CMFCore.tests.base.security import UserWithRoles
  from Products.CMFCore.tests.base.testcase import SecurityTest
 
 What was wrong with these imports?

I don't like module-scope imports in unit tests:  I want tests to
*fail*, not be skipped, when something is not importable.  I put my
rationale in this blog entry:


http://palladion.com/home/tseaver/obzervationz/2008/unit_testing_notes-20080724



Tres.
- --
===
Tres Seaver  +1 540-429-0999  tsea...@palladion.com
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJtrFn+gerLs4ltQ4RAhOAAKCS/QoCbex5FOE+CevM4oPS0bVU5wCgocg7
bPxq/nV3CaSX/0CFtPvsaOQ=
=Wzi8
-END PGP SIGNATURE-

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests