2010/10/8 Jeremy Baron <jeremy@tuxmachine.com>
Have you read http://wiki.python.org/moin/Python2orPython3 ?

Yes, I have. My question is: does Pywikibot use any of the still unported library modules?

2010/10/8 <info@gno.de>
 We would lost our backward compatibility for our scrips. There are some bot owner running py 2.4 and I really would be glad if we could deny our support for this version. First let's merge to the rewrite branch based on 2.5 and let the old stuff behind us. I guess this will be done next year ;)

We WILL lose  the backward compatibility. This was Guido's decision, not ours. The only question is when.
I know you have worked with rewrite branch very much and it is tiring to maintain two branches collaterally and everyone is looking forward to release Pywiki2.0. Thats OK, and many thanks for your work. I also understand the sad guys with an old version of Python. But there will be more and more sad users who would like to use Py3.x, and must keep the old version and make tricks to choose between versions. Are we facing towards the future or __future__? :-)

The guys at python.org say that 2.7 will have an extended support time, but they don't say what this means. For me, pywikibot is the only reason to use 2.x and i would feel more freedom with saying good-bye. Nobody speaks about the lifetime of 2.5 and 2.6

As 2.7 has now a final release, and developers are deeling with 3.2, my idea is that one day (which is not too far in an ideal case) we release the final Pywikibot 2.0 and from that time it will only have bugfix support. The new developments would be under Pywikibot 3.0, and if someone feels like, he/she could backport them to 2.0. The Python version for final Pywiki 2 may be argued, it may be 2.5 or 2.7 (I think this is not too big difference in code). Since the development of Pywiki 3 has not begun yet, it may use at least Python 3.2 (stable version in January 2011).

What are the incompatibilities? Let's make a list. Many syntaxes used by the current version of Pywiki may be backported to 2.5 if.
*The greatest problem is print vs. print(), and the many-many u""s in Unicode text. I think this can be handled by the 2to3 tool of Python. But Python 2.5 also understands the syntax print(). (What about 2.4?)
*Some modules are use in a different way, e. g. urllib.
I can imagine alternative imports either with if sys.version... or a try/else construction. This would lead to a more complicated code but it would work under 2.5 as well as under 3.x
*If there are any raw_inputs, they must be changed to input. Are there many?
What else?

Python 3 has also a 3to2 tool. That means, developments under 3.x can be backported easily.

I don't say we have to do this before Christmas. :-) But let's think about it.


Bináris