Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
0
Release date:
June 6, 2025
Previous version:
3.0.2rc2
(released June 6, 2025)
Magnitude:
0
Diff Delta
Contributors:
0 total committers
Commits:
0 Commits in this Release
Could not find any commits associated with this release.
Browse Other Releases
Latest Pending
Unreleased π
3.0.2
Released June 6, 2025
0 Ξ
3.0.2rc2
Released June 6, 2025
79 Ξ
3.0.2rc1
Released June 3, 2025
7,637 Ξ
3.0.1
Released May 6, 2025
0 Ξ
3.0.1rc1
Released May 6, 2025
5,183 Ξ
3.0.0
Released April 19, 2025
0 Ξ
3.0.0rc4
Released April 19, 2025
591 Ξ
3.0.0rc3
Released April 16, 2025
11,190 Ξ
3.0.0rc2
Released April 16, 2025
22,859 Ξ
3.0.0rc1
Released April 16, 2025
29,092 Ξ
Top Contributors in 3.0.2
Could not determine top contributors for this release.
Directory Browser for 3.0.2
We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.
Release Notes Published
What's Changed
π¦ PyPI: https://pypi.org/project/apache-airflow/3.0.2/ π Docs: https://airflow.apache.org/docs/apache-airflow/3.0.2/ π οΈ Release Notes: https://airflow.apache.org/docs/apache-airflow/3.0.2/release_notes.html πͺΆ Sources: https://airflow.apache.org/docs/apache-airflow/3.0.2/installation/installing-from-sources.html
Bug Fixes
- Fix memory leak in dag-processor (#50558)
- Add back invalid inlet and outlet check before running tasks (#50773)
- Implement slice on LazyXComSequence to allow filtering items from a mapped task(#50117)
- Fix execution API server URL handling for relative paths in KE (#51183)
- Add log lookup exception for Empty operator subtypes (#50325)
- Increase the max zoom on the graph view to make it easier to see small dags on big monitor screens (#50772)
- Fix timezone selection and dashboard layout (#50463)
- Creating backfill for a dag is affecting other dags (#50577)
- Fix next asset schedule and dag card UX (#50271)
- Add bundle path to
sys.path
in task runner (#51318) - Add bundle path to
sys.path
in dag processor (#50385) - Prevent CPU spike in task supervisor when heartbeat timeout exceeded (#51023)
- Fix Airflow Connection Form widget error (#51168)
- Add backwards compatibility shim and deprecation warning for EmailOperator (#51004)
- Handle
SIGSEGV
signals during DAG file imports (#51171) - Fix deferred task resumption in
dag.test()
(#51182) - Fix get dags query to not have join explosion (#50984)
- Ensure Logical date is populated correctly in Context vars (#50898)
- Mask variable values in task logs only if the variable key is sensitive (#50775)
- Mask secrets when retrieving variables from secrets backend (#50895)
- Deserialize should work while retrieving variables with secrets backend (#50889)
- Fix XCom deserialization for mapped tasks with custom backend (#50687)
- Support macros defined via plugins in Airflow 3 (#50642)
- Fix Pydantic
ForwardRef
error by reordering discriminated union definitions (#50688) - Adding backwards compatibility shim for
BaseNotifier
(#50340) - Use latest bundle version when clearing / re-running dag (#50040)
- Handle
upstream_mapped_index
when xcom access is needed (#50641) - Remove unnecessary breaking flag in config command (#50781)
- Do not flood worker logs with secrets backend loading logs (#50581)
- Persist table sorting preferences across sessions using local storage (#50720)
- Fixed patch_task_instance API endpoint to support task instance summaries and task groups (#50550)
- Fixed bulk API schemas to improve OpenAPI compatibility and client generation (#50852)
- Fixed variable API endpoints to support keys containing slashes (#50841)
- Restored backward compatibility for the
/run
API endpoint for older Task SDK clients - Fixed dropdown overflow and error text styling in
FlexibleForm
component (#50845) - Corrected DAG tag rendering to display
+1 more
when tags exceed the display limit by one (#50669) - Fix permission check on the ui config endpoint (#50608)
- Fix
default_args
handling in operator.partial()
to preventTypeError
when unused keys are present (#50525) - DAG Processor: Fix index to sort by last parsing duration (#50388)
- UI: Fix border overlap issue in the Events page (#50453)
- Fix
airflow tasks clear
command (#49631) - Restored support for
--local
flag indag list
anddag list-import-errors
CLI commands (#49380) - CLI: Exclude example dags when a bundle is passed (#50401)
- Fix CLI export to handle stdout without file descriptors (#50328)
- Fix
DagProcessor
stats log to show the correct parse duration (#50316) - Fix OpenAPI schema for
get_log
API (#50547) - Remove
logical_date
check when validating inlets and outlets (#51464) - Guard
ti
update state and set task to fail if exception encountered (#51295)
Miscellaneous
- UI: Implement navigation on bar click (#50416)
- UI: Always Show Trends count in Dag Overview (#50183)
- UI: Add basic json check to variable value
- Remove filtering by last dag run state in patch dags endpoint (#51347)
- Ensure that both public and ui dags endpoints map to DagService (#51226)
- Refresh Dag details page on new run (#51173)
- Log fallback to None when no XCom value is found (#51285)
- Move
example_dags
in standard provider toexample_dags
in sources (#51275) - Bring back "standard" example dags to the
airflow-core
package (#51192) - Faster note on grid endpoint (#51247)
- Port
task.test
to Task SDK (#50827) - Port
dag.test
to Task SDK (#50300,#50419) - Port
ti.run
to Task SDK execution path (#50141) - Support running
airflow dags test
from local files (#50420) - Move macros to task SDK
execution_time
module (#50940) - Add a link to the Airflow logo in Nav (#50304)
- UI: Bump minor and patch package json dependencies (#50298)
- Added a direct link to the latest DAG run in the DAG header (#51119,#51148)
- Fetch only the most recent
dagrun
value for list display (#50834) - Move
secret_key
config toapi
section (#50839) - Move various
webserver
configs tofab
provider (#50774,#50269,#50208,#50896) - Make
dag_run
nullable in Details page (#50719) - Rename Operation IDs for task instance endpoints to include map indexes (#49608)
- Update default sort for connections and dags (#50600)
- Raise exception if downgrade can't proceed due to no
ab_user
table (#50343) - Enable JSON serialization for variables created via the bulk API (#51057)
- Always display the backfill option in the UI; enable it only for DAGs with a defined schedule (#50969)
- Optimized DAG header to fetch only the most recent DAG run for improved performance (#50767)
- Add
owner_links
field toDAGDetailsResponse
for enhanced owner metadata in the API (#50557) - UI: Move map index column to be in line with other columns when viewing a summary mapped tasks (#50302)
- Separate configurations for colorized and json logs in Task SDK / Celery Executor (#51082)
- Enhanced task log viewer with virtualized rendering for improved performance on large logs (#50746)
Doc Only Changes
- Add dates for Limited Maintenance & EOL for Airflow 2.x (#50794)
- Add Apache Airflow setup instructions for Apple Silicon (#50179)
- Update recommendation for upgrade path to airflow 3 (#50318)
- Add "disappearing DAGs" section on FAQ doc (#49987)
- Update Airflow 3 migration guide with step about custom operators (#50871) (#50948)
- Use
AssetAlias
for alias in AssetMetadata
example (#50768) - Do not use outdated
schedule_interval
in tutorial dags (#50947) - Add Airflow Version in Page Title (#50358)
- Fix callbacks docs (#50377)
- Updating operator extra links doc (#50197)
- Prune old Airflow versions from release notes (#50860)
- Fix types in config templates reference (#50792)
- Fix wrong import for
PythonOperator
in tutorial dag (#50962) - Better structure of extras documentation (#50495)
Full Changelog: https://github.com/apache/airflow/compare/3.0.1...3.0.2