You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ep...@apache.org on 2022/07/10 20:15:57 UTC

[airflow] branch main updated: Airflow `2.3.3` has been released (#24942)

This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new e2511910f2 Airflow `2.3.3` has been released (#24942)
e2511910f2 is described below

commit e2511910f2a4fc0120f1cc9c194663d42ffbe54d
Author: Ephraim Anierobi <sp...@gmail.com>
AuthorDate: Sun Jul 10 21:15:34 2022 +0100

    Airflow `2.3.3` has been released (#24942)
---
 .github/ISSUE_TEMPLATE/airflow_bug_report.yml      |   3 +-
 .../airflow_helmchart_bug_report.yml               |   3 +-
 .../airflow_providers_bug_report.yml               |   3 +-
 Dockerfile                                         |   2 +-
 README.md                                          |   2 +-
 RELEASE_NOTES.rst                                  | 134 ++++++++++++++++++++-
 airflow/utils/db.py                                |   1 +
 .../installation/supported-versions.rst            |   2 +-
 .../customizing/pypi-extras-and-deps.sh            |   2 +-
 .../customizing/pypi-selected-version.sh           |   2 +-
 docs/spelling_wordlist.txt                         |   3 +
 newsfragments/24399.significant.rst                |  31 -----
 newsfragments/24519.misc.rst                       |   1 -
 .../ci/pre_commit/pre_commit_supported_versions.py |   2 +-
 14 files changed, 149 insertions(+), 42 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml b/.github/ISSUE_TEMPLATE/airflow_bug_report.yml
index 27d0a33745..f7f8232235 100644
--- a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/airflow_bug_report.yml
@@ -25,7 +25,8 @@ body:
         discuss Airflow 1.10, open a [discussion](https://github.com/apache/airflow/discussions) instead!
       multiple: false
       options:
-        - "2.3.2 (latest released)"
+        - "2.3.3 (latest released)"
+        - "2.3.2"
         - "2.3.1"
         - "2.3.0"
         - "2.2.5"
diff --git a/.github/ISSUE_TEMPLATE/airflow_helmchart_bug_report.yml b/.github/ISSUE_TEMPLATE/airflow_helmchart_bug_report.yml
index b7923dd76d..27ce1cad56 100644
--- a/.github/ISSUE_TEMPLATE/airflow_helmchart_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/airflow_helmchart_bug_report.yml
@@ -46,7 +46,8 @@ body:
         discuss Airflow 1.10, open a [discussion](https://github.com/apache/airflow/discussions) instead!
       multiple: false
       options:
-        - "2.3.2 (latest released)"
+        - "2.3.3 (latest released)"
+        - "2.3.2"
         - "2.3.1"
         - "2.3.0"
         - "2.2.5"
diff --git a/.github/ISSUE_TEMPLATE/airflow_providers_bug_report.yml b/.github/ISSUE_TEMPLATE/airflow_providers_bug_report.yml
index cd3958cdff..20845ea0c7 100644
--- a/.github/ISSUE_TEMPLATE/airflow_providers_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/airflow_providers_bug_report.yml
@@ -114,7 +114,8 @@ body:
         discuss Airflow 1.10, open a [discussion](https://github.com/apache/airflow/discussions) instead!
       multiple: false
       options:
-        - "2.3.2 (latest released)"
+        - "2.3.3 (latest released)"
+        - "2.3.2"
         - "2.3.1"
         - "2.3.0"
         - "2.2.5"
diff --git a/Dockerfile b/Dockerfile
index 54161bb005..fdcbb6fa11 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -44,7 +44,7 @@ ARG AIRFLOW_UID="50000"
 ARG AIRFLOW_USER_HOME_DIR=/home/airflow
 
 # latest released version here
-ARG AIRFLOW_VERSION="2.3.2"
+ARG AIRFLOW_VERSION="2.3.3"
 
 ARG PYTHON_BASE_IMAGE="python:3.7-slim-bullseye"
 
diff --git a/README.md b/README.md
index ab34326eea..d2051d4868 100644
--- a/README.md
+++ b/README.md
@@ -270,7 +270,7 @@ Apache Airflow version life cycle:
 
 | Version   | Current Patch/Minor   | State     | First Release   | Limited Support   | EOL/Terminated   |
 |-----------|-----------------------|-----------|-----------------|-------------------|------------------|
-| 2         | 2.3.2                 | Supported | Dec 17, 2020    | TBD               | TBD              |
+| 2         | 2.3.3                 | 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 9816221f21..96d38843c4 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -21,6 +21,139 @@
 
 .. towncrier release notes start
 
+
+Airflow 2.3.3 (2022-07-05)
+--------------------------
+
+Significant Changes
+^^^^^^^^^^^^^^^^^^^
+
+We've upgraded Flask App Builder to a major version 4.* (#24399)
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Flask App Builder is one of the important components of Airflow Webserver, as
+it uses a lot of dependencies that are essential to run the webserver and integrate it
+in enterprise environments - especially authentication.
+
+The FAB 4.* upgrades a number of dependencies to major releases, which upgrades them to versions
+that have a number of security issues fixed. A lot of tests were performed to bring the dependencies
+in a backwards-compatible way, however the dependencies themselves implement breaking changes in their
+internals so it might be that some of those changes might impact the users in case they are using the
+libraries for their own purposes.
+
+One important change that you likely will need to apply to Oauth configuration is to add
+``server_metadata_url`` or ``jwks_uri`` and you can read about it more
+in `this issue <https://github.com/dpgaspar/Flask-AppBuilder/issues/1861>`_.
+
+Here is the list of breaking changes in dependencies that comes together with FAB 4:
+
+  * ``Flask`` from 1.X to 2.X `breaking changes <https://flask.palletsprojects.com/en/2.0.x/changes/#version-2-0-0>`__
+
+  * ``flask-jwt-extended`` 3.X to 4.X `breaking changes: <https://flask-jwt-extended.readthedocs.io/en/stable/v4_upgrade_guide/>`__
+
+  * ``Jinja2`` 2.X to 3.X `breaking changes: <https://jinja.palletsprojects.com/en/3.0.x/changes/#version-3-0-0>`__
+
+  * ``Werkzeug`` 1.X to 2.X `breaking changes <https://werkzeug.palletsprojects.com/en/2.0.x/changes/#version-2-0-0>`__
+
+  * ``pyJWT`` 1.X to 2.X `breaking changes: <https://pyjwt.readthedocs.io/en/stable/changelog.html#v2-0-0>`__
+
+  * ``Click`` 7.X to 8.X `breaking changes: <https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-0>`__
+
+  * ``itsdangerous`` 1.X to 2.X `breaking changes <https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst#version-200>`__
+
+Bug Fixes
+^^^^^^^^^
+
+- Fix exception in mini task scheduler (#24865)
+- Fix cycle bug with attaching label to task group (#24847)
+- Fix timestamp defaults for ``sensorinstance`` (#24638)
+- Move fallible ``ti.task.dag`` assignment back inside ``try/except`` block (#24533) (#24592)
+- Add missing types to ``FSHook`` (#24470)
+- Mask secrets in ``stdout`` for ``airflow tasks test`` (#24362)
+- ``DebugExecutor`` use ``ti.run()`` instead of ``ti._run_raw_task`` (#24357)
+- Fix bugs in ``URI`` constructor for ``MySQL`` connection (#24320)
+- Missing ``scheduleinterval`` nullable true added in ``openapi`` (#24253)
+- Unify ``return_code`` interface for task runner (#24093)
+- Handle occasional deadlocks in trigger with retries (#24071)
+- Remove special serde logic for mapped ``op_kwargs`` (#23860)
+- ``ExternalTaskSensor`` respects ``soft_fail`` if the external task enters a ``failed_state`` (#23647)
+- Fix ``StatD`` timing metric units (#21106)
+- Add ``cache_ok`` flag to sqlalchemy TypeDecorators. (#24499)
+- Allow for ``LOGGING_LEVEL=DEBUG`` (#23360)
+- Fix grid date ticks (#24738)
+- Debounce status highlighting in Grid view (#24710)
+- Fix Grid vertical scrolling (#24684)
+- don't try to render child rows for closed groups (#24637)
+- Do not calculate grid root instances (#24528)
+- Maintain grid view selection on filtering upstream (#23779)
+- Speed up ``grid_data`` endpoint by 10x (#24284)
+- Apply per-run log templates to log handlers (#24153)
+- Don't crash scheduler if exec config has old k8s objects (#24117)
+- ``TI.log_url`` fix for ``map_index`` (#24335)
+- Fix migration ``0080_2_0_2`` - Replace null values before setting column not null (#24585)
+- Patch ``sql_alchemy_conn`` if old Postgres schemes used (#24569)
+- Seed ``log_template`` table (#24511)
+- Fix deprecated ``log_id_template`` value (#24506)
+- Fix toast messages (#24505)
+- Add indexes for CASCADE deletes for ``task_instance`` (#24488)
+- Return empty dict if Pod JSON encoding fails (#24478)
+- Improve grid rendering performance with a custom tooltip (#24417, #24449)
+- Check for ``run_id`` for grid group summaries (#24327)
+- Optimize calendar view for cron scheduled DAGs (#24262)
+- Use ``get_hostname`` instead of ``socket.getfqdn`` (#24260)
+- Check that edge nodes actually exist (#24166)
+- Fix ``useTasks`` crash on error (#24152)
+- Do not fail re-queued TIs (#23846)
+- Reduce grid view API calls (#24083)
+- Rename Permissions to Permission Pairs. (#24065)
+- Replace ``use_task_execution_date`` with ``use_task_logical_date`` (#23983)
+- Grid fix details button truncated and small UI tweaks (#23934)
+- Add TaskInstance State ``REMOVED`` to finished states and success states (#23797)
+- Fix mapped task immutability after clear (#23667)
+- Fix permission issue for dag that has dot in name (#23510)
+- Fix closing connection ``dbapi.get_pandas_df`` (#23452)
+- Check bag DAG ``schedule_interval`` match timetable (#23113)
+- Parse error for task added to multiple groups (#23071)
+- Fix flaky order of returned dag runs (#24405)
+- Migrate ``jsx`` files that affect run/task selection to ``tsx`` (#24509)
+- Fix links to sources for examples (#24386)
+- Set proper ``Content-Type`` and ``chartset`` on ``grid_data`` endpoint (#24375)
+
+Doc only changes
+^^^^^^^^^^^^^^^^
+
+- Update templates doc to mention ``extras`` and format Airflow ``Vars`` / ``Conns`` (#24735)
+- Document built in Timetables (#23099)
+- Alphabetizes two tables (#23923)
+- Clarify that users should not use Maria DB (#24556)
+- Add imports to deferring code samples (#24544)
+- Add note about image regeneration in June 2022 (#24524)
+- Small cleanup of ``get_current_context()`` chapter (#24482)
+- Fix default 2.2.5 ``log_id_template`` (#24455)
+- Update description of installing providers separately from core (#24454)
+- Mention context variables and logging (#24304)
+
+Misc/Internal
+^^^^^^^^^^^^^
+
+- Remove internet explorer support (#24495)
+- Removing magic status code numbers from ``api_connexion`` (#24050)
+- Upgrade FAB to ``4.1.2`` (#24619)
+- Switch Markdown engine to ``markdown-it-py`` (#19702)
+- Update ``rich`` to latest version across the board. (#24186)
+- Get rid of ``TimedJSONWebSignatureSerializer`` (#24519)
+- Update flask-appbuilder ``authlib``/ ``oauth`` dependency (#24516)
+- Upgrade to ``webpack`` 5 (#24485)
+- Add ``typescript`` (#24337)
+- The JWT claims in the request to retrieve logs have been standardized: we use ``nbf`` and ``aud`` claims for
+  maturity and audience of the requests. Also "filename" payload field is used to keep log name. (#24519)
+- Address all ``yarn`` test warnings (#24722)
+- Upgrade to react 18 and chakra 2 (#24430)
+- Refactor ``DagRun.verify_integrity`` (#24114)
+- Upgrade FAB to ``4.1.1`` (#24399)
+- We now need at least ``Flask-WTF 0.15`` (#24621)
+
+
 Airflow 2.3.2 (2022-06-04)
 --------------------------
 
@@ -7842,7 +7975,6 @@ There are five roles created for Airflow by default: Admin, User, Op, Viewer, an
 Breaking changes
 ~~~~~~~~~~~~~~~~
 
-
 * AWS Batch Operator renamed property queue to job_queue to prevent conflict with the internal queue from CeleryExecutor - AIRFLOW-2542
 * Users created and stored in the old users table will not be migrated automatically. FAB's built-in authentication support must be reconfigured.
 * Airflow dag home page is now ``/home`` (instead of ``/admin``\ ).
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index c2e26ad619..d4b961bff5 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -93,6 +93,7 @@ REVISION_HEADS_MAP = {
     "2.3.0": "b1b348e02d07",
     "2.3.1": "1de7bc13c950",
     "2.3.2": "3c94c427fdf6",
+    "2.3.3": "f5fcbda3e651",
 }
 
 
diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst
index 11ce85f00e..3867ed0305 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.3.2                  Supported  Dec 17, 2020     TBD                TBD
+2          2.3.3                  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/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh b/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
index 86ed94b252..5bf3893a2e 100755
--- a/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
+++ b/docs/docker-stack/docker-examples/customizing/pypi-extras-and-deps.sh
@@ -26,7 +26,7 @@ pushd "${TEMP_DOCKER_DIR}"
 cp "${AIRFLOW_SOURCES}/Dockerfile" "${TEMP_DOCKER_DIR}"
 
 # [START build]
-export AIRFLOW_VERSION=2.3.2
+export AIRFLOW_VERSION=2.3.3
 export DEBIAN_VERSION="bullseye"
 export DOCKER_BUILDKIT=1
 
diff --git a/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh b/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
index 950effa69d..f53bae8c4f 100755
--- a/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
+++ b/docs/docker-stack/docker-examples/customizing/pypi-selected-version.sh
@@ -26,7 +26,7 @@ pushd "${TEMP_DOCKER_DIR}"
 cp "${AIRFLOW_SOURCES}/Dockerfile" "${TEMP_DOCKER_DIR}"
 
 # [START build]
-export AIRFLOW_VERSION=2.3.2
+export AIRFLOW_VERSION=2.3.3
 export DOCKER_BUILDKIT=1
 
 docker build . \
diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt
index 7edcebaf4d..3af1c984b6 100644
--- a/docs/spelling_wordlist.txt
+++ b/docs/spelling_wordlist.txt
@@ -112,6 +112,7 @@ Datasync
 DateFrame
 Datetimepicker
 Datetimes
+Debounce
 Decrypt
 Decrypts
 DeidentifyContentResponse
@@ -593,6 +594,7 @@ cfg
 cgi
 cgroups
 cgroupspy
+chakra
 changelog
 charset
 checklicence
@@ -1330,6 +1332,7 @@ seealso
 seedlist
 segmentGranularity
 sendgrid
+serde
 serialise
 serializable
 serverless
diff --git a/newsfragments/24399.significant.rst b/newsfragments/24399.significant.rst
deleted file mode 100644
index 7f1833a8e8..0000000000
--- a/newsfragments/24399.significant.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-We've upgraded Flask Application Builder to a major version 4.*.
-
-Flask Application Builder is one of the important components of Airflow Webserver, as
-it uses a lof of dependencies that are essential to run the webserver and integrate it
-in enterprise environments - especially authentication.
-
-The FAB 4.* upgrades a number of dependencies to major releases, which upgrades them to versions
-that have a number of security issues fixed. A lot of tests were performed to bring the dependencies
-in a backwards-compatible way, however the dependencies themselves implement breaking changes in their
-internals so it might be that some of those changes might impact the users in case they are using the
-libraries for their onw purposes.
-
-One important change that you likely will need to apply to Oauth configuration is to add
-``server_metadata_url`` or ``jwks_uri`` and you can read about it more
-in `this issue <https://github.com/dpgaspar/Flask-AppBuilder/issues/1861>`_.
-
-Here is the list of breaking changes in dependencies that comes together with FAB 4:
-
-* Flask from 1.X to 2.X `breaking changes <https://flask.palletsprojects.com/en/2.0.x/changes/#version-2-0-0>`_
-
-* flask-jwt-extended 3.X to 4.X `breaking changes: <https://flask-jwt-extended.readthedocs.io/en/stable/v4_upgrade_guide/>`_
-
-* Jinja2 2.X to 3.X `breaking changes: <https://jinja.palletsprojects.com/en/3.0.x/changes/#version-3-0-0>`_
-
-* Werkzeug 1.X to 2.X `breaking changes <https://werkzeug.palletsprojects.com/en/2.0.x/changes/#version-2-0-0>`_
-
-* pyJWT 1.X to 2.X `breaking changes: <https://pyjwt.readthedocs.io/en/stable/changelog.html#v2-0-0>`_
-
-* Click 7.X to 8.X `breaking changes: <https://click.palletsprojects.com/en/8.0.x/changes/#version-8-0-0>`_
-
-* itsdangerous 1.X to 2.X `breaking changes <https://github.com/pallets/itsdangerous/blob/main/CHANGES.rst#version-200>`_
diff --git a/newsfragments/24519.misc.rst b/newsfragments/24519.misc.rst
deleted file mode 100644
index 799d9141d2..0000000000
--- a/newsfragments/24519.misc.rst
+++ /dev/null
@@ -1 +0,0 @@
-The JWT claims in the request to retrieve logs have been standardized: we use "nbf" and "aud" claims for maturity and audience of the requests. Also "filename" payload field is used to keep log name.
diff --git a/scripts/ci/pre_commit/pre_commit_supported_versions.py b/scripts/ci/pre_commit/pre_commit_supported_versions.py
index f8603f25a6..945940a9b6 100755
--- a/scripts/ci/pre_commit/pre_commit_supported_versions.py
+++ b/scripts/ci/pre_commit/pre_commit_supported_versions.py
@@ -25,7 +25,7 @@ AIRFLOW_SOURCES = Path(__file__).resolve().parent.parent.parent.parent
 HEADERS = ("Version", "Current Patch/Minor", "State", "First Release", "Limited Support", "EOL/Terminated")
 
 SUPPORTED_VERSIONS = (
-    ("2", "2.3.2", "Supported", "Dec 17, 2020", "TBD", "TBD"),
+    ("2", "2.3.3", "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"),