This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-1-test by this push:
new dabb34bd725 Bump Airflow to 3.1.1 and Task SDK to 1.1.1
dabb34bd725 is described below
commit dabb34bd7254b2616a04608f9b04a1657907d69b
Author: Kaxil Naik <[email protected]>
AuthorDate: Fri Sep 26 01:08:48 2025 +0100
Bump Airflow to 3.1.1 and Task SDK to 1.1.1
---
README.md | 2 +-
airflow-core/docs/installation/supported-versions.rst | 2 +-
airflow-core/docs/start.rst | 2 +-
airflow-core/pyproject.toml | 4 ++--
airflow-core/src/airflow/__init__.py | 2 +-
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 +++---
scripts/ci/prek/supported_versions.py | 2 +-
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
22 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
index 1d9e08a763e..1ac9db8ed0d 100644
--- a/README.md
+++ b/README.md
@@ -299,7 +299,7 @@ Apache Airflow version life cycle:
| Version | Current Patch/Minor | State | First Release | Limited
Maintenance | EOL/Terminated |
|-----------|-----------------------|-----------|-----------------|-----------------------|------------------|
-| 3 | 3.0.6 | Supported | Apr 22, 2025 | TBD
| TBD |
+| 3 | 3.1.1 | Supported | Apr 22, 2025 | TBD
| TBD |
| 2 | 2.11.0 | Supported | Dec 17, 2020 | Oct 22,
2025 | Apr 22, 2026 |
| 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 |
diff --git a/airflow-core/docs/installation/supported-versions.rst
b/airflow-core/docs/installation/supported-versions.rst
index 8193b1d6223..34a04d5c7a2 100644
--- a/airflow-core/docs/installation/supported-versions.rst
+++ b/airflow-core/docs/installation/supported-versions.rst
@@ -29,7 +29,7 @@ Apache Airflow® version life cycle:
========= ===================== ========= ===============
===================== ================
Version Current Patch/Minor State First Release Limited
Maintenance EOL/Terminated
========= ===================== ========= ===============
===================== ================
-3 3.0.6 Supported Apr 22, 2025 TBD
TBD
+3 3.1.1 Supported Apr 22, 2025 TBD
TBD
2 2.11.0 Supported Dec 17, 2020 Oct 22, 2025
Apr 22, 2026
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
diff --git a/airflow-core/docs/start.rst b/airflow-core/docs/start.rst
index 3ad574bdeef..2f934118e25 100644
--- a/airflow-core/docs/start.rst
+++ b/airflow-core/docs/start.rst
@@ -68,7 +68,7 @@ This quick start guide will help you bootstrap an Airflow
standalone instance on
:substitutions:
- AIRFLOW_VERSION=3.0.3
+ AIRFLOW_VERSION=3.1.1
# Extract the version of Python you have installed. If you're currently
using a Python version that is not supported by Airflow, you may want to set
this manually.
# See above for supported versions.
diff --git a/airflow-core/pyproject.toml b/airflow-core/pyproject.toml
index 2afad9b636d..469917111e4 100644
--- a/airflow-core/pyproject.toml
+++ b/airflow-core/pyproject.toml
@@ -63,7 +63,7 @@ classifiers = [
]
# Version is defined in src/airflow/__init__.py and it is automatically
synchronized by prek hook
-version = "3.1.0"
+version = "3.1.1"
dependencies = [
"a2wsgi>=1.10.8",
@@ -138,7 +138,7 @@ dependencies = [
# Does not work with it Tracked in
https://github.com/fsspec/universal_pathlib/issues/276
"universal-pathlib>=0.2.2,!=0.2.4",
"uuid6>=2024.7.10",
- "apache-airflow-task-sdk<1.2.0,>=1.1.0",
+ "apache-airflow-task-sdk<1.2.0,>=1.1.1",
# pre-installed providers
"apache-airflow-providers-common-compat>=1.6.0",
"apache-airflow-providers-common-io>=1.5.3",
diff --git a/airflow-core/src/airflow/__init__.py
b/airflow-core/src/airflow/__init__.py
index 5c2d08b41c9..d4ca8ab685e 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.1.0"
+__version__ = "3.1.1"
import os
diff --git a/docker-stack-docs/README.md b/docker-stack-docs/README.md
index 137072ac309..d0f1b71ad4c 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.1.0`):
+You can find the following images there (Assuming Airflow version `3.1.1`):
* `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.1.0` - the versioned Airflow image with default Python
version (3.12 currently)
-* `apache/airflow:3.1.0-pythonX.Y` - the versioned Airflow image with specific
Python version
+* `apache/airflow:3.1.1` - the versioned Airflow image with default Python
version (3.12 currently)
+* `apache/airflow:3.1.1-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.1.0` - the versioned Airflow image with
default Python version (3.12 currently)
-* `apache/airflow:slim-3.1.0-pythonX.Y` - the versioned Airflow image with
specific Python version
+* `apache/airflow:slim-3.1.1` - the versioned Airflow image with
default Python version (3.12 currently)
+* `apache/airflow:slim-3.1.1-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 3bb2585a64b..9c1a10ae8ce 100644
---
a/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 4b669eefa04..623b87ee795 100644
--- a/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 c6bb4830242..3f36b112507 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
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 0c119156a89..84947574c79 100644
--- a/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 4c0f44f7dbb..4f635850172 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
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 253b952d832..aad3e01c02a 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
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
# The `uv` tools is Rust packaging tool that is much faster than `pip` and
other installer
# 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 d4f913637eb..f0c33039072 100644
--- a/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 f26ec60854d..02074035f09 100644
---
a/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
+++
b/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 f5cf3594938..8be9acfc290 100644
--- a/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 bbeb5795ecb..08aaa6c4702 100644
--- a/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
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 f362d4dfbcf..e9021ef087c 100644
--- a/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
+++ b/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.1.0
+FROM apache/airflow:3.1.1
RUN umask 0002; \
mkdir -p ~/writeable-directory
# [END Dockerfile]
diff --git a/docker-stack-docs/entrypoint.rst b/docker-stack-docs/entrypoint.rst
index a1d6e894cde..329a3a35085 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.1.0-python3.10 bash -c "ls -la"
+ docker run -it apache/airflow:3.1.1-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.1.0-python3.10 python -c "print('test')"
+ > docker run -it apache/airflow:3.1.1-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.1.0-python3.10 airflow webserver
+ docker run -it apache/airflow:3.1.1-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.1.0-python3.10 help
+ > docker run -it apache/airflow:3.1.1-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.1.0-python3.10 webserver
+ apache/airflow:3.1.1-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.1.0-python3.10 webserver
+ apache/airflow:3.1.1-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.1.0-python3.10 webserver
+ apache/airflow:3.1.1-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 81a2215c350..efa0bb3c24b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -64,11 +64,11 @@ classifiers = [
]
# Version is defined in src/airflow/__init__.py and it is automatically
synchronized by prek
-version = "3.1.0"
+version = "3.1.1"
dependencies = [
- "apache-airflow-task-sdk>=1.1.0",
- "apache-airflow-core==3.1.0",
+ "apache-airflow-task-sdk>=1.1.1",
+ "apache-airflow-core==3.1.1",
"natsort>=8.4.0",
]
diff --git a/scripts/ci/prek/supported_versions.py
b/scripts/ci/prek/supported_versions.py
index 0a331b1b81f..d7188ee7271 100755
--- a/scripts/ci/prek/supported_versions.py
+++ b/scripts/ci/prek/supported_versions.py
@@ -41,7 +41,7 @@ HEADERS = (
)
SUPPORTED_VERSIONS = (
- ("3", "3.0.6", "Supported", "Apr 22, 2025", "TBD", "TBD"),
+ ("3", "3.1.1", "Supported", "Apr 22, 2025", "TBD", "TBD"),
("2", "2.11.0", "Supported", "Dec 17, 2020", "Oct 22, 2025", "Apr 22,
2026"),
("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"),
diff --git a/task-sdk/pyproject.toml b/task-sdk/pyproject.toml
index e097179876a..4fae8f8a167 100644
--- a/task-sdk/pyproject.toml
+++ b/task-sdk/pyproject.toml
@@ -49,7 +49,7 @@ classifiers = [
"Topic :: System :: Monitoring",
]
dependencies = [
- "apache-airflow-core<3.2.0,>=3.1.0",
+ "apache-airflow-core<3.2.0,>=3.1.1",
"asgiref>=2.3.0",
"attrs>=24.2.0, !=25.2.0",
"fsspec>=2023.10.0",
diff --git a/task-sdk/src/airflow/sdk/__init__.py
b/task-sdk/src/airflow/sdk/__init__.py
index 54d7a5f50aa..fcb4dfb9239 100644
--- a/task-sdk/src/airflow/sdk/__init__.py
+++ b/task-sdk/src/airflow/sdk/__init__.py
@@ -60,7 +60,7 @@ __all__ = [
"teardown",
]
-__version__ = "1.1.0"
+__version__ = "1.1.1"
if TYPE_CHECKING:
from airflow.sdk.api.datamodels._generated import DagRunState,
TaskInstanceState, TriggerRule, WeightRule