archivematica-architectural-decisions

Refactor to Python 3

Context and problem statement

Python 2 will not be supported by the Python development team past January 1, 2020. Operating system vendors will provide bugfix support for some number of years, depending on the OS:

Archivematica is not fully compatible with Python 3 yet. Archivematica and all of its required components will eventually need to run in a Python 3 environment, especially as downstream dependencies begin to drop support for Python 2 (i.e. Django).

Components:

Decision drivers

Considered options

  1. Refactor to Python 3 (3.5 at minimum)

Decision outcome

Chosen option: 1, because refactoring Archivematica and all required components to Python 3 is the only option to ensure that Archivematica continues to be a safe, stable environment.

Python 3.5 has been set as the minimum version for the following reasons:

During the course of the project, a higher version of Python may be selected.

Epic for Python 3 refactoring

Positive consequences

Negative consequences