Yes, Python 2.6 is backwards compatible!
I’ve now seen three separate cases of people claiming or implying that Python 2.6 isn’t compatible with Python 2.5 and that some sort of porting effort would be needed. Let me make this perfectly clear: The people who claim this do not know what they are talking about, and has most likely never even tried to run their software on Python 2.6!
I have no idea where this rumour comes from but it’s utterly false. The incompatibilities between 2.5 and 2.6 are no greater than between 2.4 and 2.5 or 2.4 and 2.3. In fact they are smaller. The main incompatibility is that you no longer in Python 2.6 can raise string exceptions and you can’t call a variable “with”. But Python 2.5 warns for both these changes, so anyone running on Python 2.5 is likely to have fixed this already, as the deprecation warnings are pretty annoying.
Now, there are big changes in Python 2.6, but those are all about new features and forward compatibility. You no longer have to use a __future__ import for the with statement, you can use the new syntax when catching exceptions, the multiprocessing and json modules are new, there are several new __future__ imports for increased compatibility with Python 3, etc. But none of these break backwards compatibility. The only changes that do so will give a deprecation warning in Python 2.5, and as such it’s actually more backwards compatible that Python 2.5 was with 2.4, as less things break.
Python 2.6 is in fact the most compatible Python version ever, excluding the upcoming 2.7 which well have some additional Python 3 features backported. Python 2.6 can not only run most Python 1 and Python 2 code, but even quite a lot of Python 3 code too, if you add some __future__ imports.
So there. I hope this cleared things up.