Chapter 1. On the move to Python 3

Debian currently supports two Python stacks, one for Python 3 and one for Python 2. The long term goal for Debian is to reduce this to one stack, dropping the Python 2 stack at some time.

PEP 404 states that no more major Python 2 releases are planned, although the latest released minor version 2.7 will see some extended support, documented in PEP 466.

Packages in Debian should use Python 3 if Python 3 is supported. New packages should use Python 3 from the initial upload, new upstream versions for existing packages should use Python 3 if the new upstream version supports it.

  1. Programs should use Python 3, and should not be packaged for Python 2 as well. Python 3 should be used for the packaging if the packaging scripts use Python.

  2. Python libraries, if they support Python 3, should be always packaged for Python 3. If an application supports only Python 2, the Python libraries for that application should also be packaged for Python 2.

  3. Existing Python 2 libraries should not be dropped before the last reverse dependency is removed.