This is an automated email from the ASF dual-hosted git repository.
kaxilnaik 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 6957d9da579 upgrade the airflow-core version to 3.3.0 and task-sdk
version to 1.3.0 (#65317)
6957d9da579 is described below
commit 6957d9da57920f1b7b5232d85fc5cb7172a565d7
Author: Christos Bisias <[email protected]>
AuthorDate: Wed Apr 15 21:14:25 2026 +0300
upgrade the airflow-core version to 3.3.0 and task-sdk version to 1.3.0
(#65317)
---
airflow-core/pyproject.toml | 4 ++--
airflow-core/src/airflow/__init__.py | 2 +-
dev/README_RELEASE_AIRFLOW.md | 3 ++-
docker-stack-docs/README.md | 10 +++++-----
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../docker-examples/extending/add-apt-packages/Dockerfile | 2 +-
.../extending/add-build-essential-extend/Dockerfile | 2 +-
.../docker-examples/extending/add-providers/Dockerfile | 2 +-
.../extending/add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../docker-examples/extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../docker-examples/extending/custom-providers/Dockerfile | 2 +-
.../docker-examples/extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docker-stack-docs/entrypoint.rst | 14 +++++++-------
pyproject.toml | 6 +++---
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
19 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/airflow-core/pyproject.toml b/airflow-core/pyproject.toml
index bdb4934cced..debe6e1e79c 100644
--- a/airflow-core/pyproject.toml
+++ b/airflow-core/pyproject.toml
@@ -64,7 +64,7 @@ classifiers = [
]
# Version is defined in src/airflow/__init__.py and it is automatically
synchronized by prek hook
-version = "3.2.0"
+version = "3.3.0"
dependencies = [
"a2wsgi>=1.10.8",
@@ -148,7 +148,7 @@ dependencies = [
"typing-extensions>=4.14.1",
"universal-pathlib>=0.3.8",
"uuid6>=2024.7.10",
- "apache-airflow-task-sdk<1.3.0,>=1.2.0",
+ "apache-airflow-task-sdk<1.4.0,>=1.3.0",
# pre-installed providers
"apache-airflow-providers-common-compat>=1.7.4",
"apache-airflow-providers-common-io>=1.6.3",
diff --git a/airflow-core/src/airflow/__init__.py
b/airflow-core/src/airflow/__init__.py
index 177cdbd15ee..c1f3320a487 100644
--- a/airflow-core/src/airflow/__init__.py
+++ b/airflow-core/src/airflow/__init__.py
@@ -25,7 +25,7 @@
# lib.) This is required by some IDEs to resolve the import paths.
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
-__version__ = "3.2.0"
+__version__ = "3.3.0"
import os
diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md
index 685523282d5..0230ece5f21 100644
--- a/dev/README_RELEASE_AIRFLOW.md
+++ b/dev/README_RELEASE_AIRFLOW.md
@@ -1534,7 +1534,8 @@ If you don't have access to the account ask a PMC member
to post.
This includes:
- Modify `./scripts/ci/prek/supported_versions.py` and let prek do the job.
-- For major/minor release, update version in `airflow/__init__.py` and
`docs/docker-stack/` to the next likely minor version release.
+- For major/minor release, update version in `airflow/__init__.py` and
`docker-stack-docs/` to the next likely major version release.
+ - New version should be, current major release + 1.0
- Sync `RELEASE_NOTES.rst` (including deleting relevant `newsfragments`) and
`README.md` changes.
- Updating `Dockerfile` with the new version.
- Updating `1-airflow_bug_report.yml` issue template in
`.github/ISSUE_TEMPLATE/` with the new version.
diff --git a/docker-stack-docs/README.md b/docker-stack-docs/README.md
index 13dc10ad3e7..a27d016428f 100644
--- a/docker-stack-docs/README.md
+++ b/docker-stack-docs/README.md
@@ -31,12 +31,12 @@ Every time a new version of Airflow is released, the images
are prepared in the
[apache/airflow DockerHub](https://hub.docker.com/r/apache/airflow)
for all the supported Python versions.
-You can find the following images there (Assuming Airflow version `3.2.0`):
+You can find the following images there (Assuming Airflow version `3.3.0`):
* `apache/airflow:latest` - the latest released Airflow image with default
Python version (3.12 currently)
* `apache/airflow:latest-pythonX.Y` - the latest released Airflow image with
specific Python version
-* `apache/airflow:3.2.0` - the versioned Airflow image with default Python
version (3.12 currently)
-* `apache/airflow:3.2.0-pythonX.Y` - the versioned Airflow image with specific
Python version
+* `apache/airflow:3.3.0` - the versioned Airflow image with default Python
version (3.12 currently)
+* `apache/airflow:3.3.0-pythonX.Y` - the versioned Airflow image with specific
Python version
Those are "reference" regular images. They contain the most common set of
extras, dependencies and providers that are
often used by the users and they are good to "try-things-out" when you want to
just take Airflow for a spin,
@@ -47,8 +47,8 @@ via [Building the
image](https://airflow.apache.org/docs/docker-stack/build.html
* `apache/airflow:slim-latest` - the latest released Airflow
image with default Python version (3.12 currently)
* `apache/airflow:slim-latest-pythonX.Y` - the latest released Airflow
image with specific Python version
-* `apache/airflow:slim-3.2.0` - the versioned Airflow image with
default Python version (3.12 currently)
-* `apache/airflow:slim-3.2.0-pythonX.Y` - the versioned Airflow image with
specific Python version
+* `apache/airflow:slim-3.3.0` - the versioned Airflow image with
default Python version (3.12 currently)
+* `apache/airflow:slim-3.3.0-pythonX.Y` - the versioned Airflow image with
specific Python version
The Apache Airflow image provided as convenience package is optimized for
size, and
it provides just a bare minimal set of the extras and dependencies installed
and in most cases
diff --git
a/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
index 3afbfe69daa..f778af5ebde 100644
---
a/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
ENV AIRFLOW__CORE__LOAD_EXAMPLES=True
ENV AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=my_conn_string
# [END Dockerfile]
diff --git
a/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
index d7c35f4cf9a..9676403f4e8 100644
--- a/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
index c2980444022..157fcb821bd 100644
---
a/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
index 5fc6156bba6..ba2e1eae4b6 100644
--- a/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git
a/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
index b47f3af82a4..509d83d50ab 100644
---
a/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
@@ -17,6 +17,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" lxml
--constraint "${HOME}/constraints.txt"
# [END Dockerfile]
diff --git
a/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
index c2ef0a85ec8..e96a9a1ebe8 100644
---
a/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
# The `uv` tools is Rust packaging tool that is much faster than `pip` and
other installers
# Support for uv as installation tool is experimental
diff --git
a/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
index f28e53691c6..e9dfb588b68 100644
--- a/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
@@ -17,6 +17,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" lxml
# [END Dockerfile]
diff --git
a/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
b/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
index 244a7a55b38..edf33a19ea3 100644
---
a/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
COPY requirements.txt /
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" -r
/requirements.txt
# [END Dockerfile]
diff --git
a/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
b/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
index 4bd8b1f4d44..880c31eaea6 100644
--- a/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
@@ -17,6 +17,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
RUN pip install "apache-airflow==${AIRFLOW_VERSION}" --no-cache-dir
apache-airflow-providers-docker==2.5.1
# [END Dockerfile]
diff --git
a/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
b/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
index eda6f73a497..578c71f863c 100644
--- a/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
COPY --chown=airflow:root test_dag.py /opt/airflow/dags
diff --git
a/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
b/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
index 525e78d2dfb..9573b2720af 100644
--- a/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
@@ -17,7 +17,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.2.0
+FROM apache/airflow:3.3.0
RUN umask 0002; \
mkdir -p ~/writeable-directory
# [END Dockerfile]
diff --git a/docker-stack-docs/entrypoint.rst b/docker-stack-docs/entrypoint.rst
index b77669dea12..9835b154083 100644
--- a/docker-stack-docs/entrypoint.rst
+++ b/docker-stack-docs/entrypoint.rst
@@ -132,7 +132,7 @@ if you specify extra arguments. For example:
.. code-block:: bash
- docker run -it apache/airflow:3.2.0-python3.10 bash -c "ls -la"
+ docker run -it apache/airflow:3.3.0-python3.10 bash -c "ls -la"
total 16
drwxr-xr-x 4 airflow root 4096 Jun 5 18:12 .
drwxr-xr-x 1 root root 4096 Jun 5 18:12 ..
@@ -144,7 +144,7 @@ you pass extra parameters. For example:
.. code-block:: bash
- > docker run -it apache/airflow:3.2.0-python3.10 python -c "print('test')"
+ > docker run -it apache/airflow:3.3.0-python3.10 python -c "print('test')"
test
If first argument equals to ``airflow`` - the rest of the arguments is treated
as an Airflow command
@@ -152,13 +152,13 @@ to execute. Example:
.. code-block:: bash
- docker run -it apache/airflow:3.2.0-python3.10 airflow webserver
+ docker run -it apache/airflow:3.3.0-python3.10 airflow webserver
If there are any other arguments - they are simply passed to the "airflow"
command
.. code-block:: bash
- > docker run -it apache/airflow:3.2.0-python3.10 help
+ > docker run -it apache/airflow:3.3.0-python3.10 help
usage: airflow [-h] GROUP_OR_COMMAND ...
Positional Arguments:
@@ -366,7 +366,7 @@ database and creating an ``admin/admin`` Admin user with
the following command:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD=admin" \
- apache/airflow:3.2.0-python3.10 webserver
+ apache/airflow:3.3.0-python3.10 webserver
.. code-block:: bash
@@ -375,7 +375,7 @@ database and creating an ``admin/admin`` Admin user with
the following command:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:3.2.0-python3.10 webserver
+ apache/airflow:3.3.0-python3.10 webserver
The commands above perform initialization of the SQLite database, create admin
user with admin password
and Admin role. They also forward local port ``8080`` to the webserver port
and finally start the webserver.
@@ -415,6 +415,6 @@ Example:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:3.2.0-python3.10 webserver
+ apache/airflow:3.3.0-python3.10 webserver
This method is only available starting from Docker image of Airflow 2.1.1 and
above.
diff --git a/pyproject.toml b/pyproject.toml
index 9107883e002..384934be09c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -56,11 +56,11 @@ classifiers = [
]
# Version is defined in src/airflow/__init__.py and it is automatically
synchronized by prek
-version = "3.2.0"
+version = "3.3.0"
dependencies = [
- "apache-airflow-task-sdk<1.3.0,>=1.2.0",
- "apache-airflow-core==3.2.0",
+ "apache-airflow-task-sdk<1.4.0,>=1.3.0",
+ "apache-airflow-core==3.3.0",
]
packages = []
diff --git a/task-sdk/pyproject.toml b/task-sdk/pyproject.toml
index df06f6118c7..230a3dba2d2 100644
--- a/task-sdk/pyproject.toml
+++ b/task-sdk/pyproject.toml
@@ -48,7 +48,7 @@ classifiers = [
"Topic :: System :: Monitoring",
]
dependencies = [
- "apache-airflow-core<3.3.0,>=3.2.0",
+ "apache-airflow-core<3.4.0,>=3.3.0",
"asgiref>=2.3.0; python_version < '3.14'",
"asgiref>=3.11.1; python_version >= '3.14'",
"attrs>=24.2.0, !=25.2.0",
diff --git a/task-sdk/src/airflow/sdk/__init__.py
b/task-sdk/src/airflow/sdk/__init__.py
index 8d10d6aba49..f9c65883086 100644
--- a/task-sdk/src/airflow/sdk/__init__.py
+++ b/task-sdk/src/airflow/sdk/__init__.py
@@ -94,7 +94,7 @@ __all__ = [
"teardown",
]
-__version__ = "1.2.0"
+__version__ = "1.3.0"
if TYPE_CHECKING:
from airflow.sdk.api.datamodels._generated import DagRunState,
TaskInstanceState, TriggerRule, WeightRule