Hello everyone,

Since we are close to the Airflow 2.8.0 release, I would like to propose a
change in the approach for our "default" images.

Currently there are few images that are considered as "default", for
example:

apache/airflow:latest
apache/airflow:2.7.4

Currently (according to our process [1] and user documentation [2]) those
point to the "oldest" python version we support (currently they point to
Python 3.8).

There is no particular reason why it is like that, and with Airflow 2.8.0
we have an opportunity to change it and point the default images to "latest
supported" (and keep this version as default for the whole MINOR line of
releases.

In the case of Airflow 2.8.* - that would be "Python 3.11" being default
for the whole 2.8.* line unless we manage to get Python 3.12 support in our
CI before we release Airflow 2.8.0, then it would be Python 3.12

We do not have any SemVer promises about that. Users can still choose to
use the  "2.8.0-python3.8" tag if they want.

Generally going to 2.8 should always be a deliberate action, so we have
chance to explain in the release notes that if they want to stick to the
2.8 release. So they are not "losing" anything, they can have 100%
compatibility by just choosing a different image in their deployment. This
**might** cause a little hassle when they migrate if they find some
incompatibilities, but generally speaking it's a very straightforward and
simple change - just  adding "-python3.8" to your TAG - whatever deployment
option you have. And our users will have to go through it anyway every time
we drop the old Python version (and this change might be even more costly
as they have no choice then) - so it changes very little, just shifts the
time where they will have to do it.

There are benefits of doing it - for both our users and well, environment
as well (and I really mean a positive impact on the "world environment" to
be honest. Maybe a little impact - but with Airflow's popularity, it might
make a (small) difference. Python 3.11 is generally 30% faster than
previous versions and using it by default means that 30% less CPU is being
wasted. Also it will mean actual money savings for our users. Also Python
3.12 comes with even more performance improvements and keeping up with
those being the "default" is a pretty good idea.

I cannot think of any other drawbacks of this change.

WDYT?

[1] Documented versioning approach:
https://github.com/apache/airflow#base-os-support-for-reference-airflow-images
[2] User documentation
https://airflow.apache.org/docs/docker-stack/index.html

Reply via email to