What's the status of Python 2.6 support?
Vincent Ladeuil
v.ladeuil+lp at free.fr
Tue Jan 13 09:09:31 GMT 2009
Sorry for the delay, the diagnostic regarding the ftp failures
was a bit tough.
So basically, there three kind of failures in your report:
- ftp related ones,
- encoding related ones,
- test_diff_kind_change one.
I can't reproduce the encoding related ones and I wonder if your
setup is unusual there, I'd suspect some unusual locale... or
some strange formatting for your /private volume (doubtly).
The ftp related ones are messy: there is a bug either in medusa
or in python-2.6 asynchat.py (which medusa uses). Tracking the
root cause is a bit too much work for me right now (I end up
understanding that some Unicode strings are wrongly processed as
if they were lists, but that's really deep in medusa/asynchat and
isolating that is not trivial). Anyway, the outcome will be either:
- find a workaround in our test ftp server (requirements: python,
multi-platform, can be run without being root),
- replace medusa by another ftp server (medusa hasn't been
updated for years, so the fact that it's not compatible with
python-2.6 is not a big surprise),
- inhibit medusa use when running 2.6.
I'd like feedback before going further.
Guillermo> FAIL: test_diff_kind_change (bzrlib.tests.test_diff.TestDiffTree)
<snip/>
Guillermo> ----------------------------------------------------------------------
Guillermo> Traceback (most recent call last):
Guillermo> File "/Users/guillermo/Projects/bazaar/bundle/external/bzr-1.10/bzrlib/tests/test_diff.py", line 707, in test_diff_kind_change
Guillermo> "=== target is 'new'\n")
Guillermo> AssertionError: pattern "=== target is 'new'
Guillermo> " not found in
Guillermo> """\
Guillermo> --- olddir/oldfile 2008-12-30 03:37:12 +0000
Guillermo> +++ newdir/newfile 1970-01-01 00:00:00 +0000
Guillermo> @@ -1,1 +0,0 @@
Guillermo> -old
Guillermo> === target is u'new'
Guillermo> """
I know about this one for a long time and at first was afraid it
was caused by a deeper problem. I'm now convinced it's more a
cosmetic problem that a real test failure, the root cause being
that we use in bzrlib.diff:
class DiffSymlink(DiffPath):
def diff(self, file_id, old_path, new_path, old_kind, new_kind):
def diff_symlink(self, old_target, new_target):
if old_target is None:
self.to_file.write('=== target is %r\n' % new_target)
elif new_target is None:
self.to_file.write('=== target was %r\n' % old_target)
else:
self.to_file.write('=== target changed %r => %r\n' %
(old_target, new_target))
return self.CHANGED
new_target is a regular string in 2.5 and a unicode one in 2.6.
Anybody has a good idea on how to fix that (i.e. make the test
pass since the code by itself is correct IMHO) ?
So all in all, the failures you're reporting, while being a
nuisance do not reveal bugs by themselves.
Vincent
More information about the bazaar
mailing list