← Back to team overview

cloud-init team mailing list archive

Formally Dropping Python 3.4 Support


Hello all,

This is a notification that we're officially dropping support for Python
3.4 from the upstream cloud-init codebase.

More details below, but cloud-init has failed to import on Python 3.4
since v20.3 (released in August 2020) and as we've heard no complaints
about this, we infer that no-one is using recent versions of cloud-init
with Python 3.4.  Dropping 3.4 reduces our support matrix, and allows us
to start using typing more extensively in the codebase (as 3.5 was the
first release that shipped the `typing` stdlib module).

More specifically, the breaking change was in 2e32c40a[0] which landed
in May 2020.  It introduced the use of unpacking syntax which was only
introduced in Python 3.5[1].  This means that import cc_apt_configure.py
will raise a SyntaxError, including during test runs.  This commit was
first included in cloud-init 20.3, released in August 2020, and has been
present in both 20.4 and 21.1 since.

While addressing this specific issue would likely be trivial, there may
be other, less obvious, breakages on Python 3.4 within the codebase.
Furthermore, we aren't aware of any distros backporting cloud-init to
releases which use Python 3.4, and Python 3.4 has been EOL upstream
since 2019[2].  Given all of this, we're choosing to drop support.

Apologies for the post-hoc nature of this deprecation: we have much
better test coverage for Python 3.5 and later[3], so those deprecations
shouldn't come as a surprise: to us, or to you.

If this drop of support does pose problems for you, please do reach out
to me or another cloud-init committer and we can figure out how to
address your needs!



[0] https://github.com/canonical/cloud-init/commit/2e32c40a607250bc9e713c0daf360dc6617f4420
[1] https://docs.python.org/3/whatsnew/3.5.html#whatsnew-pep-448
[2] https://www.python.org/dev/peps/pep-0429/
[3] Indeed, it was the introduction of test coverage for multiple Python
    versions which revealed this 3.4 breakage in the first place.

Attachment: signature.asc
Description: PGP signature