[RFC] depend on testtools for testing?

Robert Collins robertc at robertcollins.net
Fri Oct 30 04:22:54 GMT 2009


On Thu, 2009-10-29 at 20:43 -0500, John Arbash Meinel wrote:
> 
> > I am willing to revisit having a setup.py for the python library. I
> > would have thought though, that just installing mingw w/autoconf
> > +automake+libtool would have let subunit build without trouble.
> 
> Possibly, but would it install in C:\Python26\Lib\... or would it want
> to install in /usr/lib/python/...
> 
> Pluss "mingw" w/ autoconf + autopack + libtool + ??? is about 4 more
> packages than I currently have installed, and I have to track them all
> down manually. And last I remember, autoconf was especially sensitive
> to
> version matching with other tools.

years ago autoconf was very fragile and interconnected with a particular
automake version; that watershed is way behind us now.

> > 
> >> I don't really know that getting a progress bar on PQM is worth the
> >> negatives of adding a dependency on a moving 'testtools' target...
> > 
> > Your primary concern seems to be version lockstepping? We *already*
> have
> > testtools as a dependency for 'selftest --parallel', so I don't see
> that
> > the version discussion is all that relevant to the 'hard or soft'
> > discussion - I don't know about you, but I exercise the testtools
> > integration all the time - and I think Vincent does too.
> 
> I have never personally used --parallel. My specific concern is that
> once we make it a hard dependency, then we have to very realistically
> concern ourselves with inter-version compatibility.  It might just be
> the answer that "the latest bzr runs with the latest testtools", but
> there certainly needs to be an answer. And once testtools becomes
> popular and people already have it installed via Lucid's package
> manager, do we start publishing the upgraded version in our ~bzr ppa
> because we started using newer features?

Possibly, the same as we might include paramiko if we needed a bugfixed
version.

> > The hard dependency I'm proposing is not needed for a progress bar
> on
> > PQM, thats a totally different proposition - there we need to make
> sure
> > that all the extended test outcomes we use degrade more gracefully -
> > that is that if bzr can't represent the outcome in
> unittest.TestResult,
> > and our test run would have passed, that the degraded version also
> > passes.
> 
> As I understand it, you wanted to use testtools to make bzr's test
> runner compliant so that subunit could detect skips, rather than
> teaching subunit how bzr does it today.

No: changing the bzrlib internal interface to match upstream python will
do this in one step, testtools isn't involved or needed.

>  Without subunit understanding
> skips, we can't use --subunit because it will incorrectly handle skips
> as errors. (Either it never fails, or it always fails.)

[minor quibble: 'without subunit being given skips as skips']

> And we can't get a progress bar without using --subunit.  Thus by your
> proposal, we need testtools to get subunit to get a progress bar.

No, as above.

> > At the heart of this is laziness - I don't want to write the same
> code
> > twice, when bzr already has a dependency on testtools, and testtools
> > will be getting the code.
> > 
> > -Rob
> 
> Sure. I perfectly understood that point. I even stated it earlier (not
> wanting to do the work twice).
> 
> Note that specifically, once you've done the work on testtools, *bzr*
> will depend on *that* version of testtools, and presumably won't work
> with earlier versions. Or will have to have an amount of compatibility
> code, because older versions of testtools didn't handle skips in the
> same way that it will be done.

It will be a hard dep - thats the proposal ;).

> So there *is* a version dependency. And people wanting to hack on bzr
> will have to upgrade to a minimum version of testtools to get it.

Or users running selftest to validate their platform - they will need it
to.

> And that version of test tools will be a *lot* newer than our other
> dependencies. Namely python2.4, pyrex 0.9.6 or so, paramiko
> really-darn-old, and ?

We're already discussing moving to cython, and its a lot easier to drop
a small library into a system than it is to replace core functionality
like python.

-Rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20091030/865c3b29/attachment.pgp 


More information about the bazaar mailing list