Change-Id: I2424a9957a60ba7858d37da46d4fb86a2e6c6b48 Signed-off-by: Doug Hellmann <doug@doughellmann.com>
2.6 KiB
2018-05-29 Python2 Deprecation Timeline
The Jan. 1, 2020 deadline for upstream support of Python 2 is approaching. Now that most of our projects can claim at least basic support for Python 3, we can consider dropping Python 2 support.
We need to coordinate the timing of that change, and take the step together as a community, rather than going one project at a time, to avoid doubling the work of downstream consumers such as distributions and independent deployers. We do not want to require them to package all (or even a large number) of the dependencies of OpenStack twice because they have to install some services running under Python 2 and others under Python 3. Ideally they would be able to upgrade all of the services on a node together as part of their transition to the new version, without ending up with a Python 2 version of a dependency along side a Python 3 version of the same package.
In various online and in-person discussions, we have previously settled on the end of the T cycle as the point at which we would have all of the prerequisite tests running to allow us to be confident of our Python 3 support, to be followed by dropping Python 2 during the beginning of the U cycle, in late 2019 and before the 2020 cut-off point when upstream Python 2 support will be dropped.
This resolution is the formal documentation of the time line, and includes three points:
- Projects should continue to work to expand Python 3 support as quickly as possible, by ensuring that all unit, functional, and integration tests, as well as other ancillary jobs for building documentation, packaging, etc., run properly under Python 3.
- All projects must complete the work for Python 3 support by the end of the T cycle, unless they are blocked for technical reasons by dependencies they rely on.
- Projects should complete all of the work of updating all of their CI jobs to work under Python 3 before dropping Python 2 support.
- Existing projects under TC governance at the time this resolution is accepted must not drop support for Python 2 before the beginning of the U development cycle (currently anticipated for late 2019).
Resources
- Rocky Forum Session Etherpad
- Mailing list discussion threads from April 2018 and May 2018