[Zope-dev] Zope Toolkit - packages with zope.app dependencies

Hanno Schlichting hanno at hannosch.eu
Mon Dec 28 17:25:04 EST 2009


On Mon, Dec 28, 2009 at 10:57 PM, Martijn Faassen
<faassen at startifact.com> wrote:
> Hanno Schlichting wrote:
>> The ZTK no longer contains any zope.app packages.
>
> I think we should be careful to just remove the zope.app packages from
> the ZTK entirely. I.e. we should maintain the versions of the zope.app.*
> packages that were in Zope 3.4 (or at least the original Zope 3 tree) in
> the ZTK for the time being. Otherwise we make people's life rather
> difficult.

I disagree. In my opinion it's not part of the job of the ZTK to
provide backwards compatibility with Zope 3. The toolkit is not a
replacement for all of Zope 3 and you cannot run a Zope 3 application
even after following all the refactorings on the toolkit alone. If
users of Zope 3 want an upgrade story, they need to get together and
make a new Zope 3 release which is based on the ZTK.

For Zope2 we have covered the upgrade story already. Zope 2.12 uses
its own KGS, which includes the entire set of zope.app packages in
compatible versions. Current Zope2 trunk aka 2.13 runs directly on the
Zope Toolkit KGS and doesn't include any zope.app packages anymore. If
you want to upgrade to 2.13 you will have to refactor your code to no
longer rely on zope.app packages while using Zope 2.12. In the case of
Zope2 this is possible, as we don't use the application server parts
of Zope 3 at all. So all those zope.app.appserver, applicationcontrol,
zcmlfiles parts that actually wire a couple of distinct libraries
together into something that has a configured webserver, publisher,
security setup. I don't know how this is done in Grok and how much it
reuses application policies of Zope 3.

On a more practical note, it's actually just not helpful to include
version pins for any zope.app packages in the ztk.cfg. I can add any
arbitrary set of version definitions there. Then run the test-ztk
tests and all tests will always pass. Since the packages under tests
don't include nor depend on any zope.app packages, their test result
is independent of any zope.app version pins.

If you want to ensure any kind of actual compatibility, you need to
run the tests for a defined set of zope.app packages. If you want to
ensure Zope 3 as a whole can work with the ZTK, you need to run the
tests for all of Zope 3. But that's clearly not what the ZTK is about
- it's *not* Zope 3.5. If you want to have some upgrade story for
Grok, Grok needs to define which packages including which zope.app
packages it cares about and define a KGS that makes sure things keep
working.

Hanno


More information about the Zope-Dev mailing list