[Grok-dev] Re: How I Will Have Broken Grok

Martijn Faassen faassen at startifact.com
Thu Sep 20 11:10:07 EDT 2007

Brandon Craig Rhodes wrote:
> I have just checked in a change to "zope.traverser" that will destroy
> Grok when it gets released, but, by a happy coincidence, I just ran
> across this fact by accident while chasing down another question I had
> about the Grok source code. :-)

>  - I need some help, because this is very deep water, package-release-
>    wise!  How do we coordinate having "grok" and "zope.traversing"
>    change at exactly the same time so that they continue working for
>    everyone?
>    I suppose that we may need to put the terrible "_getContextName"
>    back in place in "zope.traversing" for a few weeks, to give us time
>    to calmly move Grok from using "GrokViewAbsoluteURL" to using
>    something like my suggested "GrokViewLocation" above, and then
>    finally release a version of "zope.traversing" that removes
>    "_getContextName" once things look safe.
>    Let me know.  This is my first experience with a product released
>    as so many pieces. :-)

This is my attempt at writing an 'executive summary' of your post. As 
far as I understand:

* You changed something in zope.traversing.

* Grok relies on this.

* You've also changed Grok so it won't rely on this anymore. This won't 
help the existing release, however.

When a new zope.traversing gets released, Grok will break, as it relies 
on something in zope.traversing which is gone.

Now *if* Grok is pinned down on earlier versions of zope.traversing, 
this won't be a problem. Unfortunately it's not, so Grok will indeed 
break when a new zope.traversing is released. Philipp hopes to do some 
work on pinning down grok in the next week, though.

We have a choice, either we:

* add the _getContextName back, as older grok relies on this and we 
don't want it all to break as soon as zope.traversing gets released at a 
time we can't predict. You can confirm that Grok will work if you add 
this method back?

* or we move Grok to a pinning system as soon as possible so we can't 
break existing Grok installations anymore by doing new releases. We then 
release a 0.10.1 which relies on the old zope.traversing

Then finally to clear things up:

* we release the newer zope.traversing without the backwards 
compatibility support.

* we release a new grok (0.11?) which requires a newer zope.traversing

As soon as we pin Grok down we don't have to worry about this stuff as 
much anymore...



More information about the Grok-dev mailing list