Should I change my Python code if I upgrade my Ubuntu?
I have a software that I have been developing in Python 3 for years. Until today, I have been using Ubuntu Desktop 11.04 but now I want to move to a higher version of Ubuntu.
Must I stay on Ubuntu 11.04 so that I won't have to change parts of the source code of my software due to new changes in the higher versions of Ubuntu?
Won't a recent Ubuntu version affect my software in any way ?
No, you should not stay on 11.04. It has been End of Life for support since October 2012. If you want any support at all, you need to upgrade, at least to 12.04 (which will be supported for three more years).
Also, even newer versions of of Ubuntu are including Python 3.x by default, with a goal of removing Python 2.x from the default install completely.
You may have issues with running your code under a newer version of Python 3.x, but should in general have no problems. You should also, as a developer, be prepared to deal with any such issues, regardless of what version of Ubuntu you are on. Any library you're using, or Python itself, could have a bug which your code depends on behaviorally, and if that bug is fixed, could cause your program to behave different from how you were expecting it to previously.
Difficult to give a definitive answer without a description of your application. Since you're using Python3, at least you're not limited with the Python2.x branch (there will be no Python 2.8).
Now a few warnings that may apply to your application, with Python3 a lot of packages are now deprecated just because the best way to access GLib/GObject/GIO/GTK+ is by using Python GObject Introspection (aka PyGI).
Finally there's still some minor differences between the different python3 versions (e.g Argparse does not behave exactly the same with python 3.2 and 3.3.
One thing you could try is to boot a 14.04 VM and test your code with python3.4.
Based on your comments, you successfully tested your software on VMs which is a good news.
But as an application developer you must be prepared to adapt your code to newer releases otherwise it will be quickly abandoned.
Now to ensure that it will continue to work with new releases of Ubuntu I strongly encourage you to maintain it as a package and provide a complete test suite for your application and call it during the build process of the package (e.g by calling setup.py test
in your debian/rules
override_dh_auto_test
section).
You can easily set up daily builds of your package in a ppa using a bzr-builder recipe. That way, you'll be notified of all build failures caused by new software versions or broken dependencies.
New releases are usually open for development a few days after the official release announcement. Look at our ppa page, Utopic is now part of the distro series we are building for: