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
