[Grok-dev] Re: How I Will Have Broken Grok
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
> 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
* 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
More information about the Grok-dev