[Zope-CMF] Re: [dev] tools-as-utilities roadmap

Wichert Akkerman wichert at wiggy.net
Tue Jul 10 16:15:09 EDT 2007


Previously yuppie wrote:
> Hi!
> 
> 
> Wichert Akkerman wrote:
> >Previously Tres Seaver wrote:
> >>yuppie wrote:
> >>>Tres Seaver wrote:
> >>>>yuppie wrote:
> >>>>>Or do you prefer to keep things as they are over a less clean switch 
> >>>>>to utilities?
> >>>>Yes.  I'd rather get 2.1 out, even with tools-which-can't-be-utilitiies
> >>>>as they are, then delay.
> >>>I'm not just talking about CMF 2.1. I'm fine if the result of this 
> >>>discussion is a roadmap that starts with CMF 2.2. But if there is no 
> >>>realistic roadmap at all we might better revert all the 
> >>>tools-as-utilities changes. The few utilities we have right now are not 
> >>>worth the trouble. Starting the migration makes only sense if we have a 
> >>>plan to finish it.
> >>>
> >>>>Note that this problem is basically due to the desire to cache the
> >>>>aq_chain for utilities:  if we punt on that, we can then defer this
> >>>>whole issue.
> >>>Maybe that's your reason why you didn't argue against the proposal. I 
> >>>consider the possibility to cache utilities just a side effect of 
> >>>removing the REQUEST from the wrappers.
> >>I thought that caching was the *reason* for removing the request;
> >>otherwise, we could just re-wrap the tool in each 'getUtility' call and
> >>it would have access to the request as it does today.
> >>
> >>>This is not about making the implementation easier. This is about 
> >>>defining what utilities are. If they provide self.REQUEST they become a 
> >>>utility-view monster that has not much in common with Zope 3 utilities. 
> >>>Reducing Zope 2 magic to a minimum if we use Zope 3 technology is a good 
> >>>thing - even if that forces us to be more explicit about required 
> >>>REQUEST arguments.
> >>That's fine, but just means that we have to invent *new* utilities and
> >>change application code to begin calling the new APIs:  right now,
> >>nobody in the wild expects to pass a REQUEST to most of those methods.
> >>
> >>Once the replacement utilities are available, we can start deprecating
> >>the "tool-ish" APIs.  Note that such a change is *way* too late in the
> >>release cycle for 2.1.
> >
> >Aren't we talking about a post-2.1 roadmap now?
> 
> Well. The 2.1 changes are based one the assumption that we switch 
> quickly and completely to utilities, making all tools work as utilities. 
> The roadmap proposed by Tres means it will take several years and we'll 
> have to work with tools and utilities side by side for a long time.

+1 for Tres suggestion (door number 7? 8? )

> I can live with that approach, but would like to see CMF 2.1 adjusted:
> 
> 'getToolByInterfaceName' is a completely misleading method name if tools 
> will not become utilities. This method has no 'context' (or 'REQUEST') 
> argument, so it can't return tools. It returns utilities. 
> 'getUtilityByInterfaceName' would be a much better name for a 
> 'getUtility' replacement used in untrusted code.

I'm fine with that.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.


More information about the Zope-CMF mailing list