Impact Score: 5/10
Apache Airflow 2.2.4
Source available โ automated, not human-reviewed
Component: airflow ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Apache Airflow 2.2.4. Source highlight: Adding missing login provider related methods from Flask-Appbuilder (#21294)
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- Added explaining concept of logical date in DAG run docs (#21433)
- Add note about Variable precedence with env vars (#21568)
- Add documentation and release policy on "latest" constraints (#21093)
- Add a link to the DAG model in the Python API reference (#21060)
- Added an enum param example (#20841)
- Add note about reserved ``params`` keyword (#20640)
โก Performance & Enhancements (1)
- Improve documentation on ``Params`` (#20567)
๐ง Bug Fixes & Patches (6)
- Adding missing login provider related methods from Flask-Appbuilder (#21294)
- Fix slow DAG deletion due to missing ``dag_id`` index for job table (#20282)
- Add a session backend to store session data in the database (#21478)
- Show task status only for running dags or only for the last finished dag (#21352)
- Use compat data interval shim in log handlers (#21289)
- Fix mismatch in generated run_id and logical date of DAG run (#18707)
๐ View Raw Release Notes (Original Developer Log)
## Bug Fixes
- Adding missing login provider related methods from Flask-Appbuilder (#21294)
- Fix slow DAG deletion due to missing ``dag_id`` index for job table (#20282)
- Add a session backend to store session data in the database (#21478)
- Show task status only for running dags or only for the last finished dag (#21352)
- Use compat data interval shim in log handlers (#21289)
- Fix mismatch in generated run_id and logical date of DAG run (#18707)
- Fix TriggerDagRunOperator extra link (#19410)
- Add possibility to create user in the Remote User mode (#19963)
- Avoid deadlock when rescheduling task (#21362)
- Fix the incorrect scheduling time for the first run of dag (#21011)
- Fix Scheduler crash when executing task instances of missing DAG (#20349)
- Deferred tasks does not cancel when DAG is marked fail (#20649)
- Removed duplicated dag_run join in ``Dag.get_task_instances()`` (#20591)
- Avoid unintentional data loss when deleting DAGs (#20758)
- Fix session usage in ``/rendered-k8s`` view (#21006)
- Fix ``airflow dags backfill --reset-dagruns`` errors when run twice (#21062)
- Do not set ``TaskInstance.max_tries`` in ``refresh_from_task`` (#21018)
- Don't require dag_id in body in dagrun REST API endpoint (#21024)
- Add Roles from Azure OAUTH Response in internal Security Manager (#20707)
- Allow Viewing DagRuns and TIs if a user has DAG "read" perms (#20663)
- Fix running ``airflow dags test <dag_id> <execution_dt>`` results in error when run twice (#21031)
- Switch to non-vendored latest connexion library (#20910)
- Bump flask-appbuilder to ``>=3.3.4`` (#20628)
- upgrade celery to ``5.2.3`` (#19703)
- Bump croniter from ``<1.1`` to ``<1.2`` (#20489)
- Lift off upper bound for MarkupSafe (#20113)
- Avoid calling ``DAG.following_schedule()`` for ``TaskInstance.get_template_context()`` (#20486)
- Fix(standalone): Remove hardcoded Webserver port (#20429)
- Remove unnecssary logging in experimental API (#20356)
- Un-ignore DeprecationWarning (#20322)
- Deepcopying Kubernetes Secrets attributes causing issues (#20318)
- Fix(dag-dependencies): fix arrow styling (#20303)
- Adds retry on taskinstance retrieval lock (#20030)
- Correctly send timing metrics when using dogstatsd (fix schedule_delay metric) (#19973)
- Enhance ``multiple_outputs`` inference of dict typing (#19608)
- Fixing ses email backend (#18042)
- Pin Markupsafe until we are able to upgrade Flask/Jinja (#21664)
## Doc only changes
- Added explaining concept of logical date in DAG run docs (#21433)
- Add note about Variable precedence with env vars (#21568)
- Update error docs to include before_send option (#21275)
- Augment xcom docs (#20755)
- Add documentation and release policy on "latest" constraints (#21093)
- Add a link to the DAG model in the Python API reference (#21060)
- Added an enum param example (#20841)
- Compare taskgroup and subdag (#20700)
- Add note about reserved ``params`` keyword (#20640)
- Improve documentation on ``Params`` (#20567)
- Fix typo in MySQL Database creation code (Set up DB docs) (#20102)
- Add requirements.txt description (#20048)
- Clean up ``default_args`` usage in docs (#19803)
- Add docker-compose explanation to conn localhost (#19076)
- Update CSV ingest code for tutorial (#18960)
- Adds Pendulum 1.x -> 2.x upgrade documentation (#18955)
- Updating explicit arg example in TaskFlow API tutorial doc (#18907)
- Adds back documentation about context usage in Python/`@task` (#18868)
- Clean up dynamic `start_date` values from docs (#19607)
- Docs for multiple pool slots (#20257)
- Update upgrading.rst with detailed code example of how to resolve post-upgrade warning (#19993)
## Misc
- Deprecate some functions in the experimental API (#19931)
- Deprecate smart sensors (#20151)