Hey everyone, I've opened a PR https://github.com/apache/airflow/pull/35123 to limit Airflow to Python < 3.12 though I am not sure if this is the best idea so I seek devlist wisdom to decide whether we should do this, or maybe something else like allowing airflow to be installed but produce a clean error indicating 3.12 is not (yet) supported.
Currently Airflow does not work for Python 3.12 - mainly because of "distutils" removal https://peps.python.org/pep-0632/ and the way how some of the core dependencies - Pendulum for on - and likely some of our providers have other breaking dependencies. While Andrey works on Pendulum upgrade as they released version 3 that is compatible, this might take some time and we might find out there are other problems as we are not running the full test suite for 3.12 due to dependency issues. It looks like that Python 3.12 is a bit different than 3.7 - 3.11 releases were - this is the first release that is more aggressive when it comes to backwards compatibility. There are also some unit test methods removal and other change that might make our 3.12 migration a bit more painful (more details here for example) https://towardsdatascience.com/python3-12-98245ecd6a97 Currently people attempting to install Airflow with Python 3.12 will get unobvious errors (like build errors or runtime errors that are cryptic). This is already happening and users are reporting issues that "airflow does not work" which boils down to installing Airflow (or breeze) for Python 3.12. I initially thought (hence the PR) that we can limit Airflow to < 3.12 and release it in 2.7.3 (and remove the limitation once we get official 3.12 support). So maybe a better solution will be to check the Python version at startup time and fail Airflow with clear error. Or maybe we should not worry about it at all? The problem is that if we limit 2.7.3, users installing airflow on 3.12 will install 2.7.2 because it has no limit for Python - and will end up with the very same experience they have now. WDYT? J.