[Zope-dev] How to test changes to ZTK packages?

Jim Fulton jim at zope.com
Wed Jul 1 05:12:38 EDT 2009


On Jul 1, 2009, at 1:08 AM, Wolfgang Schnerring wrote:

> * Tres Seaver <tseaver at palladion.com> [2009-06-30 20:41]:
>> Jim Fulton wrote:
>>> I should know this, but I don't.  What is the recommended way to  
>>> test
>>> changes to core ZTK packages to mitigate the risk that changes  
>>> affect
>>> other packages? Is there a page somewhere with instructions?
>>>
>>> I tried using using zope.release.  Building the trunk of  
>>> zope.release
>>> with Python 2.4 and running the tests gives lots of test import  
>>> errors
>>> and test failures.  (Lots of tests want to import z3c.pt.) The tests
>>> hang when I try to build and run with Python 2.6.
>>
>> There is a recipe for testing *other* packages which might be  
>> affected
>> by changes to the package-under-development:
>> http://pypi.python.org/pypi/z3c.recipe.compattest
>
> This recipe was written at the Grok dependency-cleanup sprint in  
> January
> with exactly the purpose Jim talks about: testing packages against  
> each
> other to make sure changes in one don't adversely affect the others.
>
> I haven't studied zope.release closely yet, but I think testing-wise  
> it
> does quite a similar thing, namely running tests for a set of  
> packages.
>
> The difference is that compattest uses either pinned version from
> buildout (but doesn't supply its own list of pins), or alternatively
> trunk checkouts. Also, it seems to be more lightweight than  
> zope.release
> both in concept and in usage (mostly since it only does one thing,
> namely running tests, and not other release management stuff like
> creating tarballs and uploading them etc.), but I'm biased since I'm  
> one
> of the compattest authors.
>
> For the record, the usage is
> 1. add it to your buildout, minimally like so:
>   [compattest]
>   recipe = z3c.recipe.compattest
> 2. run bin/compattest
> 3. there is no step three. ;-)
>
>> I don't know how to supply the set of dependents to that recipe
>> (something in the buildout config file, I guess).
>
> You can specify include and exclude options; the default is to  
> include a
> list of zope.* packages that we pulled out of thin air at the sprint,
> it'd probably be better to use the KGS as a default instead -- but  
> that
> would duplicate even more zope.release functionality.

Where is this list? In the recipe?

> I think it would be useful to standardize on *one* compatibility  
> testing
> method for the ZTK (and then document it).

Yes.

> My instinct would be to separate KGS handling from tarball creation  
> from
> testing, that is, remove the test-business from zope.release and use  
> the
> compattest recipe instead. (Alternatively, retire compattest and have
> zope.release gain the ability to use trunks so it could be used for
> continuous integration purposes as well -- but that doesn't feel quite
> right, to be honest)
>
> Thoughts?


I agree we need one way to do this. I think the KGS concept is right.   
I think there should be a known good configuration of packages and a  
way to evolve it.  The configuration should be changed only after  
testing changes.  The configuration needs to include Python versions  
that it is tested with.  Beyond that, I don't care what the process is  
as long as it is documented.

Jim

--
Jim Fulton
Zope Corporation




More information about the Zope-Dev mailing list