Registry / workflow / apache-airflow-core

apache-airflow-core

JSON →
library3.3.1pypypi✓ verified 24d ago

Apache Airflow Core (part of the main `apache-airflow` distribution) provides the foundational components for the Apache Airflow platform, a powerful tool for programmatically authoring, scheduling, and monitoring data workflows. It includes the scheduler, API server, DAG file processor, and triggerer. Workflows, known as Directed Acyclic Graphs (DAGs), are defined as Python code, making them maintainable, versionable, and collaborative. Airflow follows semantic versioning, with minor releases typically every 2-3 months and patch releases as needed. Major versions, such as 3.x, introduce backwards-incompatible changes and are released on an irregular schedule. The current version of `apache-airflow` is 3.2.0.

pip install "apache-airflow[standard]==3.2.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.2.0/constraints-3.10.txt"
INSTALL
IMPORT
SIG · APACHE-AIRFLOW-COR
A
apache-airflow-core
workflowpythonv3.3.1
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v3.2.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
1/2 runs
1/2 runs
py 3.11
1/2 runs
1/2 runs
py 3.12
1/2 runs
1/2 runs
py 3.13
1/2 runs
1/2 runs
py 3.9
✕ build_error
✕ build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

DAG
from airflow import DAG
datetime
from datetime import datetime
BashOperator
from airflow.operators.bash import BashOperator
PythonOperator
from airflow.operators.python import PythonOperator

This quickstart defines a simple 'Hello World' DAG. To run it locally, first install Apache Airflow (see 'install' section). Then, initialize the database and start Airflow components using `airflow standalone`. Place this Python file in your configured `AIRFLOW_HOME/dags` directory, then access the Airflow UI at `localhost:8080`, log in (admin/admin by default for `standalone`), and unpause the `hello_world_dag`.

from airflow import DAG from airflow.operators.bash import BashOperator from datetime import datetime, timedelta with DAG( dag_id='hello_world_dag', start_date=datetime(2026, 1, 1), schedule_interval=timedelta(days=1), catchup=False, # Default in Airflow 3.x is False tags=['example'], ) as dag: start_task = BashOperator( task_id='start', bash_command='echo "Starting hello_world_dag"', ) hello_task = BashOperator( task_id='hello', bash_command='echo "Hello, Airflow!"', ) world_task = BashOperator( task_id='world', bash_command='echo "This is a simple DAG."', ) end_task = BashOperator( task_id='end', bash_command='echo "Finished hello_world_dag"', ) start_task >> hello_task >> world_task >> end_task
airflow --version
Debug
Known issues
breakingDirect database access from worker nodes and tasks has been removed in Airflow 3.x. Tasks and custom operators must now communicate through the REST API instead of direct database connections. Existing DAGs and custom operators that accessed the metadata database directly will require refactoring.
fix
Refactor DAGs and custom operators to use the Airflow REST API or the Task Execution API for runtime interactions (state transitions, heartbeats, XComs, resource fetching). Utilize the Airflow Python Client where appropriate.
affects: 3.x and greater
breakingSubDAGs have been removed in Airflow 3.x. They are replaced by `TaskGroups`, Assets, and Data Aware Scheduling.
fix
Migrate existing SubDAGs to use `TaskGroups` for grouping tasks, or explore Assets and Data Aware Scheduling for alternative architectural patterns.
affects: 3.x and greater
breakingThe `/api/v1` REST API has been replaced by the modern FastAPI-based `/api/v2`.
fix
Update any integrations or custom tools that interact with the Airflow REST API to use the `/api/v2` endpoints. Refer to the Airflow API v2 documentation.
affects: 3.x and greater
breakingThe `catchup_by_default` DAG parameter is now `False` by default in Airflow 3.x, changing the default behavior for DAGs scheduled to run for past intervals.
fix
Explicitly set `catchup=True` in your DAG definition if you intend for it to run for past missed schedules. Review existing DAGs to ensure the desired catchup behavior is maintained.
affects: 3.x and greater
deprecatedAirflow 2.x reaches its end-of-life in April 2026. Staying on Airflow 2.x after this date will introduce security risks as CVEs cannot be patched anymore due to old dependencies.
fix
Plan and execute an upgrade to Airflow 3.x. Utilize tools like Ruff with AIR rules (version 0.13.1 or later) to check DAG compatibility and automate parts of the migration.
affects: <3.0.0
gotchaPlain `pip install apache-airflow` might occasionally lead to an unusable installation due to dependency conflicts. Airflow keeps its dependencies open (in `pyproject.toml`) for user flexibility, but this requires careful management.
fix
Always use the official constraint files for reproducible Airflow installations. Example: `pip install "apache-airflow[EXTRAS]==AIRFLOW_VERSION" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-AIRFLOW_VERSION/constraints-PYTHON_VERSION.txt"`.
affects: All
Upgrade
Version history
3.3.1latest on PyPI · released Aug 12, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
57 hits · last 30 days
node
50
OpenAI (training)
1
Resources
apache-airflow-core — pip install apache-airflow-core · libregistry