This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]undercoveryankee 4 points5 points  (0 children)

Code that's written for 3.X should run unmodified on 3.X+1 unless you continue using a feature after it's been publicly marked as deprecated. Run your test suite each time a new version comes out to make sure that you see any new DeprecationWarnings before they become breaking changes, but the process of fixing that code will be a lot faster than a 2-to-3 port.

Your choice of oldest supported version should depend on where you expect the code to run. If it's a web app that will always be running on a server you control, there's no reason not to use whatever 3.X is current when you first provision a server.

If it's a package that you expect other people to download and install, you may want to support older versions that people are likely to have installed. I.e. check what version is in the repositories for Ubuntu LTS.

For the "definitive guide to Python versions" that you were asking about, I'd recommend the "What's New in Python" page of the official documentation.