I finally have the swig-py3 branch in a state that I believe is ready to be
merged into trunk. All the tests pass under python 2 and 3 now, and I
successfully tested viewvc 1.1.26 against the python 2 bindings. In order
to have shared code for python 2 and 3, there were a fair number of
substitutions of old ways of doing things, to ways that were more
compatible with both python 2.7 and 3. Where that wasn't possible,
explicit feature or version detection was employed. However, there was not
really substantive changes, and should have no changes in the way the
bindings actually work.
The two biggest changes from Python 2 perspective:
1. Switching SWIG out of "classic" mode. The means that all the generated
classes are now "new-style" classes, and use properties for most attribute
2. Introduction of py3c compatibility library dependency.
#1 should really only be an issue if a client subclassed one of the swig
classes. This doesn't seem likely to me, as the swig classes already do
not look very inheritance friendly, but I would definitely expect some
differences to subclasses in the old-style to new-style class migration.
The biggest hole in my testing is Windows. I am not a Windows developer,
so hopefully someone that is could take a look. I'm betting that there is
at least something that needs to change in order to correctly locate and
use the py3c library.
So if you get a chance, take a look and let me know if you agree that it is
ready to merge.
Received on 2017-12-28 06:47:36 CET