[Zope-dev] [Checkins] SVN: zope.publisher/trunk/ Added some BBB code to setDefaultSkin

Roger Ineichen dev at projekt01.ch
Mon Apr 27 15:20:19 EDT 2009


Hi Hanno

> Betreff: Re: [Zope-dev] [Checkins] SVN: zope.publisher/trunk/ 
> Added some BBB code to setDefaultSkin
> 
> Hi.
> 
> Roger Ineichen wrote:
> >> Roger Ineichen wrote:
> >> Then there's some tests and description missing proving 
> that intent. 
> >> All I could read in the changelog and the skinnable tests was 
> >> pointing in the other direction: Making it possible to use the 
> >> Skinnable concept without relying on IBrowserRequest. The whole 
> >> JSONRequest (which is not a
> >> BrowserRequest) tests inside skinnable.txt continue to work.
> > 
> > Yes, I think everything was tested, but probably future 
> ideas are not 
> > documented. There where some discussion about to split each request 
> > into it's own packages.
> 
> Where did that discussion happen? All I have heard of was 
> discussions at PyCon, where nobody quite seemed to see any 
> point in the whole different request types story at all anymore.
> 
> I don't mind if the skinnable story gets less intermingled 
> with the request story in a new zope.skinnable package and 
> breaks some backwards compatibility at that point. Right now 
> that mix of the two concepts is so prevalent in all kinds of 
> places, that I'd rather stay on the backwards compatible side.

Can you tell me what was not backward compatible?

> All ZCML browser directives by default register everything 
> for IDefaultBrowserLayer and expect those resources to be 
> available on "normal" browser requests. The test helpers in 
> zope.app.testing to get browser resources set up rely on the 
> same mix of concerns. This stuff is used all over the place 
> without caring about loading zope.publisher's ZCML right now.

Did my refactoring break anything? If so what?

> >> All I did here was to move two constructs from ZCML into 
> direct code.
> >> The lines I added do exactly the same as the default adapter 
> >> registered as:
> > 
> > Uhh, this is call hard coded and makes it impossible to exclude the 
> > adapter with the <exclude> directive.
> 
> I call that retaining sensible defaults. You can opt-out of 
> the IDefaultBrowserLayer for browser requests by providing 
> your own specialized adapter. I prefer no configuration for 
> the most common case with an opt-out scenario instead of the 
> everything is opt-in behavior.

Do you understand the impact of your changes? I see what you
are trying to do but I don't know which package or application
you are trying to fix with your changes. Can you give me some
hints about what you are trying to fix with your changes?

> > I see two things which are bad. Skinnable depends now on 
> > IBrowserRequest. I moved the skinnable concept out of the browser 
> > request part. This allows us to separate the skinnable and all 
> > different request types into own packages if we do future 
> refactoring.
> 
> zope.publisher is the package that defines the 
> IBrowserRequest interface. It might make sense to split those 
> concerns off into different packages and then straighten out 
> the dependencies. At that point I can see having a 
> setDefaultSkin method inside zope.skinnable with a different 
> behavior. But the one inside zope.publisher ought to play 
> nicely with IBrowserRequest.

Any improvements are very welcome. Do you think we should move
the skinnable concept into zope.skinnable?

Sorry if I'm bother you about this details but I spent
a full day with this refactoring and one of my apps depends
on this deault browser layer less concept. You just reverted
the hole refactoring with 3 lines of code.

Regards
Roger Ineichen

> Hanno
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  ** (Related lists -  
> http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope )
> 



More information about the Zope-Dev mailing list