Forking baazar to add Python 3.x support

Richard Wilbur richard.wilbur at gmail.com
Fri Mar 7 00:28:28 UTC 2014


On Thu, Mar 6, 2014 at 7:05 AM, Bob Tanner <tanner at real-time.com> wrote:
>
> I think dropping support for Python 2 would be a mistake at this point in
> time.

What reason(s) did you have in mind?

My understanding of the differences between Python 2 and Python 3
imply that depending on the level of coding sophistication it could
require significant work to support both in the same files.  Then
again, this could also be a good step in the right direction for the
bzr code base.  Evidently Armin Ronacher's python-modernize[1] is a
tool that can help with this process.

I can think of a few reasons it could be a real challenge to port bzr
to Python 3:
1.  bzr currently represents a relatively mature software project with
a non-trivial volume of Python 2 code.  Any syntax changes may affect
a lot of code requiring significant re-factoring.  (The 2to3 tool
should help here.)
2.  Any changes in semantics that don't break syntax won't be caught
by the language, so will require tracking down as bugs or failed test
cases.  (Anyone familiar with the 2to3 tool's track record on these
types of changes?)
3.  Library dependencies will need to be updated.  Libraries that
haven't been ported to Python 3 will require porting or re-factoring
the bzr interface to use a library that already supports Python 3.

Nevertheless, Python 3.x is receiving the bulk of the new development
effort and cleans up Unicode/encoding handling for strings, among many
other things.[2]

[1]  https://pypi.python.org/pypi/modernize
[2]  https://wiki.python.org/moin/Python2orPython3



More information about the bazaar mailing list