diff --git a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml b/.github/ISSUE_TEMPLATE/airflow_bug_report.yml index a29187039bf0c..ae4cc2fd736f9 100644 --- a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/airflow_bug_report.yml @@ -25,7 +25,7 @@ body: the latest release or main to see if the issue is fixed before reporting it. multiple: false options: - - "2.9.1" + - "2.9.2" - "main (development)" - "Other Airflow 2 version (please specify below)" validations: diff --git a/Dockerfile b/Dockerfile index dc529538bed4d..0b6c77416784c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,7 +45,7 @@ ARG AIRFLOW_UID="50000" ARG AIRFLOW_USER_HOME_DIR=/home/airflow # latest released version here -ARG AIRFLOW_VERSION="2.9.1" +ARG AIRFLOW_VERSION="2.9.2" ARG PYTHON_BASE_IMAGE="python:3.8-slim-bookworm" diff --git a/README.md b/README.md index eaa95eacc2416..6bb7024eb7d58 100644 --- a/README.md +++ b/README.md @@ -97,14 +97,14 @@ Airflow is not a streaming solution, but it is often used to process real-time d Apache Airflow is tested with: -| | Main version (dev) | Stable version (2.9.1) | -|-------------|------------------------------|-----------------------------| -| Python | 3.8, 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | -| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | -| Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29 | -| PostgreSQL | 12, 13, 14, 15, 16 | 12, 13, 14, 15, 16 | -| MySQL | 8.0, 8.4, Innovation | 8.0, Innovation | -| SQLite | 3.15.0+ | 3.15.0+ | +| | Main version (dev) | Stable version (2.9.2) | +|-------------|------------------------------|----------------------------| +| Python | 3.8, 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | +| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | +| Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29 | +| PostgreSQL | 12, 13, 14, 15, 16 | 12, 13, 14, 15, 16 | +| MySQL | 8.0, 8.4, Innovation | 8.0, Innovation | +| SQLite | 3.15.0+ | 3.15.0+ | \* Experimental @@ -124,7 +124,7 @@ as this is the only environment that is supported. The only distro that is used is used in the [Community managed DockerHub image](https://hub.docker.com/p/apache/airflow) is `Debian Bookworm`. We also have support for legacy ``Debian Bullseye`` base image if you want to build a custom image but it is deprecated and option to do it will be removed in the Dockerfile that -will accompany Airflow 2.9.1 so you are advised to switch to ``Debian Bookworm`` for your custom images. +will accompany Airflow 2.9.2 so you are advised to switch to ``Debian Bookworm`` for your custom images. @@ -179,15 +179,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==2.9.1' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt" +pip install 'apache-airflow==2.9.2' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.2/constraints-3.8.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash pip install 'apache-airflow[postgres,google]==2.8.3' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt" + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.2/constraints-3.8.txt" ``` For information on installing provider packages, check @@ -292,7 +292,7 @@ Apache Airflow version life cycle: | Version | Current Patch/Minor | State | First Release | Limited Support | EOL/Terminated | |-----------|-----------------------|-----------|-----------------|-------------------|------------------| -| 2 | 2.9.1 | Supported | Dec 17, 2020 | TBD | TBD | +| 2 | 2.9.2 | Supported | Dec 17, 2020 | TBD | TBD | | 1.10 | 1.10.15 | EOL | Aug 27, 2018 | Dec 17, 2020 | June 17, 2021 | | 1.9 | 1.9.0 | EOL | Jan 03, 2018 | Aug 27, 2018 | Aug 27, 2018 | | 1.8 | 1.8.2 | EOL | Mar 19, 2017 | Jan 03, 2018 | Jan 03, 2018 | diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index e6f86c0512ab0..d26e91d2161b6 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -21,6 +21,67 @@ .. towncrier release notes start +Airflow 2.9.2 (2024-06-10) +-------------------------- + +Significant Changes +^^^^^^^^^^^^^^^^^^^ + +No significant changes. + +Bug Fixes +""""""""" +- Fix bug that makes ``AirflowSecurityManagerV2`` leave transactions in the ``idle in transaction`` state (#39935) +- Fix alembic auto-generation and rename mismatching constraints (#39032) +- Add the existing_nullable to the downgrade side of the migration (#39374) +- Fix Mark Instance state buttons stay disabled if user lacks permission (#37451). (#38732) +- Use SKIP LOCKED instead of NOWAIT in mini scheduler (#39745) +- Remove DAG Run Add option from FAB view (#39881) +- Add max_consecutive_failed_dag_runs in API spec (#39830) +- Fix example_branch_operator failing in python 3.12 (#39783) +- Fetch served logs also when task attempt is up for retry and no remote logs available (#39496) +- Change dataset URI validation to raise warning instead of error in Airflow 2.9 (#39670) +- Visible DAG RUN doesn't point to the same dag run id (#38365) +- Refactor ``SafeDogStatsdLogger`` to use ``get_validator`` to enable pattern matching (#39370) +- Fix custom actions in security manager ``has_access`` (#39421) +- Fix HTTP 500 Internal Server Error if DAG is triggered with bad params (#39409) +- Fix static file caching is disabled in Airflow Webserver. (#39345) +- Fix TaskHandlerWithCustomFormatter now adds prefix only once (#38502) +- Do not provide deprecated ``execution_date`` in ``@apply_lineage`` (#39327) +- Add missing conn_id to string representation of ObjectStoragePath (#39313) +- Fix ``sql_alchemy_engine_args`` config example (#38971) +- Add Cache-Control "no-store" to all dynamically generated content (#39550) + +Miscellaneous +""""""""""""" +- Limit ``yandex`` provider to avoid ``mypy`` errors (#39990) +- Warn on mini scheduler failures instead of debug (#39760) +- Change type definition for ``provider_info_cache`` decorator (#39750) +- Better typing for BaseOperator ``defer`` (#39742) +- More typing in TimeSensor and TimeSensorAsync (#39696) +- Re-raise exception from strict dataset URI checks (#39719) +- Fix stacklevel for _log_state helper (#39596) +- Resolve SA warnings in migrations scripts (#39418) +- Remove unused index ``idx_last_scheduling_decision`` on ``dag_run`` table (#39275) + +Doc Only Changes +"""""""""""""""" +- Provide extra tip on labeling DynamicTaskMapping (#39977) +- Improve visibility of links / variables / other configs in Configuration Reference (#39916) +- Remove 'legacy' definition for ``CronDataIntervalTimetable`` (#39780) +- Update plugins.rst examples to use pyproject.toml over setup.py (#39665) +- Fix nit in pg set-up doc (#39628) +- Add Matomo to Tracking User Activity docs (#39611) +- Fix Connection.get -> Connection. get_connection_from_secrets (#39560) +- Adding note for provider dependencies (#39512) +- Update docker-compose command (#39504) +- Update note about restarting triggerer process (#39436) +- Updating S3LogLink with an invalid bucket link (#39424) +- Update testing_packages.rst (#38996) +- Add multi-team diagrams (#38861) + + + Airflow 2.9.1 (2024-05-03) -------------------------- diff --git a/airflow/reproducible_build.yaml b/airflow/reproducible_build.yaml index a1fdf08fc5a3c..b2c492eb133b4 100644 --- a/airflow/reproducible_build.yaml +++ b/airflow/reproducible_build.yaml @@ -1,2 +1,2 @@ -release-notes-hash: 9809f8d0a17cb29bb999a06b7a23c02b -source-date-epoch: 1714668201 +release-notes-hash: 37953284e268ff0273e6ba4d8ce9db4f +source-date-epoch: 1718019354 diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst index 4a86b7758c64b..4e160f434d451 100644 --- a/docs/apache-airflow/installation/supported-versions.rst +++ b/docs/apache-airflow/installation/supported-versions.rst @@ -29,7 +29,7 @@ Apache Airflowâ„¢ version life cycle: ========= ===================== ========= =============== ================= ================ Version Current Patch/Minor State First Release Limited Support EOL/Terminated ========= ===================== ========= =============== ================= ================ -2 2.9.1 Supported Dec 17, 2020 TBD TBD +2 2.9.2 Supported Dec 17, 2020 TBD TBD 1.10 1.10.15 EOL Aug 27, 2018 Dec 17, 2020 June 17, 2021 1.9 1.9.0 EOL Jan 03, 2018 Aug 27, 2018 Aug 27, 2018 1.8 1.8.2 EOL Mar 19, 2017 Jan 03, 2018 Jan 03, 2018 diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index 8c5164d6759a6..3b30f20fc59ea 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -1519,6 +1519,7 @@ sslrootcert ssm Stackdriver stackdriver +stacklevel stacktrace starttls StatefulSet diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md index 87cf63841ff45..7e9885b3ab6d0 100644 --- a/generated/PYPI_README.md +++ b/generated/PYPI_README.md @@ -54,14 +54,14 @@ Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Apache Airflow is tested with: -| | Main version (dev) | Stable version (2.9.1) | -|-------------|------------------------------|-----------------------------| -| Python | 3.8, 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | -| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | -| Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29 | -| PostgreSQL | 12, 13, 14, 15, 16 | 12, 13, 14, 15, 16 | -| MySQL | 8.0, 8.4, Innovation | 8.0, Innovation | -| SQLite | 3.15.0+ | 3.15.0+ | +| | Main version (dev) | Stable version (2.9.2) | +|-------------|------------------------------|----------------------------| +| Python | 3.8, 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | +| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | +| Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29 | +| PostgreSQL | 12, 13, 14, 15, 16 | 12, 13, 14, 15, 16 | +| MySQL | 8.0, 8.4, Innovation | 8.0, Innovation | +| SQLite | 3.15.0+ | 3.15.0+ | \* Experimental @@ -81,7 +81,7 @@ as this is the only environment that is supported. The only distro that is used is used in the [Community managed DockerHub image](https://hub.docker.com/p/apache/airflow) is `Debian Bookworm`. We also have support for legacy ``Debian Bullseye`` base image if you want to build a custom image but it is deprecated and option to do it will be removed in the Dockerfile that -will accompany Airflow 2.9.1 so you are advised to switch to ``Debian Bookworm`` for your custom images. +will accompany Airflow 2.9.2 so you are advised to switch to ``Debian Bookworm`` for your custom images. ## Getting started @@ -132,15 +132,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==2.9.1' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt" +pip install 'apache-airflow==2.9.2' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.2/constraints-3.8.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash pip install 'apache-airflow[postgres,google]==2.8.3' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.1/constraints-3.8.txt" + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.9.2/constraints-3.8.txt" ``` For information on installing provider packages, check diff --git a/scripts/ci/pre_commit/supported_versions.py b/scripts/ci/pre_commit/supported_versions.py index 98e7004fcf1d4..a37a1dbbb433f 100755 --- a/scripts/ci/pre_commit/supported_versions.py +++ b/scripts/ci/pre_commit/supported_versions.py @@ -27,7 +27,7 @@ HEADERS = ("Version", "Current Patch/Minor", "State", "First Release", "Limited Support", "EOL/Terminated") SUPPORTED_VERSIONS = ( - ("2", "2.9.1", "Supported", "Dec 17, 2020", "TBD", "TBD"), + ("2", "2.9.2", "Supported", "Dec 17, 2020", "TBD", "TBD"), ("1.10", "1.10.15", "EOL", "Aug 27, 2018", "Dec 17, 2020", "June 17, 2021"), ("1.9", "1.9.0", "EOL", "Jan 03, 2018", "Aug 27, 2018", "Aug 27, 2018"), ("1.8", "1.8.2", "EOL", "Mar 19, 2017", "Jan 03, 2018", "Jan 03, 2018"),