Re: [Zope-dev] Re: [Zope3-dev] RFC: Reunite Zope 2 and Zope 3 in the source code repository

2005-11-24 Thread Martijn Faassen

Chris McDonough wrote:


On Nov 24, 2005, at 8:37 AM, Martijn Faassen wrote:

I recall a slightly different discussion I was involved in. I  
remember Zope 2 core developers worrying about the inclusion of  Five 
in Zope 2.8; they were worried they'd need to maintain its  codebase.


I was one of these people.  Since then, I've completely changed my  
mind; it was a pure win.


It makes me happy to hear that. Thanks!

Regards,

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



Re: [Zope-dev] Re: [Zope3-dev] RFC: Reunite Zope 2 and Zope 3 in the source code repository

2005-11-24 Thread Martijn Faassen

Paul Winkler wrote:

On Thu, Nov 24, 2005 at 11:03:35PM +0800, Philipp von Weitershausen wrote:


I'd love to participate in some sprints on these.


Me too.


PyCon Dallas 2006 is only 3 months away and would be a great opportunity
for such sprints.  There's nothing about Zope here yet:
http://wiki.python.org/moin/PyCon2006/Sprints



I plan to attend and I would really love to sprint on further
fivification of zope 2.


That'd be really cool.


p.s. No, I can't volunteer to do any coordination work for this. I'll
already have plenty to do preparing for my two (Five-related) talks.


Cool to hear you're giving Five related talks. Is there any description 
of these available online? (not that it's likely I'll be able to attend 
PyCon, but I'm very curious)


Regards,

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



Re: [Zope3-dev] RFC: Reunite Zope 2 and Zope 3 in the source code repository

2005-11-23 Thread Martijn Faassen

Stephan Richter wrote:

On Wednesday 23 November 2005 10:16, Philipp von Weitershausen wrote:


Sounds crazy, I know. But I'm serious. Looking for your comments at:
http://dev.zope.org/Zope3/ReuniteZope2AndZope3InTheSourceCodeRepository


I am -1. If I could I would veto this proposal. Here is why:

To be totally honest, I really, really don't care about Zope 2!


I'll debate with you this reason. I don't think that this changes your 
dislike of merging the repositories and this argument is on a side-track 
and not intended to convince you of this.


What my point is here is that your attitude about Zope 2 is wrong: as a 
pure-play Zope 3 developer you *should* care about Zope 2.


Some of us have been doing quite a bit of work of bringing Zope 3 to the 
Zope 2 world. I believe that at least partially as a result of this, 
Zope 3 is getting a lot more attention from Zope 2 developers. I think 
that this attention is extremely valuable to the Zope 3 project. There 
is an awful lot of experience, skills and knowledge in the Zope 2 world 
that is immensely valuable to Zope 3 developers. We *don't* have a full 
respresentation of these extremely valuable perspectives in the Zope 3 
development community right now.


If Zope 2 developers get the impression that core Zope 3 developers 
don't give a shit about Zope 2, they may not be so likely to actually 
come on board. That would be a disastrous development indeed. We really 
need an increased connection between the Zope 2 world and the Zope 3 world.


Regards,

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



Re: [Zope3-dev] __init__.py interfaces.py guidelines?

2005-11-22 Thread Martijn Faassen

Gary Poster wrote:


On Nov 21, 2005, at 12:29 PM, Jean-Marc Orliaguet wrote:



There is another place where there seems to be two different  patterns 
too:


sometimes we have:

  import zope.schema
  name = zope.schema.TextLine(...)

and sometimes:

  from zope.schema import TextLine
  name = TextLine(...)



FWIW, a third is

  from zope import schema

which I often do for zope.component, zope.interface, zope.event, and  
zope.schema.


I'm not weighing in on the style issues.


I like this third style option, import the last module, and then use the 
dot notation, and I tend to move towards this pattern in most of my 
code. Sometimes of course importing the one class is more convenient. 
Rarely do I use the full dot notation.


The benefit of the third option is that it cuts down on your imports and 
keeps some namespace information in your code without having to do a lot 
of typing nonetheless.


For cases like schema and for instance, hurry.query, there are cases 
where the same name in the module is referenced many times in the same 
file, and in that case I may be more inclined to import the name 
directly without any module prefix.


I don't think using any of these patterns is a big style problem (I'm 
much less opinionated about this than about code in __init__.py); it's 
hard to recommend a single practice, so perhaps we shouldn't.


Regards,

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



Re: [Zope3-dev] __init__.py interfaces.py guidelines?

2005-11-21 Thread Martijn Faassen

Hi there,

Jean-Marc Orliaguet wrote:
  are there any guidelines / best practises for setting the contents of
__init__.py, interfaces.py, and the packages that they import or that 
they expose? there are too many alternatives and too many ways of ending 
up doing circular imports and I'd like to have a consistent pattern for 
reducing that risk.


but there doesn't seem to be a 100% clear pattern to follow when looking 
at the zope3 code base:


some packages in have all the implementation code in __init__.py, others 
have it in a file and the imports are done in __init__.py, others import 
files starting with an underscore (to make them private I suppose).


I personally very much prefer __init__.py to be as empty as possible. I 
like namespace packages. For me it's always a doubletake when I realize 
most of the implementation of some Zope 3 package I'm trying to 
understand is actually hiding out in __init__.py, so I don't like this 
practice.


some packages have an interfaces.py file others have a interfaces 
folder, others have the interface definitions in the implementation code 
itself ...


The pattern changed over time during Zope 3 development. In my current 
opinion, interfaces.py should usually be able to accomodate all the 
interfaces of a package. If interface definitions are to be 'private' 
then they can be in the implementation code, but such privacy is very, 
very rare in practice.


Jim mentioned to me that only public and official interface definitions 
should be listed in 'interfaces', the others should be defined inline 
with the implementation - are there guidelines to follow?


Don't know. I think the best rule would be to make the interface public 
unless you have a very good reason not to do so, not the other way around.


I like the inline option because it reduces the amount of imports and 
the risk for import cycles. Does it mean that interfaces should be 
defined inline with the code and those that are official be imported 
from intertaces.py? It sounds like a good pattern.


With this pattern, the chances are increased people will point to the 
interface through two different paths, and the chances are increased 
that people forget to import things to interfaces.py even though they 
should. It's also an extra indirection; people looking for the interface 
referenced in some ZCML file discover that in fact they need to go to 
another module yet again when they look it up.


I tend to stick all my interfaces in interfaces.py. I believe keeping 
interfaces at least somewhat separate from implementation is valuable. 
It also makes for an easy place to go to to actually find out what 
interfaces are defined by a package -- I don't have to go read all the 
source code to see what interfaces exist. You can posit documentation 
tools that create such a list of all interfaces, but I like my code 
being inviting to all comers, whether or not they have particular tools.


If you really like the other pattern of sticking interfaces together 
with implementation code, then perhaps don't import them into 
interfaces.py and don't add an interfaces.py at all. This way things 
will at least be clearly defined in one place only.


I don't really think the public/private divide between interfaces is 
strong enough to worry too much about hiding certain interfaces.


My recommendations for any guidelines would be:

* use namespace packages, so nothing (or very minimal stuff only, like a 
few imports) in __init__.py. I think this is recommended practice 
outside of Zope 3 as well, so we should stick with this. Twisted seems 
to have small or empty __init__.py packages for instance, and so does 
PEAK, to compare with some other large frameworks in Python.


* use interfaces.py and put interfaces there unless there's a very good 
reason it should be private (which is rare).


Regards,

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



Re: [Zope3-dev] __init__.py interfaces.py guidelines?

2005-11-21 Thread Martijn Faassen

Jean-Marc Orliaguet wrote:

OK, so to summarize this  thread:



- __init__.py files are empty

  unless for the convenient import of other modules located in the same 
package or in a subpackage?


I'm typically okay with this, though I suspect it can in some cases lead 
to circular imports you may not otherwise get, and makes finding what's 
defined harder than if you directly import from the place things are 
defined. It does make things more convenient however, in some cases.



- public interfaces are stored in interfaces.py

- private interfaces are written along with the implementation code


Right. And point taken from both you and Jim: sometimes you have private 
interfaces and you don't want to commit to supporting too much API.


- what about file names with an underscore at the beginning? They are 
used in zope.schema for instance


Hm, if I see a module with an underscore I definitely don't feel very 
inclined to import *anything* in it from my own code.


I don't use underscore modules a lot in my code, though sometimes if 
some code is only implementation detail to support some other module, 
it's not a bad thing to do.



- what about import paths inside a same package: relative or absolute?



   from mypackage.interfaces import ISomeInterface
or:
   from interfaces import ISomeInterface


I prefer absolute. It makes changing the package root harder, but this 
is not common in practice, and it is much less error-prone in the end as 
any namespace issues are avoided. If I call my module 'xml' and I do a 
relative import I may have a problem; I don't want to even think about 
it :). When Python grows a way to do explicit relative imports then I'll 
think again.


Thanks for this thread! I hope this information will be put on some web 
page somewhere eventually.


Regards,

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



Re: [Zope3-dev] hurry.query in Zope 3.2?

2005-10-28 Thread Martijn Faassen

Hey,

Martijn Faassen wrote:

Would there be any interest in merging hurry.query into Zope 3.2?


Apparently not, or at least people are lacking in time, which is 
understandable as I do too. :) I'll try in more advance for Zope 3.3. We 
find it very useful here at Infrae, but of course it works just fine as 
a stand-alone library too.


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] hurry.query in Zope 3.2?

2005-10-24 Thread Martijn Faassen

Hi there,

Would there be any interest in merging hurry.query into Zope 3.2?

What it does:

hurry.query - higher level query system built on top of the Zope 3
  catalog. Some inspiration came from Dieter Maurer's
  AdvancedQuery. See src/hurry/query/query.txt for
  documentation.

Here's the code:

http://codespeak.net/svn/z3/hurry/trunk/src/hurry/query/

And here's a doctest:

http://codespeak.net/svn/z3/hurry/trunk/src/hurry/query/query.txt

Of course, it probably needs a review and adaptations before it's 
accepted, and time until the feature freeze in november is short. It 
would be a very useful addition to Zope 3's featureset, however. It 
exposes features of various indexes that the normal catalog API does not 
expose, or if so, only very obscurely. :) Now that I think of it, 
exposing the ZCTextIndex properly with the various features involved may 
need the most work.


If there's interest, I'd really appreciate volunteers for putting up a 
proposal on the wiki and integrating it into the codebase. This way it'd 
get a review by that person. If it'd be up to myself I likely won't have 
time...


By the way, is zc.catalog up for merging with Zope 3.2, or won't this 
happen yet? hurry.query has a dependency on zc.catalog, though I believe 
 I succeeded in keeping this optional.


Regards,

Martijn
___
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: zope3 website report?

2005-10-12 Thread Martijn Faassen

Stephan Richter wrote:

On Tuesday 11 October 2005 12:41, Philipp von Weitershausen wrote:

If anyone here really needs WYSIWYG, please make a point, but I doubt that 
there will be one...



It's a top priority for Jim. Uwe and I agreed we would prefer ReST.


I got the impression from Jim that this was just an idea that he wanted 
to try out. Ideas you're eager to try are different than top priorities, 
right?


Unfortunately having a wiki page in HTML and in ReST is rather 
incompatible; while you can translate ReST to HTML, HTML to ReST would 
at best be unreliable and confusing. This means HTML pages can only be 
edited as HTML ever.


Then again, I'm interested in seeing how the idea would work. Whether 
that should be driving a Zope 3 site as a whole is another question.


Regards,

Martijn
___
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: zope3 website report?

2005-10-12 Thread Martijn Faassen

Hey Mats,

Thanks for joining this discussion!

Mats Nordgren wrote:

My name is Mats, I've visited #zope-dev under the nick gnosis.  I've long
been a fan of Zope but very inactive in the community.  I'm not much of a
programmer and always had a hard time grepping Zope2.  Zope3 has made great
strides to develop simple stuff like content object etc, I still have a hard
time with more advanced stuff like workflow, memberships, catalog (I know
these might seem like trivial stuff to the likes of you ;)


These things are never trivial to me at least; don't underestimate 
yourself there by overestimating others. :)



I've spoken to J1m and emailed Stephan and asked if there was anything I
could do with helping this along, ideas, organization, editing, etc.  I'm
with Martijn that the site should itself be marketing for Zope3 technology
and should be geared towards all levels of knowledge on Zope technology.


Great to hear you're offering to help! Perhaps you and I should just get 
together and try to write up some texts. Drop me a mail if you like.



I'd love to see a much more extensive section with how-tos, recipes, and
tutorials.  If I can conquer Zope we should have hit the bottom of the
proficiency scale :)  Perhaps I can get there by helping with those specific
sections.


Great idea! My first contributions to Zope back in '99 or so were in the 
Zope Documentation Project. Stephan Richter also was heavily involved in 
this back then.



Would there be any chance that a message board could be included directly on
the site for support?  Perhaps take Stephan's messageboard tutorial?  This
would showcase Zope3 and add more layers of support.  Perhaps this could be
synced with the zope-user mail list?  Just make it easier to get quick help
without the somewhat tedious process of getting running on the list.


It's something to consider, though I'd like to set the technology 
requirements for any new Zope 3 site as low as possible, so that we 
don't have an excuse from doing stuff. :)


Regards,

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



Re: [Zope3-dev] zope3 website report?

2005-10-11 Thread Martijn Faassen

Uwe Oestermeier wrote:

Martijn Faassen wrote:

I'm very curious to see what work was done on a Zope 3 website at the 
Neckar sprint. Can someone send a report to the list?
 
We (Dominik Huber, Tonico Strasser, Gregoire Weber, and I) set up a 
zope3org package (http://svn.zope.org/zope3org/) with the following parts:


wikification - A wiki view that transforms sets of HTML documents
within in a nested folder structure into a Wiki. We defined no
 special content types. We decided to use only files and folders
 to be able to work via ftp, fssync etc. as much as possible.

comment - A simple comment implementation that stores list of comments
in an object's annotations.
   
kupusupport - An integration of Kupu into Zope3. Defines an editor

  that can be selected from the ZMI menu. We started that from
an older version of the IsarSprint and still have to do some work
to support the current 1.3.1 version of Kupu.
  
importer  - a wget like tool that allows to import existing Wiki pages

or other HTML documents from any URL. The pages can be post-
processed to extract the content and strip out navigation, etc.
	This tool 


Cool stuff! Thanks for this report! I see mostly technical stuff was 
done. Especially things like comment and kupusupport should also be 
useful in completely different projects.


Has work been done on a reasonably slick layout for the website as well 
or is this still planned?


Has an analysis been done what the goals are of this new site? The Zope 
3 wiki has traditionally been mostly a developer's tools to handle 
proposals and the like. It's also functioned as documentation, but in my 
opinion wasn't very accessible, and positively intimidating for beginners.


As goals for the site, at least the top level of it, I'd suggest 
marketing, and developer marketing primarily. We need to put across that 
Zope 3 is powerful, cool, easy, extensible, and built on the vast amount 
of experience with web application development that we have as the Zope 
community.


Developer marketing also means that we need to demonstrate all the 
things Zope 3 can do for you, i.e. features.


It also means we need to make clear there's a strong community, and thus
we need to show how to get involved, with mailing lists, irc channels, 
svn repositories, and the like.


Developer marketing also means there needs to be quick access to easy to 
follow tutorials, and access to reference material when needed. We need 
to make the learning curve easier. In this sense the Zope 3 site will 
also have the goal of being tutorial and reference.


Another goal of the site could be to replace the current wiki, i.e. a 
tool used by Zope 3 developers to talk about proposals, designs, etc. 
This should however be carefully split off into a special section that 
people won't accidentally stumble into. We don't want a newbie to browse 
around and unexpectly run into a half finished proposal on 
ContainerAdapterSecurityProxyFactoryRegistration. :)


Anyway, I'm volunteering to help out with the text and basic 
organization of this site.


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: zope3 website report?

2005-10-11 Thread Martijn Faassen

Hey Philipp,

Philipp von Weitershausen wrote:
[snip]

Here's my 2 cents, even if I might be too late (but hey, when should
I have brought this up?): I think it's a *bad* idea to host Zope 3 on
its own site, because:

a) It will be yet another systems we need maintainance volunteers
for. As it seems we don't even have enough for the current zope.org
right now. If we had more volunteers with more time on their hands,
they would have already been on the matter and the dog-slow system
would have been improved a long time ago (note that I'm not
necessarily saying replaced). A zope3.org will eventually need some
caching, it will eventually need user management, etc. We already
have a human resource problem on the development side, what makes
everyone think we won't have it on the maintainance side?


A counterargument to this would be that volunteers to maintain the
present zope.org infrastructure and content are hard to find. A leaner,
meaner, separate zope3.org might find more people that want to be involved.

Sorting out the content of zope.org, which has been carried around for
more than half a decade, is a job I wouldn't volunteer for. Helping to
write some content for a fresh new site and figuring out what fits where
is something I *am* volunteering for.


b) It is exactly the opposite of what we've been trying to do for the
 last couple of months: convergence, not divergence! If we want Zope
3 and its Component Architecture to be recognized by people, it needs
to be a first class citizen on zope.org, not some separate site. Why?
 Because Zope 2 will soon incorporate lots of Zope 3 technology (it 
already does incorporate some), making it all look like two separate 
worlds is far from reality.


As Benji said, we want to market to non-Zope 2 developers with this as
well, and we can link zope.org to zope3.org. Placing some distance
between Zope 3 and Zope 2 is useful in order to convince people who've
been scar(r)ed by their previous Zope 2 experiences, or at least
received the meme that Zope 2 is something Python programmers don't want
to mix with, to take another look at Zope 3 now.

Perhaps we can come up with a similar scenario as what we think is going
to happen with Zope 2 and Zope 3. Zope 2 is the old, hard to maintain
system here, Zope 3 the new cool system. We intend to improve Zope 2 by
adding in Zope 3 pieces, and eventually start replacing parts of it with
Zope 3 technology. In the foggy future, Zope 2 and Zope 3 become
profiles of the same Zope system, until the differences have gone away.

zope3.org could be to zope.org what Zope 3 is to Zope 2. We could
cherrypick the content in zope.org that is about Zope 3 and want to have
in the new site. Eventually we may start building up a section about
Zope 3 in Zope 2 as well on the new zope3.org. Over time, more and more
of the useful content gets moved, until finally zope.org and zope3.org
are essential the same website about Zope. At some stage we flip a
switch and turn zope3.org into zope.org.

I have a slight preference for something like zope3.org as compared to
zope.org/zope3, as I think that makes the separation a bit clearer. Of
course, zope.org/zope3 could be technologically separated from the rest
of zope.org too.

[snip]
The new thing is, that Wikipages should be editable with a WYSIWYG 
editor after the migration. I hope that there will be an option to 
choose structured text too.


Putting WYSIWYG integration into a list of first-class todo items
seems like wrong prioritization to me (I'd rather have a stable
backend first), but I'm not going to get into that now. It seems that
community input wasn't wanted (and I would love to be proven wrong on
that)...


I think it's important to try to separate the content
production/technology aspect of things, which the sprint apparently
focused on from the actual site content aspects.

From what I can see, the sprint focused on using Zope 3 technologies to
build a Zope 3 site. To use Zope 3 for a Zope 3 site seems a good idea
from the marketing perspective already -- we want to demonstrate we can
eat our own dogfood. The idea seems to have been to use a wiki for this,
something which also has a predecent within the Zope community, as well
as in the open source community at large. The whole WYSIWYG HTML-edit
wiki thing is a neat idea involving using HTML as the wiki markup
language instead of something else. We'll just have to see how that
works out.

Regards,

Martijn
___
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: zope3 website report?

2005-10-11 Thread Martijn Faassen

Stephan Richter wrote:

On Tuesday 11 October 2005 09:36, Jake wrote:


Why not spend the time and energy making Zope.org a better place
than just moving it off to yet another under-developed and utilized
website?



zope.org has very different requirements than zope3.org. The reason
we want our own system is that we need a collaboration tool that
works.


So this is the goal of zope3.org? In this case I'm not interested in it
as much as I thought. I thought we wanted to present zope 3 well to the
outside world. I'm not particularly interested a special site for the
Zope 3 proposal wiki.

[snip]

zope.org will be very heavy. zope3.org will be very light; a simple
Wiki-like site that promotes collaboration. Even marketing is out of
scope right now.


Can you point me to the place where this was decided? Zope 3 is urgently 
in need of better marketing.


Anyway, if this is indeed the plan for zope3.org, I was under a few 
severe misapprehensions and I hereby de-volunteer.


Regards,

Martijn
___
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: zope3 website report?

2005-10-11 Thread Martijn Faassen

Reinoud van Leeuwen wrote:

On Tue, Oct 11, 2005 at 03:53:23PM +0200, Martijn Faassen wrote:


Perhaps we can come up with a similar scenario as what we think is going
to happen with Zope 2 and Zope 3. Zope 2 is the old, hard to maintain
system here, Zope 3 the new cool system. We intend to improve Zope 2 by
adding in Zope 3 pieces, and eventually start replacing parts of it with
Zope 3 technology. In the foggy future, Zope 2 and Zope 3 become
profiles of the same Zope system, until the differences have gone away.


Do you mean that the site should run Zope3? Do mature Z3 
applications exist for this?


I think a site about Zope 3 should ideally run Zope 3. Since there's 
indeed not much mature in the way of CMS software for Zope 3, and since 
I've seen reasonable results reached with wiki software to manage sites 
about open source projects, I figured using a Z3 wiki to manage the site

would be doable.

Then again, the sprinters apparently have a quite different idea of what 
'zope3.org' will be than myself and some others on the mailing list. 
Their goal seems to be to replace the component architecture wiki. This 
is not a very important priority to me; the wiki is only in use by a few 
core Zope 3 developers and in its present state is an anti-marketing tool.


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] zope3.org terminology

2005-10-11 Thread Martijn Faassen

Stephan Richter wrote:

On Tuesday 11 October 2005 08:57, Martijn Faassen wrote:


As goals for the site, at least the top level of it, I'd suggest
marketing, and developer marketing primarily. We need to put across that
Zope 3 is powerful, cool, easy, extensible, and built on the vast amount
of experience with web application development that we have as the Zope
community.

Developer marketing also means that we need to demonstrate all the
things Zope 3 can do for you, i.e. features.


The primary first goal was a collaboration site for us. But I think the goals 
you listed here should be considered as well.


[snip]


Anyway, I'm volunteering to help out with the text and basic
organization of this site.


Great! We have no thought much about structure at all, so if we could start 
another thread discussing it, that would be great! I personally have no 
preference. For me the current layout of the Zope 3 developer wiki is 95% to 
what I want. :-)


Okay, there's some confusion about this, and I should've read to this 
point in the thread before I started replying... I much more interested 
in Zope 3 (developer-level) marketing than in improving the Zope 3 
developer's wiki, and think anything called 'zope3.org' should better 
have a good top-level set of pages that appeals to a broader audience 
than Zope 3 core developers.


So let's not call the Zope 3 developers wiki 'zope3.org', as this is 
rather confusing...


Let's separate some concepts here:

* Zope 3 site: the new Zope 3 website with Zope 3 specific information. 
This could be hosted under zope3.org but is not a requirement.


* dev wiki NG: New Zope 3 developer's wiki. This will be hosted under 
the Zope 3 site, though I'd recommend strongly against hosting it under 
zope3.org toplevel as that'd be bad marketing.


* Zope 3 information integrated into zope.org. Probably done on a 
superficial level as it's rather a beast. If Zope 3 site becomes good 
enough we may turn around and integrate Zope 2 information *there* instead.


* Wikification: software to run dev wiki NG but not only that: also to 
run parts of the Zope 3 website. The idea is we try to use a wiki to run 
the Zope 3 site, so the wiki software is broader in scop than just for 
the dev wiki.


What happened at the sprint was mostly work on Wikification and dev wiki 
NG. It was *called* zope3.org but we'll now hopefully consider this a 
misnomer. :)


Regards,

Martijn
___
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: zope3 website report?

2005-10-11 Thread Martijn Faassen

Stephan Richter wrote:

On Tuesday 11 October 2005 12:20, Martijn Faassen wrote:


[snip]


zope.org will be very heavy. zope3.org will be very light; a simple
Wiki-like site that promotes collaboration. Even marketing is out of
scope right now.


Can you point me to the place where this was decided? Zope 3 is urgently
in need of better marketing.


Well, Jim and I simply agreed that our communication tools have to improve. 
Since we cannot easily alter the technology on zope.org, we remembered having 
zope3.org around to play with. 


Right, but I also had a chat with Jim about zope3.org at the Plone 
Conference and it wasn't my impression that it was just about the Zope 3 
developer's wiki. Perhaps this was a misunderstanding in our conversation.


I think a lot of people on the list (not you specifically) have seen the 
project too concretely. We have not decided anything, other than an approach 
we would like to try. It might not work at all. We wanted to keep the goals 
minimal and to subjects that we understand well; and that is a collaboration 
tool. There is a lot of room for other experiments, content structure, 
suggestions, etc.


All I suggest is that we try those new tools on the existing Zope 3 dev Wiki 
pages, since this content has to be available anyhow.


Yes, I think calling the whole project zope3.org was a bit of a misnomer 
which set people to think about things quite different than your intent. 
 That this happens to quite a lot of people is a hint that it might not 
be an optimal name anyway; people expect to see something else when they 
go there than that wiki. See my reply in the thread where I try to clean 
up our terminology.


Regards,

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



Re: [Zope3-dev] test.py renamed

2005-10-10 Thread Martijn Faassen

Jim Fulton wrote:


A better change would be to arrange for the root directory to be excluded
from the Python path. In general, any script we use should, by default,
exclude its directory from sys.path.


Maybe this only turns up if you have a package layout where the 
__init__.py is in the same place as the test runner? See also my recent 
blog posting, which talks about related matters:


http://faassen.n--tree.net/blog/view/weblog/2005/10/07/0

Groeten,

Martijn

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



Re: [Zope3-dev] event fired when a principal is created

2005-09-30 Thread Martijn Faassen

Jim Fulton wrote:

Martijn Faassen wrote:


Stephan Richter wrote:


On Friday 30 September 2005 04:58, Martijn Faassen wrote:


Such an event however does not appear to be fired when an
UnauthenticatedPrincipal gets fired. This makes adding groups to such a
principal not so easy.




I think you are right. Feel free to add this feature.


Right, I will tr to look into that in the future. I have a suspicion 
that the whole zope.app.authentication framework is more complicated 
than it has to be part due to the requirements of the whole etc/ 
framework.


It's possible that it's too complicated, but I can't see how to
blame site-management folders.


Okay, I was unclear. I think part of what's wrong is the UI. The 
authentication story has been written a bit too much towards a UI to 
configure it. This means that configuring it from Python code is a bit 
harder than it should be. Anyway, I need to think about it all some more.



  The whole principal prefix story doesn't make life easier

either (both authentication objects as well as authenticator plugins 
have support for a prefix but to make it all work you can't specify a 
prefix in both places..confusing).


Hm, you should be able to.  This was badly broken a few months
ago and it was improved, but I never looked at what was done.  I guess
I'd better do that.


Oh, then it might in fact be fixed now -- I am still working against the 
beta here.


Anyway, still trying to convince the thing to swallow IP-based groups..

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] a way to get the client IP address in Zope 3?

2005-09-29 Thread Martijn Faassen

Hi there,

There doesn't appear to be a way to get the client's IP address from the
request. Zope 2 has a getClientAddr() on the request object that uses
_client_addr, which gets created like this:

if environ.has_key('REMOTE_ADDR'):
self._client_addr = environ['REMOTE_ADDR']
if (environ.has_key('HTTP_X_FORWARDED_FOR') and
self._client_addr in trusted_proxies):
# REMOTE_ADDR is one of our trusted local proxies. Not
# really very remote at all.
# The proxy can tell us the IP of the real remote client in
# the forwarded-for header
self._client_addr = environ[
'HTTP_X_FORWARDED_FOR'].split(',')[-1].strip()
 else:
self._client_addr = ''

# The trusted_proxies configuration setting contains a sequence
# of front-end proxies that are trusted to supply an accurate
# X_FORWARDED_FOR header. If REMOTE_ADDR is one of the values in
# this list and it has set an X_FORWARDED_FOR header, ZPublisher
# copies REMOTE_ADDR into X_FORWARDED_BY, and the last element of
# the X_FORWARDED_FOR list into REMOTE_ADDR. X_FORWARDED_FOR is
# left unchanged. The ZConfig machinery may sets this attribute
# on initialization if any trusted-proxies are defined in the
# configuration file.

trusted_proxies = []

Would it be valuable to have equivalent machinery in Zope 3? I would
like to retrieve the IP address and it'd be nice if it worked with proxies.

Porting this code to Zope 3 sounds possible. Some problems:

* 'HTTP_X_FORWARDED_FOR' is not seen as something that ends up in
  environ, as it's not considered to be a valid cgi name by
  zope.publisher.browser. Where would it end up? In headers?

* There's no zconf setting in Zope 3 that I'm aware of to configure
  trusted_proxies

* there's a comment that cookie data is accessed before environ data.
  Does this mean a cookie could be crafted to fake REMOTE_ADDR?

Regards,

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



Re: [Zope3-dev] RFC: Rename principal to participant

2005-09-14 Thread Martijn Faassen

Steve Alexander wrote:

I think so too. But I whould not try to explain a PAU (pluggable
authentication utility) without to use the word principal. I think
using the words user or participant for a principal in this case is
not a good idea. 



Perhaps the scope of the PUA can be extended to have a plug-in factory
for User objects, and to make the current User easily available inside
page templates and other presentation code.

People who wish to use[1] the PUA would define their own User class,
which could be as simple as taking the principal id, but would often be
more complex according to the needs of their application.


Some abstractions to deal with user objects (which for instance can have 
an email address to name a common case) in Zope 3 would indeed be 
useful. I found I had to build my own already.


Note that such user objects (or group objects) in applications are 
frequently content objects and are accessible through content space. I 
think in Zope 2 terms this entity may be called 'member'...


The wrong way to go about this is to store user information somewhere 
under ++etc++, as that isn't content space in my book and I don't want 
to expose end users (that need to do user management sometimes) to 
anything in ++etc++. (it's okay to store low-level user information in 
++etc++, as at is now, but no extensible user info with extra 
information like email addresses, etc, I think).


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] hurry library put online

2005-09-09 Thread Martijn Faassen

Hi there,

I've just put the 'hurry' extension library for Zope 3.1 in the Zope 3 
base. For commentary on what it's all about, see my blog entry:


http://faassen.n--tree.net/blog/view/weblog/2005/09/09/0

In brief, it contains the higher level query language I talked about 
before, an advanced file widget, and a workflow engine.


Code is here:

http://codespeak.net/svn/z3/hurry/trunk/

Have fun!

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] hurry extension library for Zope 3.1 put online

2005-09-09 Thread Martijn Faassen

Hey Z3ECMers,

I've just put the 'hurry' extension library for Zope 3.1 in the Zope 3 
base. For commentary on what it's all about, see my blog entry:


http://faassen.n--tree.net/blog/view/weblog/2005/09/09/0

In brief, it contains the higher level query language I talked about 
before, an advanced file widget, and a workflow engine.


I imagine the file widget and query language are probably lower level 
than what the ECM project is all about, though that doesn't make them 
less useful. The little workflow engine we wrote because we were in a 
hurry to use one; we're not aiming to compete with full-blown ones that 
are being worked on. It may be useful for people though in applications 
that don't need the power a larger workflow system brings, and may this 
way avoid some of the complexities.


Code is here:

http://codespeak.net/svn/z3/hurry/trunk/

So as not to spread out discussion over too many forums, I think for now 
the best forum to discuss the hurry library is zope3-dev. (or zope3-users).


Have fun!

Regards,

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



Re: [Zope3-dev] hurry extension library for Zope 3.1 put online

2005-09-09 Thread Martijn Faassen

Martijn Faassen wrote:

Hey Z3ECMers,


[oops, wrong mailing list; will resend. sorry for people seeing this twice]

Regards,

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



Re: [Zope3-dev] defaultView cannot take class as for

2005-09-08 Thread Martijn Faassen

Martijn Faassen wrote:

Jim Fulton wrote:


Martijn Faassen wrote:

While the browser:page directive can take a content class for its 
'for' attribute (instead of an interface), the browser:defaultView 
directive doesn't accept this. I tried changing the interface of the 
defaultView directive so it also accepts classes, but that by itself 
does not appear to make it work. This somewhat limits the utility of 
the ability to pass in classes instead of interfaces to the page 
directive; the point is to have a shortcut so an interface doesn't 
always need to be defined.


Before I dig deeper, I'd first like to know whether this would indeed 
be considered to be bug? If so, should I check this into trunk or 
also the Zope 3.1?


The intent was to deprecate the use of the defaultView directive to
specify anything but the default view name.  This decision was made
before we had a deprecation mechanism.

The recommended way to create a default view is to create a view named
index.html, which can be done with the page directive.


Aaah, I didn't realize that. I'll just use that then.


Hm, after talking to JW here I'm confused again. (though I think 
index.html will work in this case).


Is the following construction deprecated?

defaultView name=foo for=... /

If not, then my complaint is that 'for' only accepts interfaces, not 
classes, while the 'for' for the page directive also accepts classes.


So, as far as I understand, I am not trying to use defaultView for 
anything but specifying the default view name, but for a class, not an 
interface.


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] newer versions of zc.catalog available?

2005-09-08 Thread Martijn Faassen

Hi there,

We're trying to hunt down a weird bug that is probably our own fault, 
but it's pretty obscure, and we want to exclude the possibility that any 
of this has to do with zc.catalog, which we're using (the SetIndex 
component).


The version in the sandbox is 6 weeks old; have there been more recent 
bugfixes in this component?


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] defaultView cannot take class as for

2005-09-07 Thread Martijn Faassen

Hi there,

While the browser:page directive can take a content class for its 'for' 
attribute (instead of an interface), the browser:defaultView directive 
doesn't accept this. I tried changing the interface of the defaultView 
directive so it also accepts classes, but that by itself does not appear 
to make it work. This somewhat limits the utility of the ability to pass 
in classes instead of interfaces to the page directive; the point is to 
have a shortcut so an interface doesn't always need to be defined.


Before I dig deeper, I'd first like to know whether this would indeed be 
considered to be bug? If so, should I check this into trunk or also the 
Zope 3.1?


Regards,

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



Re: [Zope3-dev] catalog 'all documents' abstraction

2005-08-31 Thread Martijn Faassen

Jim Fulton wrote:
[snip]
It would be helpful if someone could explain the motivations behind 
the extent catalog, by the way -- this information seems to be missing 
in zc.catalog. Am I at all on the right track with my thinking on it?


What information?


Sorry for being unclear. I meant the information motivating the various 
things introduced, in particular the extent concept. I.e. textual 
information with goals and motivations -- the why of extents. Anyway, 
Gary's been replying to this bit so I'll continue in that area of the 
thread.


Regards,

Martijn


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



Re: [Zope3-dev] catalog 'all documents' abstraction

2005-08-31 Thread Martijn Faassen

Gary Poster wrote:

On Aug 30, 2005, at 1:57 PM, Martijn Faassen wrote:

[snip]


It would be helpful if someone could explain the motivations behind
 the extent catalog, by the way -- this information seems to be 
missing in zc.catalog. Am I at all on the right track with my 
thinking on it?



It should be pointed out initially that the son-of-queued-catalog
code doesn't have anything to do with extents.  I think Jim wants
that factored out when we have time so that can be a mix-and-match 
capability.  I think you are asking about extents themselves, though.



Okay, I didn't realize yet glancing at this that this is *also*
son-of-queued catalog. Interesting. I'll glance at it some more. :)


We had three use cases that led us to extents.

First, we wanted several catalogs that only indexed certain different
 things.  This could have been done by subscribers, so this wasn't 
terribly compelling by itself.


Okay, this is clear. It's not that clear to me how to efficiently make a
subscriber only handle one object type (I've been using the is this a
IFoo? If not, return pattern at the start of subscribers), but that's
another discussion.


Second, we wanted to transparently support queries that merged
results across catalog-like data structures.  The catalog defined the
items we wanted to search through, while some of the other data
structures kept track of a larger set of objects (subsuming the set
that the catalog cared about).  Sometimes, users could perform a
query that didn't actually use any of the catalog's data structures,
but that should be filtered by the set of the catalog's objects--its
extent.


I'm not sure I comprehend the motivations behind this one. Could you
elaborate?


Third, we wanted to let our indexes data be usable for NOT queries.
In order to do that, we needed an IFBTree structure that describes
the complete set for a given catalog, so that a contained index can
simply (and reasonably efficiently) subtract the query result from
the full set.  The indexes in zc.catalog also use extents for some
other similar tricks.


This one's also clear.

An extent that accepts all objects would effectively be the data 
structure you want, as I understand it.


I'm not sure -- 'not' is indeed context dependent, so which extent is in
use to determine the results of a 'not' operation depends on the query.
I think it's okay to ask the users to explicitly specify the extent when
they're doing the query, as long as there's an easy way to construct it
for the simple cases.


It is actually (at least typically for us) different than the intid
mapping because there are several classes of things that have intids
that are not cataloged.   



If more than one catalog all index the same
objects, I'd first wonder  why the indexes were not all in the same
catalog; 


Good question. I think one example of such a scenario is if you wrote a 
codebase, and I extended this codebase with some adapters which carry 
around information I also want indexed. I may decide not to introduce 
new indexes into your catalog but instead produce my own catalog to have 
the concerns separate from each other. In this case I'd want to do 
queries over multiple catalogs which index the same objects.



I'd second say that  yes, they probably could share a
filter-less extent.


Why filter-less? I mean, wouldn't you want to filter on object type?

If we want any of zc.catalog in the Zope core, each component will 
certainly need a proposal, by the way: we're offering this as code

that has helped us out and that we think might help others, either
directly or as ideas, so we are not duplicating effort.  We're not
proclaiming it to necessarily be our next core step.


Understood. I'm giving you feedback. :) We (Infrae) are going to put 
some code online eventually that we produced in the project we're 
working on, for the same reasons.


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] catalog 'all documents' abstraction

2005-08-30 Thread Martijn Faassen

Hi there,

Now that there's a plain catalog and an extent catalog, and while I was 
implementing a 'not' operator for a query language, I ran into some 
missing abstraction that would be convienient; a way to get all the 
object ids that are indexed, preferably in the form of a IFBTree so I 
can do fast intersections and the like (which are needed for not, 
which is an intersection of all object ids with those object ids I don't 
want).


Right now this information is not really available in a standard or a 
very efficient manner. For the normal catalog you can ask the IIntId 
utility for all int ids, which is reasonable and should be fairly 
efficient, though it'd be nice to have something come out in IFBTree 
form (or perhaps the intid's IOBTree can be intersected with an IFBTree 
directly? that'd be nice..). I also think however that it's the wrong 
place the ask for this information, as this doesn't work with the 
extentcatalog.


The catalog itself seems like the wrong place to ask as well however, as 
things would get hairy in the case of a query over multiple catalogs -- 
which catalog would be asked for all ids that are indexed?


Hm, perhaps this isn't ideal either, as this would get hairy in case of 
a query that spans multiple catalogs -- which catalog will be asked in 
that case for a list of all documents?


(note that 'not equals' on a FieldIndex can be implemented more 
efficiently as in this case the index itself can be used as the list of 
'all documents')


Does anybody have ideas on what the best way to go here would be?

Regards,

Martijn
___
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: Catalog improvements

2005-08-29 Thread Martijn Faassen

Dieter Maurer wrote:

Martijn Faassen wrote at 2005-8-25 13:49 +0200:


... AdvancedQuery ...
I need to figure out the lazy sorting concept too and how to port it to 
the Zope 3 catalog... I see elsewhere in the thread you also mention it 
supports a simple form of joins, which is also very interesting.


No, AdvancedQuery does not support joins.

But, Python is a very powerful gluing language which allows you
to implement simple joins yourself.


Okay, I misunderstood then. Of course Python allows one to implement 
joins oneself. :) I don't think we want everybody to write their own 
joins, though. It certainly cost me some headscratching thinking about 
it, especially how to do it efficiently and express it compactly, and it 
would be good if we could come up with a reasonably efficient solution 
(using indexes?) in the Zope 3 core. We could even start it out as not 
being very efficient -- it would already be useful to have an 
abstraction present and we can always make it more efficient in the future.


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] file objects and formlib

2005-08-26 Thread Martijn Faassen

Hi there,

I just saw this being changed in the wiki (by Fred Drake):

  the new zope.formlib. - -- Reimplement file objects (for
  Zope 2 or Zope 3 to take advantage of the new 'zope.formlib'

I'm curious to hear what this is about. I've been dealing with file 
widgets in particular a lot recently and have some input on it:


File widgets as in Zope 3 don't behave like text widgets. Basically they 
don't behave like any other widgets at all; they're an odd duck out. 
This is bad, because:


  - for an add form, if something goes wrong and the form is 
redisplayed with some validation errors, the uploaded file information 
is lost. This is bad because for a required file field, it requires 
multiple uploads where one should suffice, and for a non-required file 
field, it's even worse, as a user would have no motivation to re-upload 
the same file after validation failure and redisplay of the form, 
resulting in no file being uploaded at all.


  - for an edit form, there is no resubmit of the same data as you'd 
see with a text widget where the data hasn't been changed by the user. 
Instead there's either no upload, or an upload of a new file. This 
behavior is again different than a text widget, which makes programming 
harder as the programmer will have to check 'is there a file already 
there?' manually in some cases.


I've already solved the validation feedback form problem by storing 
files in a session temporarily. This isn't efficient, but I *also* 
developed something that will lick that problem and that I'll present in 
a lightning talk at the Plone conference.


I'm working on solving the second problem, so that a file is *always* 
present in the validated form data no matter whether it only ever 
resided on the server in case of an edit form. Basically I emulate the 
behavior of the text widget, for the file widget. This way they become a 
lot easier to work with.


I'll happily share all that I have, and this mail is just to prevent 
work is inadvertently duplicated. Probably you meant to work on 
something else, but I figured I'd make sure.


Regards,

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



Re: [Zope3-dev] Florent's O-R blog entry

2005-08-24 Thread Martijn Faassen

Paul Winkler wrote:

Martijn Faassen wrote:


Missing powerful query concepts
---

Certain powerful query concepts like joins, available in a relational
setting, are missing. I've already run into a scenario where I wanted to
someting like this: given a bunch of version objects with field 'id',
where multiple objects can have the same 'id' to indicate they're
versions of the same object, I want all objects where field
'workflow_state' is 'PUBLISHED' unless there is another object with the
same id that have workflow_state 'NEW', in which case I want that one'.

I think joins would be a way to solve it, though I haven't figured out
the details, nor how to implement them efficiently on top of the
catalog. This kind of thing is where a relational database makes life a
lot simpler.



I used to have the same complaints in Zope 2, but so far I've been happy
with Dieter's AdvancedQuery product.  See
http://www.dieter.handshake.de/pyprojects/zope/AdvancedQuery.html
It might be worth a look while thinking about what to implement for zope 3.

Here's Dieter's example from that page:

from Products.AdvancedQuery import Eq, Between, Le

# search for objects below 'a/b/c' with ids between 'a' and 'z~'
query = Eq('path','a/b/c')  Between('id', 'a', 'z~')


Something very similar to this I can also do with the layer I built on 
top of Zope 3's catalog. It wasn't hard to write at all, which speaks 
for the clean design of the Zope 3 catalog.



# evaluate and sort descending by 'modified' and ascending by 'Creator'
context.Catalog.evalAdvancedQuery(query, (('modified','desc'), 'Creator',))


This is interesting and my layer cannot do this yet.


# search 'News' not yet archived and 'File's not yet expired.
now = context.ZopeTime()
query = Eq('portal_type', 'News')  ~ Le('ArchivalDate', now)
| Eq('portal_type', 'File')  ~ Le('expires', now)
context.Catalog.evalAdvancedQuery(query)


In your example you haven't done a join as I describe above, unless I 
miss something. The essential part is that I want an object with state 
'PUBLISHED' unless there is another object where field 'ID' is the same 
as this object that is with state 'NEW'. The join is in the 'ID' 
matching part.


Regards,

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



Re: [Zope3-dev] security frustrations

2005-08-09 Thread Martijn Faassen

Benji York wrote:

Martijn Faassen wrote:


* after object creation but before the object is added,
  various things are done to the object.


  * authorization error: user cannot access various attributes.

If these things are done by subscribers, would using trusted subscribers 
help?


I guess it could; I've used a trusted adapter in a few places to get 
around security concerns.


However, not everything is done by subscribers. I have a little workflow 
system that in some cases can create new versions of objects, for instance.


My frustration is more that one has to do *something* special than that 
there aren't any solutions. Knowing to use trusted subscribers and 
having to design ones application around them would be another thing one 
would need to know to 'please' the security system. I know of course 
that security is hard, so maybe there's no way than to just bite the 
bullet...


But it still leaves me wishing; it's rather easy to break the security 
of an application.


Perhaps I'm wishing for a system where a lot more can be made trusted 
easily. As far as I understand right now it's possible with adapters, 
and apparently subscribers (I didn't know this, so I may be missing more).


Perhaps the answer is different altogether. And again, perhaps it's just 
going to be either hard or insecure, pick one. :)


Regards,

Martijn
___
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: security frustrations

2005-08-09 Thread Martijn Faassen

Florent Guillaume wrote:
Does it work to just set __parent__ to the container? Or does the 
zopesecuritypolicy require more accurate context?


I think that might work, though I've had previous problems with actually 
being allowed to *set* the __parent__ to the container. :)


I would also be worried about code that checks whether an object has a 
previous parent and sends a different event (move). Given that, it's 
easier to just removeSecurityProxy on the code..


Regards,

Martijn
___
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: AdapterLookup C optimizations 'timeit' benchmarks

2005-08-06 Thread Martijn Faassen

Tres Seaver wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Stephan Richter wrote:


On Friday 05 August 2005 09:46, Benji York wrote:


By my estimations(i hope i'm not wrong :) C version gives ~20-26% speed
up for different methods.


Running the functional tests for a Zope 3 based systems with 434 tests
yielded (best of 3) a time of 1:12.51 for the trunk and 1:12.32 for the
branch.  That's about a 0.25 percent improvement.


That's a bad argument. Several projects only use zope.interface and its 
adapter registry (for example twisted). For them a 20-26% improvement for the 
adapter lookup would be significant. Just because other parts of Zope 3 are 
even slower and use more time than the adapter lookup, it does not have to 
mean that this is a bad/insufficient improvement.


The tradeoff is complexity / loss of maintainability vs. speedup.  If
Benji's measurements hold up, we would be taking on the burden of
maintaining a parallel C implementation (in sync with the canonical C
version) within our project, for the (possible) benefit to other projects.


I also hope that in this case (unlike some other cases in the Zope 3 
source code), a parallel Python version *will* be maintained and 
continue to be tested. I ran into some problem with non-functioning 
stuff (debugging logs) in the security implementation, most likely 
because of a C implementation getting hooked in after the original code 
was written (compounded by there being no tests to verify whether the 
security logging facility worked).


The big question is of course what the impact on the performance of a 
typical Zope 3 application will be. If it's minimal it's not really 
worth it.


Note that projects like PyPy are getting there slowly but steadily -- 
it's possible that in a year's time we may only need to do minimal 
tweaking of Python code to benefit from compilation-level benefits. In 
the mean time, Pyrex is another avenue that might be worthwhile exploring.


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] problems with ZOPE_WATCH_CHECKERS

2005-07-19 Thread Martijn Faassen

Hi there,

I'm trying to debug the security of a Zope 3 application (in Zope 3.1 
beta) and I am having trouble getting ZOPE_WATCH_CHECKERS to work.


If I set it to 1, I expect to see information on which attributes on 
which object are denied. I however see nothing whatever.


If I set it to a higher value, I *do* see a few granted messages, though 
suspiciously few messages appear and rather confusing ones, especially 
as I am trying to a access a page that doesn't tie into the ZMI:


[CHK] + Granted getattr: __call__ on bound method 
ContextHelpView.getContextualTopicView of 
zope.app.publisher.browser.viewmeta.ContextHelpView object at 0x442764ec
[CHK] + Granted getattr: __call__ on bound method 
ContextHelpView.getContextualTopicView of 
zope.app.publisher.browser.viewmeta.ContextHelpView object at 0x442a17ec
[CHK] + Granted getattr: __call__ on bound method 
ContextHelpView.getContextualTopicView of 
zope.app.publisher.browser.viewmeta.ContextHelpView object at 0x442ef5ec


What's going on? Why do the only messages I ever see involve 
ContextHelpView? Is it possible that this mechanism is broken? Some 
debugging did seem to indicate the right logging checkers get created, 
but perhaps the logging methods do not actually get called most of the time?


In an attempt at deeper debugging I tried removing the C implementation 
(_zope_security_checker.so) temporarily, as the checker.py code seems to 
indicate it should fallback on the Python version. Unfortunately, Zope 3 
fails to start in this case...


Regards,

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



Re: [Zope3-dev] Updating the docutils package

2005-07-14 Thread Martijn Faassen

Martijn Pieters wrote:
I'd like to update the horribly outdated version of docutils in the 
Zope3 tree (version 0.3.0) to the latest resease (version 0.3.9).


+1

Regards,

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



Re: [Zope3-dev] actions and subclasses in zc.page

2005-07-13 Thread Martijn Faassen

Martijn Faassen wrote:

Hi there,

I noticed another possible oddness with zc.page.


[snip description]

Just pinging this thread; I'd still like to know whether this behavior 
is considered a bug, and if so, how to go about fixing it. If not, is 
there some way to accomplish what I want.


Regards,

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



Re: [Zope3-dev] small problem in zc.page?

2005-07-08 Thread Martijn Faassen

Fred Drake wrote:

On 7/7/05, Martijn Faassen [EMAIL PROTECTED] wrote:


I hope that moving it into the zope package doesn't mean it will be only
maintained for Zope 3.2 (as it requires python 2.4). While I obviously
don't expect it to be released with Zope 3.1 I hope we can pull a
release of it that can be installed into Zope 3.1 (as long as it's
running Python 2.4).



Our current plan is to keep it as a separate top-level project in
Subversion, and link it into Zope 3 using svn:externals (similar to
zope.testing).


Sounds good. I am looking forward to being able to help out zc.page's 
further development (though so far I only ran into relatively minor snags).


Note that zc.page does contain a (very small) quantity of ZCML and that 
zope traditionally doesn't contain ZCML; what's the thinking about that?


Regards,

Martijn
___
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: interaction between LocationProxy and IIntId utility

2005-07-08 Thread Martijn Faassen

Tres Seaver wrote:
[snip]

I find the same pattern creeping into my work:  content objects need to
be policy free, which means that they can't do things like emit
events, because whether and when to emit them is policy.  For
instance, if your content objects have setter methods (or properties as
sugar on top of them), such methods can't know whether they are the
only / last one to be called for a given interaction, and therefore
whether they can safely / efficiently emit a modified event.


Hm. Having to separate out policy such as event sending out from the 
content object does make it harder to start out with just a few classes 
of mostly Python code (that do not care too much about the framework 
yet) and then refactor them into more components later when the time is 
there. I like being able to start out with relatively few entities in 
the beginning and being able to wait and see where the pieces make most 
sense later on.


I imagine this is also a pattern many beginners would start out with; 
after all rich classes are the pattern in Zope 3.


While such classes do not care a lot about the framework yet it'd be 
nice to allow them to send events and so on.


Anyway, I'll just have to gain some more experience building Zope 3 
applications to see whether this is a real problem or not.



Likewise, content objects don't seem (to me, anyway) to know enough to
handle their own renaming;  rather, such handling needs to occur in
conjunction with the container (and perhaps the ContainerProxy that
wraps them).


Though it's fairly easy to make content objects in charge of their own 
naming by letting them implement INameChooser (they do often have to 
discuss things with their container to see whether the generated name 
already exists, though).


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] possible bug in catalog code

2005-07-07 Thread Martijn Faassen

Hi there,

in zope.app.catalog.attribute, there's the following functionality:

def index_doc(self, docid, object):
if self.interface is not None:
object = self.interface(object, None)
if object is None:
return None

value = getattr(object, self.field_name, None)
if value is None:
return None

if self.field_callable:
try:
value = value()
except:
return None

return super(AttributeIndex, self).index_doc(docid, value)

The following sequence I think leads to trouble:


value = getattr(object, self.field_name, None)
if value is None:
return None

as this means attributes that do exist and have the value None would 
never be indexed (as index_doc() is never reached).


Instead, I'd suggest the following code:

try:
value = getattr(object, self.field_name)
except AttributeError:
return None

or alternatively if for some reason getattr() with a default is 
preferred (though I suspect the exception approach is slightly faster):


# module level
NotFound = object()

value = getattr(object, self.field_name, NotFound)
if value is NotFound:
 return None

If this is indeed decided to be a bug, is it okay if I check in a fix 
for this? I'll try to devise a test of course.


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] interaction between LocationProxy and IIntId utility

2005-07-07 Thread Martijn Faassen

Hi there,

We just noticed that some objects were not being cataloged correctly. 
After a lot of debugging, we noticed the following:


The IntId utility wouldn't find the unique id for an object when a 
modified event was sent. As a result, it wasn't being indexed.


We figured out that there was an odd difference between the object that 
came into the IntId utility (through a modification event) and the 
object that we could take from the folder: the one taken directly from 
the folder has a __name__ and __parent__. Even though the memory address 
looked the same when using repr(), they were not identical. As a result 
the int id couldn't be found.


Finally with some help from Stephan Richter giving us the clue that this 
__name__ and __parent__ information could only be lost if LocationProxy 
is in play, we figured out what what we think is going on:


What is stored in the ZODB are LocationProxy wrapped objects. The 
location proxy wrappers get a unique id reference in the IntId utility, 
not the objects themselves. Now when you send an ObjectModificationEvent 
from one the document's *own methods*, the event is sent with as payload 
to catalog something that is not proxy wrapped. This means that the int 
id can never be found for this object, and thus the reindexing cannot 
take place properly.


This basically means that LocationProxy wrapped objects cannot reliably 
respond correctly to ObjectModificationEvents, and thus won't be 
cataloged correctly. If the ObjectModifiedEvent is sent by methods 
inside the object itself, things will fail, if the ObjectModifiedEvent 
is sent by code elsewhere, they'll likely work.


This is all fixed by subclassing Contained, but the catalog not working 
reliably for LocationProxy wrapped objects sounds scary. You could do 
something with the IntId utility automatically 
un-location-proxy-wrapping the objects if necessary, but that would mean 
that what is stored wouldn't know its location anymore, which would also 
be bad.


Regards,

Martijn

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



Re: [Zope3-dev] small problem in zc.page?

2005-07-07 Thread Martijn Faassen

Jim Fulton wrote:

Martijn Faassen wrote:


Christian Theune wrote: [snip]

I'm actually interested in what the plans/needs for zc.page are 
to move into core. Maybe I/we can spend some time on bug fixing 
...


Even if not in the core, it'd already help if this wasn't a 
one-time snapshot but a SVN repository where we can check in.


I wanted to get it into better shape before moving it to the Zope 
repository, but that is looking silly.  I'll try to find time to move

 it this weekend.


Thanks!

This raises the question of what it should be called.  I'm thinking 
it should move to the zope package, but page seems a tad too general 
a name. Thoughts?


No ideas on a better name right now.

I hope that moving it into the zope package doesn't mean it will be only
maintained for Zope 3.2 (as it requires python 2.4). While I obviously
don't expect it to be released with Zope 3.1 I hope we can pull a
release of it that can be installed into Zope 3.1 (as long as it's
running Python 2.4). In that sense it being a separate package outside 
of Zope 3 may actually make things slightly easier for now, though I 
won't argue this too strenuously.


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] setSite() and functional tests

2005-07-05 Thread Martijn Faassen

Hi there,

I'm using zope.app.testing.functional.FunctionalTestCase to write 
functional, Python-level tests for a Zope 3 application, and I just ran 
into something that might or might not be a bug.


When the application code tested changed the site using setSite(), the 
next test will still run in the context of the old site. After some 
puzzling I determined that placing setSite(None) in the tearDown() 
method fixed these issues.


Perhaps this is something that can be placed in FunctionalTestCase's 
teardown itself, though?


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] status of zc.page?

2005-06-16 Thread Martijn Faassen

Hi there,

Since we keep running into snags and frustrations with the zope.app.form 
package, we're checking out zc.page and see whether it could help us 
any. We're going to try using it today.


We have some concerns though:

* the snapshot is probably aging as bugs get discovered and fixed in 
your repository. Could you perhaps update the snapshot?


* it requires Python 2.4.1. Zope 3.1 to my knowledge is targetting 
Python 2.3. It looks like it's fairly easy to rewrite the few decorators 
that are in the package itself so they work with Python 2.3 instead, but 
we don't want to maintain our own fork. Obviously we want to use this 
with Zope 3.1. Am I mistaken about the Python version targetted by Zope 
3.1? I'm rather confused that you're apparently using Python 2.4.1 for 
internal Zope 3 projects.


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: [Zope3-Users] Interviews with people involved in Zope 3 projects

2005-06-02 Thread Martijn Faassen

Stephan Richter wrote:
[snip]

Then there are of course various Five-based projects, but I am not familiar 
with them. Can anyone enlighten me here? Also, if I forgot any project, 
please tell me about it! It does not have to be a commercial product either!


Concerning Five projects, one project that was announced is 
CPSSharedCalendar, which is a Nuxeo project (that can however also work 
in straight Zope + Five, besides the CPS support). Infrae has also 
worked on that. Nuxeo also has a mail project based on Five.


There are also a few Silva projects that use Five, but most have not 
been released yet. The one that has been released is SilvaFlexibleXML.


Regards,

Martijn
___
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: [Zope3-checkins] SVN: Zope3/trunk/src/zope/app/broken/broken.pt Fixed a typo.

2005-05-17 Thread Martijn Faassen
Benji York wrote:
Gintautas Miliauskas wrote:
Log message for revision 30377:
  Fixed a typo.

-pThis probably because the class' module, +pThis probably because 
the class module,

I don't think the apostrophe was misplaced, but there should probably be 
an is in there.  How about this:

pThis is probably because the class' module,
Completely without context, so I may be wrong, but module of the class 
sounds better then. :)

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


Re: [Zope3-dev] lxml / elementtre inclusion

2005-05-05 Thread Martijn Faassen
Jim Fulton wrote:
Julien Anguenot wrote:

Can we consider the inclusion of lxml or elementtre within the Zope3
core ?
Absolutely.
Cool!
  Are the repective licenses, BSD and MIT-like an issue ?
Absolutely. :)
I would prefer that we include lxml and that it be ZPL.
That is, my hope is that Martijn can release lxml under
ZPL as well as any other licenses he wishes.
It needn't be copyright ZC and Contributors.  It could be
copyright Infrae.
Well, libxml2/libxslt cannot be relicensed by me, so the MIT license 
will stay. If it helps to also license lxml under the ZPL besides the 
existing BSD license, that shouldn't be an issue, though I myself do not 
comprehend why adversiting-clause-less BSD should be an issue; as far as 
I understood it could be safely combined with absolutely anything.

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] Five 1.0 released!

2005-04-27 Thread Martijn Faassen
Five 1.0 released!
==
The Five team is happy to release Five 1.0. Five is a Zope 2 product
that allows you to integrate Zope 3 technologies into Zope 2, today.
There are no big feature additions compared to Five 0.3, but does
include significant bugfixes, along with some minor tweaks. We went
directly to 1.0 as we feel that Five is production-ready
software.
Five 1.0 works with Zope 2.7. The big news is that we also plan to
include Five 1.0 in Zope 2.8, so that you can use Zope 3 technology in
Zope 2.8 out of the box. Much work to enable this was done at the
Paris Zope 3/Five sprint organized by Nuxeo. This release therefore
also contains the changes made to integrate Five into Zope 2.8 done at
the Paris Zope 3/Five sprint, but works with Zope 2.7.
Consult the CHANGES_ for more details.
.. _CHANGES: http://codespeak.net/z3/five/CHANGES.html
Five right now allows you to use the following Zope 3 technologies in
Zope 2:
* Zope 3 interfaces
* adapters
* pages (views), including skins, layers and resources
* edit and add forms, based on schemas
* ZCML
We've tried to keep the Five experience as close to Zope 3 as
possible, so this means that what you learn while using Five should
also be applicable to Zope 3.
Five 1.0 is being used in production-grade projects, among others at
Nuxeo_ and Infrae_.
.. _Nuxeo: http://www.nuxeo.com
.. _Infrae: http://www.infrae.com
Five 1.0 can be downloaded here:
http://codespeak.net/z3/five/release/Five-1.0.tgz
More information about Five can be found on our website, here:
http://codespeak.net/z3/five/
We hope you'll join our mailing list and let hear from yourself!
About the Zope 3 Base
-
Five is part of the *Zope 3 Base* project, which aims to offer an
approachable area for developers of Zope 3 related software. More
about the Zope 3 base and its projects can be found here:
http://codespeak.net/z3/
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com


Re: [Zope3-dev] Building standalone ZPT from Zope 3 using zpkgtools

2005-04-22 Thread Martijn Faassen
Shane Hathaway wrote:
[snip]
I'm sure Fred is doing excellent work, but I'm having trouble seeing why
we need zpkgtools.  Is it not sufficient to just python setup.py
install all of Zope 3?  I've been doing that with Zope 3 Subversion
checkouts and Twisted, even though I actually use less than 10% of the
code installed.  In fact, my co-workers are about to put such a system
into production.  The unused code causes no problems that I've detected.
I think one of the main reasons for zpkgtools is indeed to allow a 
release of part of the repository, such as just the page template 
engine, but as you say, in the context of Five I've definitely found it 
a lot easier to just tell people to use the whole of Zope 3, as that is 
already released by another party. I also think it easier to have the 
release and repository be very similar.

I'm not convinced myself that this weighs up against the reasons not to 
invent a zope3 specific packaging system; there are a few drawbacks 
currently:

* it's unique to Zope 3 and ZODB. Nobody else is using it. Is the Zope 3 
project in the business of building package tools, or do we not have 
enough difficulty on our hands just building Zope 3?

* apparently, as seen on the ZODB list, the packaging format currently 
used makes life harder for downstream packages such as debian.

* it doesn't tackle some use cases. I'm not sure it could help 
integration of Zope 3 into Zope 2.8, for instance; a svn:external seemed 
to make more sense.

I think the first point is the most important worry; we're doing 
something nobody else is doing in an area outside Zope's core purpose, 
which is to be a web application service. This stands apart from the 
quality and merit the tool and its ideas certainly have. I just do not 
think it a good idea if the Zope project ends up having to maintain 
*and* explain this indefinitely. I hope, and trust this is the 
intention, that efforts can be undertaken to make the packaging tool 
used outside of the Zope project, preferably a Python standard. Of 
course you still run the significant risk it will never be accepted as such.

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


Re: [Zope3-dev] Building standalone ZPT from Zope 3 using zpkgtools

2005-04-22 Thread Martijn Faassen
Stephan Richter wrote:
[snip]
 I think of zpkgtools as a prototype for extensions that are necessary 
 for distutils.

Is it the Zope project's job to extend distutils, though? I mean, 
developing something new is nice, but there's a lot of a new stuff on 
our plate already, isn't there?

Overall, I think that zpkgtools is very successful. And it is not 
Zope-specific! Twisted could use it too.
It's Zope specific as only the Zope projects are using it, as far as I 
am aware. Lots of people could use it, but I'm worried that without 
significant effort to promote and adjust this, it won't happen.

I mean, Twisted could use ZCML too, but they're not, and I doubt they're 
likely to, and they're the most likely project to use ZCML of them all, 
as they use zope.interface already. Granted zpkgtools is easier to 
distribute independently, but then again, for distributing ZCML we have 
zpktgtools. :)

Perhaps I'm wrong and zpkgtools takes time out of our hands overall 
already, including maintenance and learning curve.

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


Re: [Zope3-dev] Release numbering

2005-04-21 Thread Martijn Faassen
Jim Fulton wrote:
Martijn Faassen wrote: [snip]
[snip]
 I've always said that we will provide support for
transitioning to Zope 3, being careful to say transition support
rather than backward compatibility.
And that's not what the Zope X3 release notes strongly imply, which is
again, my point. The message has been received differently than you said
it, and we're still sending out messages with bear very different
interpretation. It's not a secret that many have been skeptical about
backwards compatibility with Zope 2, but there's a reason for why we
thought this was the plan.
Let's go back to 2001 to a message by Shane
Hathaway, which certainly looked official enough to me at the time (it 
was in response to an 'open letter'):

http://mail.zope.org/pipermail/zope-dev/2001-December/014313.html
Q: What is Zope 3X?
A: Zope 3X is Zope rebuilt from the ground up, applying the lessons
learned from Zope 2 and CMF.
Q: What is Zope 3?
A: Zope 3 is Zope 3X plus compatibility with Zope 2 products.
Q: Will Zope 3X be compatible with Zope 2 products?
A: No.
Q: Will Zope 3 be compatible with Zope 2 products?
A: Yes.
Q: Will Zope 3X support DTML?
A: Probably not.
Q: Will Zope 3 support DTML?
A: Yes.
Q: Will Zope 3X be compatible with CMF?
A: No.
Q: Will Zope 3 be compatible with CMF?
A: Very likely, but a lot of the CMF ideas will be folded directly into
Zope 3.  You might not need CMF anymore.
This is what settled in our mind as the plan. It may be where Stephan 
got this idea. It is still interfering with the message coming from Zope 
Corporation that it appears did undergo some shifts over time.

[snip]
We better have some clearer communication on this topic between
Zope 3 core developers,
Sorry, my mind control skills are lacking. ;)
I thought we could communicate using natural languages and all that. :)
I can't tell Stephan what to think.  I guess I'd prefer that he
support the party line, but heck, who said there was a party.
Well, Stephan probably thought he *was* supporting the party line, which 
is why I'm suggesting you two have a little chat about this.

as Stephan himself seems to distinguish between a still
official public plan and his doubts it will be like that. At
least, this is what I conclude from this statement earlier in this
discussion:
 
Yup. I wish he wouldn't say things like this, especially as the
release manager.
He got the idea somewhere, and I doubt this is his own official plan. 
This is why I'm trying to bring this issue out into the open.

[snip]
I greatly appreciate the assistence you and others have provided in 
helping to bring some of the benefits of Zope 3 to Zope 2.
Thank you, and I understand this. My criticisms are perhaps annoying but 
intended to improve the process.

[snip]
Sorry, I can't figure out which this you mean in your sentance
above.
I didn't think I said this. Stephan said the following in the Zope X3 
release notes:

 The X in the name stands for experimental, since this release
 not try to provide any backward-compatibility to Zope 2.
[snip]
The problem is that I can't predict the future.  Maybe you think you
can. I know Stephan does. ;)
I think I can make educated guesses about the future, just like 
everybody else.

[snip]
Anyway, my message here is to get a bit clearer on the message.
I've clearly gained a very different idea about what the X means
than you do, and that's not for lack of observing the Zope 3
process. Let's get our marketing straightened out.

I certainly want to be clear about what I say.
The bottom line though is that we don't know.  We will continue to 
support Zope 2 at least until we do know how the transition will
work. 
[snip evolutionary scenario]
That's an interesting scenario. In some ways Five is already starting to 
be like this, though full compatibility is still far off.

Anyway, I think the best way to communicate this is not to explain it 
(as it is complicated), and not to give the impression we will get 
backwards compatibility, and not to detract from Zope 3 by adding in Xs 
that we may not drop for years (as this evolution will take years) and 
will have to explain all that time. After all, we said it meant 
experimental in 2004, and look how long it is to get rid of the 
message of 2001 about backwards compatibility -- 4 years later we're 
still not clear about it.

You can make the dropping of the X a positive marketing event:
It is in our opinion that Zope 3.1 is more than ready for production 
use, which is why we decided to drop the X for experimental. We will 
also continue to work on making the transition between Zope 2 and Zope 3 
as smooth as possible. As a first step, Zope 2.8 includes Zope 3 
features in the form of Five.

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


Re: [Zope3-dev] Release numbering

2005-04-21 Thread Martijn Faassen
Martijn Faassen wrote:
[snip]
This is what settled in our mind as the plan. It may be where Stephan 
got this idea. It is still interfering with the message coming from Zope 
Corporation that it appears did undergo some shifts over time.
Whoah, that last sentence makes no sense, I mean something like:
It is still interfering with the message coming from Zope Corporation, 
which does appear to have undergone some shifts over time.

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


Re: [Zope3-dev] release numbering

2005-04-20 Thread Martijn Faassen
Hey,
I think the most sane would be:
Zope 2.8 - Zope 2.9 - Zope 2.x, for however many iterations it's 
necessary. Zope 2 will grow some Zope 3 forward compatibility with Five, 
but this depends on Five contributors. Right now, we're doing fairly 
well and we hope this keeps up.

Zope X3.0 - Zope 3.1 - Zope 3.2 and so on, until we feel we want to 
declare a Zope 4.0. If you want to drop the X after 3.1 that's fine too, 
but I don't see a reason not to drop it now. The whole X3-3.0 is 
rather bizarre and confuses -- X3 is not a release name but a product 
name, but we have no real plans for a non-X 3 anyway..., but the 
mythical Zope 3 proper *is* the reason for having the 3 duplicated, as 
far as I can see.

You need to communicate that the strategy changed, and that we won't 
have a Zope 3 ever that will offer Zope 2 backwards compatibility. We 
may want to supply some of that, but that should be a separate project, 
with its own release numbers. I'll call that project Six for now, as 
that's 2 times 3. :)

It's probably better to correct this impression now than to wait 
indefinitely as:

* people can prepare their migration strategy better, either by porting 
to Zope 3 straight or porting to Five first, and then later to Zope 3. 
Nobody will be waiting for magical components which will be offered by 
Six then, as that's complete vaporware now; there are no resources for 
it, nobody seems to really want to do it, etc.

* we can drop the X and have a more sensible release naming pattern for 
Zope 3.

* we have at least another strategy now and can point people to 
Five/Zope 2.8.

Regards,
Martijn
___
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: Zope3-dev Digest, Vol 21, Issue 29

2005-04-19 Thread Martijn Faassen
Paul Winkler wrote:
[snip]
Something looking like Nevow maybe?
Its template language looks kind of like ZPT without all the
fancy TALES expressions.
I'll also take a look at the Nevow to see whether we can get any ideas 
about a Clarity frontend.

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


<    1   2   3   4   5