I compared with 3.1.5rc1 of course.

On Fri, Dec 12, 2025 at 7:18 PM Jarek Potiuk <[email protected]> wrote:

> +1 (binding) - both TaskSdk and Airlfow-core:
>
> Checked:
> * reproducibility
> * signatures
> * checksums
>
> Good idea with diffing the content, I compared sources of 3.1.4rc2 and
> 3.1.5rc2. Result below. Since reproducibility checks also work - by
> transition, all other artifacts should be fine
> We should be good to go.
>
>
> diffoscope --exclude-directory-metadata yes apache_airflow-3.1.5-source
> apache_airflow-3.1.4-source'
>
> ```
> --- apache_airflow-3.1.5-source
> +++ apache_airflow-3.1.4-source
> │   --- apache_airflow-3.1.5-source/README.md
> ├── +++ apache_airflow-3.1.4-source/README.md
> │ @@ -95,15 +95,15 @@
> │  - **Flexible**: Airflow leverages the [**Jinja**](
> https://jinja.palletsprojects.com) templating engine, allowing rich
> customizations.
> │
> │  <!-- START Requirements, please keep comment here to allow auto update
> of PyPI readme.md -->
> │  ## Requirements
> │
> │  Apache Airflow is tested with:
> │
> │ -|            | Main version (dev)           | Stable version (3.1.5) |
> │ +|            | Main version (dev)           | Stable version (3.1.4) |
> │  |------------|------------------------------|------------------------|
> │  | Python     | 3.10, 3.11, 3.12, 3.13       | 3.10, 3.11, 3.12, 3.13 |
> │  | Platform   | AMD64/ARM64(\*)              | AMD64/ARM64(\*)        |
> │  | Kubernetes | 1.30, 1.31, 1.32, 1.33, 1.34 | 1.30, 1.31, 1.32, 1.33 |
> │  | PostgreSQL | 13, 14, 15, 16, 17           | 13, 14, 15, 16, 17     |
> │  | MySQL      | 8.0, 8.4, Innovation         | 8.0, 8.4, Innovation   |
> │  | SQLite     | 3.15.0+                      | 3.15.0+                |
> │ @@ -173,23 +173,23 @@
> │  newer versions of ``bazel`` will handle it.
> │
> │  If you wish to install Airflow using those tools, you should use the
> constraint files and convert
> │  them to the appropriate format and workflow that your tool requires.
> │
> │
> │  ```bash
> │ -pip install 'apache-airflow==3.1.5' \
> │ - --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.5/constraints-3.10.txt
> "
> │ +pip install 'apache-airflow==3.1.4' \
> │ + --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.4/constraints-3.10.txt
> "
> │  ```
> │
> │  2. Installing with extras (i.e., postgres, google)
> │
> │  ```bash
> │ -pip install 'apache-airflow[postgres,google]==3.1.5' \
> │ - --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.5/constraints-3.10.txt
> "
> │ +pip install 'apache-airflow[postgres,google]==3.1.4' \
> │ + --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.4/constraints-3.10.txt
> "
> │  ```
> │
> │  For information on installing provider distributions, check
> │  [providers](
> http://airflow.apache.org/docs/apache-airflow-providers/index.html).
> │
> │  <!-- END Installing from PyPI, please keep comment here to allow auto
> update of PyPI readme.md -->
> │
> │ @@ -295,15 +295,15 @@
> │  Apache Airflow version life cycle:
> │
> │  <!-- This table is automatically updated by prek
> scripts/ci/prek/supported_versions.py -->
> │  <!-- Beginning of auto-generated table -->
> │
> │  | Version   | Current Patch/Minor   | State     | First Release   |
> Limited Maintenance   | EOL/Terminated   |
> │
>  
> |-----------|-----------------------|-----------|-----------------|-----------------------|------------------|
> │ -| 3         | 3.1.5                 | Supported | Apr 22, 2025    | TBD
>                   | TBD              |
> │ +| 3         | 3.1.4                 | 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     |
> │  | 1.8       | 1.8.2                 | EOL       | Mar 19, 2017    | Jan
> 03, 2018          | Jan 03, 2018     |
> │  | 1.7       | 1.7.1.2               | EOL       | Mar 28, 2016    | Mar
> 19, 2017          | Mar 19, 2017     |
> │
> │  <!-- End of auto-generated table -->
> │   --- apache_airflow-3.1.5-source/RELEASE_NOTES.rst
> ├── +++ apache_airflow-3.1.4-source/RELEASE_NOTES.rst
> │ @@ -20,15 +20,15 @@
> │     :depth: 1
> │
> │  .. note::
> │     Release notes for older versions can be found in the versioned
> documentation.
> │
> │  .. towncrier release notes start
> │
> │ -Airflow 3.1.5 (2025-12-12)
> │ +Airflow 3.1.4 (2025-12-10)
> │  --------------------------
> │
> │  Significant Changes
> │  ^^^^^^^^^^^^^^^^^^^
> │
> │  No significant changes.
> │   --- apache_airflow-3.1.5-source/airflow-core
> ├── +++ apache_airflow-3.1.4-source/airflow-core
> │ │   --- apache_airflow-3.1.5-source/airflow-core/docs
> │ ├── +++ apache_airflow-3.1.4-source/airflow-core/docs
> │ │ │   --- apache_airflow-3.1.5-source/airflow-core/docs/installation
> │ │ ├── +++ apache_airflow-3.1.4-source/airflow-core/docs/installation
> │ │ │ │   ---
> apache_airflow-3.1.5-source/airflow-core/docs/installation/supported-versions.rst
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/airflow-core/docs/installation/supported-versions.rst
> │ │ │ │ @@ -25,15 +25,15 @@
> │ │ │ │
> │ │ │ │   .. This table is automatically updated by prek hook
> scripts/ci/prek/supported_versions.py
> │ │ │ │   .. Beginning of auto-generated table
> │ │ │ │
> │ │ │ │  =========  =====================  =========  ===============
>  =====================  ================
> │ │ │ │  Version    Current Patch/Minor    State      First Release
>  Limited Maintenance    EOL/Terminated
> │ │ │ │  =========  =====================  =========  ===============
>  =====================  ================
> │ │ │ │ +3          3.1.4                  Supported  Apr 22, 2025     TBD
>                    TBD
> │ │ │ │ -3          3.1.5                  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
> │ │ │ │  1.8        1.8.2                  EOL        Mar 19, 2017     Jan
> 03, 2018           Jan 03, 2018
> │ │ │ │  1.7        1.7.1.2                EOL        Mar 28, 2016     Mar
> 19, 2017           Mar 19, 2017
> │ │ │ │  =========  =====================  =========  ===============
>  =====================  ================
> │ │   --- apache_airflow-3.1.5-source/airflow-core/pyproject.toml
> │ ├── +++ apache_airflow-3.1.4-source/airflow-core/pyproject.toml
> │ │ @@ -59,15 +59,15 @@
> │ │      "Programming Language :: Python :: 3.10",
> │ │      "Programming Language :: Python :: 3.11",
> │ │      "Programming Language :: Python :: 3.12",
> │ │      "Topic :: System :: Monitoring",
> │ │  ]
> │ │
> │ │  # Version is defined in src/airflow/__init__.py and it is
> automatically synchronized by prek hook
> │ │ +version = "3.1.4"
> │ │ -version = "3.1.5"
> │ │
> │ │  dependencies = [
> │ │      "a2wsgi>=1.10.8",
> │ │      "aiosqlite>=0.20.0",
> │ │      # Alembic is important to handle our migrations in predictable
> and performant way. It is developed
> │ │      # together with SQLAlchemy. Our experience with Alembic is that
> it very stable in minor version
> │ │      # The 1.13.0 of alembic marked some migration code as SQLAlchemy
> 2+ only so we limit it to 1.13.1
> │ │ @@ -135,15 +135,15 @@
> │ │      "tabulate>=0.9.0",
> │ │      "tenacity>=8.3.0",
> │ │      "termcolor>=3.0.0",
> │ │      "typing-extensions>=4.14.1",
> │ │      # https://github.com/apache/airflow/issues/56369 , rework
> universal-pathlib usage
> │ │      "universal-pathlib>=0.2.6,<0.3.0",
> │ │      "uuid6>=2024.7.10",
> │ │ +    "apache-airflow-task-sdk<1.2.0,==1.1.4",
> │ │ -    "apache-airflow-task-sdk<1.2.0,==1.1.5",
> │ │      # pre-installed providers
> │ │      "apache-airflow-providers-common-compat>=1.7.4",
> │ │      "apache-airflow-providers-common-io>=1.6.3",
> │ │      "apache-airflow-providers-common-sql>=1.28.1",
> │ │      "apache-airflow-providers-smtp>=2.3.1",
> │ │      "apache-airflow-providers-standard>=1.9.0",
> │ │      # Start of shared logging dependencies
> │ │   --- apache_airflow-3.1.5-source/airflow-core/src
> │ ├── +++ apache_airflow-3.1.4-source/airflow-core/src
> │ │ │   --- apache_airflow-3.1.5-source/airflow-core/src/airflow
> │ │ ├── +++ apache_airflow-3.1.4-source/airflow-core/src/airflow
> │ │ │ │   ---
> apache_airflow-3.1.5-source/airflow-core/src/airflow/__init__.py
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/airflow-core/src/airflow/__init__.py
> │ │ │ │ @@ -21,15 +21,15 @@
> │ │ │ │  # Adding it automatically is excluded in pyproject.toml via I002
> ruff rule exclusion
> │ │ │ │
> │ │ │ │  # Make `airflow` a namespace package, supporting installing
> │ │ │ │  # airflow.providers.* in different locations (i.e. one in site,
> and one in user
> │ │ │ │  # lib.)  This is required by some IDEs to resolve the import
> paths.
> │ │ │ │  __path__ = __import__("pkgutil").extend_path(__path__, __name__)
> │ │ │ │
> │ │ │ │ +__version__ = "3.1.4"
> │ │ │ │ -__version__ = "3.1.5"
> │ │ │ │
> │ │ │ │
> │ │ │ │  import os
> │ │ │ │  import sys
> │ │ │ │  import warnings
> │ │ │ │  from typing import TYPE_CHECKING
> │   --- apache_airflow-3.1.5-source/docker-stack-docs
> ├── +++ apache_airflow-3.1.4-source/docker-stack-docs
> │ │   --- apache_airflow-3.1.5-source/docker-stack-docs/README.md
> │ ├── +++ apache_airflow-3.1.4-source/docker-stack-docs/README.md
> │ │ @@ -27,32 +27,32 @@
> │ │  image.
> │ │
> │ │  The Apache Airflow community, releases Docker Images which are
> `reference images` for Apache Airflow.
> │ │  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.4`):
> │ │ -You can find the following images there (Assuming Airflow version
> `3.1.5`):
> │ │
> │ │  * `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.4` - the versioned Airflow image with default
> Python version (3.12 currently)
> │ │ +* `apache/airflow:3.1.4-pythonX.Y` - the versioned Airflow image with
> specific Python version
> │ │ -* `apache/airflow:3.1.5` - the versioned Airflow image with default
> Python version (3.12 currently)
> │ │ -* `apache/airflow:3.1.5-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,
> │ │
> │ │  You can also use "slim" images that contain only core airflow and are
> about half the size of the "regular" images
> │ │  but you need to add all the [Reference for package extras](
> https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html)
> and providers that you need separately
> │ │  via [Building the image](
> https://airflow.apache.org/docs/docker-stack/build.html#build-build-image
> ).
> │ │
> │ │  * `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.4`           - the versioned Airflow image
> with default Python version (3.12 currently)
> │ │ +* `apache/airflow:slim-3.1.4-pythonX.Y` - the versioned Airflow image
> with specific Python version
> │ │ -* `apache/airflow:slim-3.1.5`           - the versioned Airflow image
> with default Python version (3.12 currently)
> │ │ -* `apache/airflow:slim-3.1.5-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
> │ │  you want to either extend or customize the image. You can see all
> possible extras in [Reference for package extras](
> https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html
> ).
> │ │  The set of extras used in Airflow Production image are available in
> the
> │ │  [Dockerfile](
> https://github.com/apache/airflow/blob/2c6c7fdb2308de98e142618836bdf414df9768c8/Dockerfile#L37
> ).
> │ │   --- apache_airflow-3.1.5-source/docker-stack-docs/docker-examples
> │ ├── +++ apache_airflow-3.1.4-source/docker-stack-docs/docker-examples
> │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending
> │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-airflow-configuration
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-airflow-configuration
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-airflow-configuration/Dockerfile
> │ │ │ │ │ @@ -11,11 +11,11 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  ENV AIRFLOW__CORE__LOAD_EXAMPLES=True
> │ │ │ │ │  ENV AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=my_conn_string
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-apt-packages
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-apt-packages
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-apt-packages/Dockerfile
> │ │ │ │ │ @@ -11,15 +11,15 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  USER root
> │ │ │ │ │  RUN apt-get update \
> │ │ │ │ │    && apt-get install -y --no-install-recommends \
> │ │ │ │ │           vim \
> │ │ │ │ │    && apt-get autoremove -yqq --purge \
> │ │ │ │ │    && apt-get clean \
> │ │ │ │ │    && rm -rf /var/lib/apt/lists/*
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-build-essential-extend
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-build-essential-extend
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-build-essential-extend/Dockerfile
> │ │ │ │ │ @@ -11,15 +11,15 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  USER root
> │ │ │ │ │  RUN apt-get update \
> │ │ │ │ │    && apt-get install -y --no-install-recommends \
> │ │ │ │ │           build-essential libopenmpi-dev \
> │ │ │ │ │    && apt-get autoremove -yqq --purge \
> │ │ │ │ │    && apt-get clean \
> │ │ │ │ │    && rm -rf /var/lib/apt/lists/*
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-providers
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-providers
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-providers/Dockerfile
> │ │ │ │ │ @@ -11,15 +11,15 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  USER root
> │ │ │ │ │  RUN apt-get update \
> │ │ │ │ │    && apt-get install -y --no-install-recommends \
> │ │ │ │ │           openjdk-17-jre-headless \
> │ │ │ │ │    && apt-get autoremove -yqq --purge \
> │ │ │ │ │    && apt-get clean \
> │ │ │ │ │    && rm -rf /var/lib/apt/lists/*
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages/Dockerfile
> │ │ │ │ │ @@ -11,10 +11,10 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  RUN pip install --no-cache-dir
> "apache-airflow==${AIRFLOW_VERSION}" lxml
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
> │ │ │ │ │ @@ -11,10 +11,10 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  RUN pip install --no-cache-dir
> "apache-airflow==${AIRFLOW_VERSION}" lxml --constraint
> "${HOME}/constraints.txt"
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-pypi-packages-uv/Dockerfile
> │ │ │ │ │ @@ -11,14 +11,14 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │
> │ │ │ │ │  # The `uv` tools is Rust packaging tool that is much faster
> than `pip` and other installer
> │ │ │ │ │  # Support for uv as installation tool is experimental
> │ │ │ │ │
> │ │ │ │ │  RUN uv pip install --no-cache
> "apache-airflow==${AIRFLOW_VERSION}" lxml
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-requirement-packages
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-requirement-packages
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/add-requirement-packages/Dockerfile
> │ │ │ │ │ @@ -11,11 +11,11 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  COPY requirements.txt /
> │ │ │ │ │  RUN pip install --no-cache-dir
> "apache-airflow==${AIRFLOW_VERSION}" -r /requirements.txt
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/custom-providers
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/custom-providers
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/custom-providers/Dockerfile
> │ │ │ │ │ @@ -11,10 +11,10 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  RUN pip install "apache-airflow==${AIRFLOW_VERSION}"
> --no-cache-dir apache-airflow-providers-docker==2.5.1
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/embedding-dags
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/embedding-dags
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/embedding-dags/Dockerfile
> │ │ │ │ │ @@ -11,12 +11,12 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │
> │ │ │ │ │  COPY --chown=airflow:root test_dag.py /opt/airflow/dags
> │ │ │ │ │
> │ │ │ │ │  # [END Dockerfile]
> │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/writable-directory
> │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/writable-directory
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/docker-stack-docs/docker-examples/extending/writable-directory/Dockerfile
> │ │ │ │ │ @@ -11,11 +11,11 @@
> │ │ │ │ │  # distributed under the License is distributed on an "AS IS"
> BASIS,
> │ │ │ │ │  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
> or implied.
> │ │ │ │ │  # See the License for the specific language governing
> permissions and
> │ │ │ │ │  # limitations under the License.
> │ │ │ │ │
> │ │ │ │ │  # This is an example Dockerfile. It is not intended for
> PRODUCTION use
> │ │ │ │ │  # [START Dockerfile]
> │ │ │ │ │ -FROM apache/airflow:3.1.5
> │ │ │ │ │ +FROM apache/airflow:3.1.4
> │ │ │ │ │  RUN umask 0002; \
> │ │ │ │ │      mkdir -p ~/writeable-directory
> │ │ │ │ │  # [END Dockerfile]
> │ │   --- apache_airflow-3.1.5-source/docker-stack-docs/entrypoint.rst
> │ ├── +++ apache_airflow-3.1.4-source/docker-stack-docs/entrypoint.rst
> │ │ @@ -128,41 +128,41 @@
> │ │  ------------------
> │ │
> │ │  If first argument equals to "bash" - you are dropped to a bash shell
> or you can executes bash command
> │ │  if you specify extra arguments. For example:
> │ │
> │ │  .. code-block:: bash
> │ │
> │ │ +  docker run -it apache/airflow:3.1.4-python3.10 bash -c "ls -la"
> │ │ -  docker run -it apache/airflow:3.1.5-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 ..
> │ │    drwxr-xr-x 2 airflow root 4096 Jun  5 18:12 dags
> │ │    drwxr-xr-x 2 airflow root 4096 Jun  5 18:12 logs
> │ │
> │ │  If first argument is equal to ``python`` - you are dropped in python
> shell or python commands are executed if
> │ │  you pass extra parameters. For example:
> │ │
> │ │  .. code-block:: bash
> │ │
> │ │ +  > docker run -it apache/airflow:3.1.4-python3.10 python -c
> "print('test')"
> │ │ -  > docker run -it apache/airflow:3.1.5-python3.10 python -c
> "print('test')"
> │ │    test
> │ │
> │ │  If first argument equals to ``airflow`` - the rest of the arguments
> is treated as an Airflow command
> │ │  to execute. Example:
> │ │
> │ │  .. code-block:: bash
> │ │
> │ │ +   docker run -it apache/airflow:3.1.4-python3.10 airflow webserver
> │ │ -   docker run -it apache/airflow:3.1.5-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.4-python3.10 help
> │ │ -  > docker run -it apache/airflow:3.1.5-python3.10 help
> │ │      usage: airflow [-h] GROUP_OR_COMMAND ...
> │ │
> │ │      Positional Arguments:
> │ │        GROUP_OR_COMMAND
> │ │
> │ │          Groups
> │ │            assets            Manage assets
> │ │ @@ -362,24 +362,24 @@
> │ │
> │ │  .. code-block:: bash
> │ │
> │ │    docker run -it -p 8080:8080 \
> │ │      --env "_AIRFLOW_DB_MIGRATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_CREATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_PASSWORD=admin" \
> │ │ +      apache/airflow:3.1.4-python3.10 webserver
> │ │ -      apache/airflow:3.1.5-python3.10 webserver
> │ │
> │ │
> │ │  .. code-block:: bash
> │ │
> │ │    docker run -it -p 8080:8080 \
> │ │      --env "_AIRFLOW_DB_MIGRATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_CREATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
> │ │ +      apache/airflow:3.1.4-python3.10 webserver
> │ │ -      apache/airflow:3.1.5-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.
> │ │
> │ │  Installing additional requirements
> │ │  ..................................
> │ │
> │ │ @@ -411,10 +411,10 @@
> │ │  .. code-block:: bash
> │ │
> │ │    docker run -it -p 8080:8080 \
> │ │      --env "_PIP_ADDITIONAL_REQUIREMENTS=lxml==4.6.3
> charset-normalizer==1.4.1" \
> │ │      --env "_AIRFLOW_DB_MIGRATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_CREATE=true" \
> │ │      --env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
> │ │ +      apache/airflow:3.1.4-python3.10 webserver
> │ │ -      apache/airflow:3.1.5-python3.10 webserver
> │ │
> │ │  This method is only available starting from Docker image of Airflow
> 2.1.1 and above.
> │   --- apache_airflow-3.1.5-source/generated
> ├── +++ apache_airflow-3.1.4-source/generated
> │ │   --- apache_airflow-3.1.5-source/generated/PYPI_README.md
> │ ├── +++ apache_airflow-3.1.4-source/generated/PYPI_README.md
> │ │ @@ -52,15 +52,15 @@
> │ │
> │ │  Use Airflow to author workflows (Dags) that orchestrate tasks. The
> Airflow scheduler executes your tasks on an array of workers while
> following the specified dependencies. Rich command line utilities make
> performing complex surgeries on DAGs a snap. The rich user interface makes
> it easy to visualize pipelines running in production, monitor progress, and
> troubleshoot issues when needed.
> │ │
> │ │  ## Requirements
> │ │
> │ │  Apache Airflow is tested with:
> │ │
> │ │ +|            | Main version (dev)           | Stable version (3.1.4) |
> │ │ -|            | Main version (dev)           | Stable version (3.1.5) |
> │ │  |------------|------------------------------|------------------------|
> │ │  | Python     | 3.10, 3.11, 3.12, 3.13       | 3.10, 3.11, 3.12, 3.13 |
> │ │  | Platform   | AMD64/ARM64(\*)              | AMD64/ARM64(\*)        |
> │ │  | Kubernetes | 1.30, 1.31, 1.32, 1.33, 1.34 | 1.30, 1.31, 1.32, 1.33 |
> │ │  | PostgreSQL | 13, 14, 15, 16, 17           | 13, 14, 15, 16, 17     |
> │ │  | MySQL      | 8.0, 8.4, Innovation         | 8.0, 8.4, Innovation   |
> │ │  | SQLite     | 3.15.0+                      | 3.15.0+                |
> │ │ @@ -126,23 +126,23 @@
> │ │  newer versions of ``bazel`` will handle it.
> │ │
> │ │  If you wish to install Airflow using those tools, you should use the
> constraint files and convert
> │ │  them to the appropriate format and workflow that your tool requires.
> │ │
> │ │
> │ │  ```bash
> │ │ +pip install 'apache-airflow==3.1.4' \
> │ │ + --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.4/constraints-3.10.txt
> "
> │ │ -pip install 'apache-airflow==3.1.5' \
> │ │ - --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.5/constraints-3.10.txt
> "
> │ │  ```
> │ │
> │ │  2. Installing with extras (i.e., postgres, google)
> │ │
> │ │  ```bash
> │ │ +pip install 'apache-airflow[postgres,google]==3.1.4' \
> │ │ + --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.4/constraints-3.10.txt
> "
> │ │ -pip install 'apache-airflow[postgres,google]==3.1.5' \
> │ │ - --constraint "
> https://raw.githubusercontent.com/apache/airflow/constraints-3.1.5/constraints-3.10.txt
> "
> │ │  ```
> │ │
> │ │  For information on installing provider distributions, check
> │ │  [providers](
> http://airflow.apache.org/docs/apache-airflow-providers/index.html).
> │ │
> │ │  ## Official source code
> │   --- apache_airflow-3.1.5-source/pyproject.toml
> ├── +++ apache_airflow-3.1.4-source/pyproject.toml
> │ @@ -59,19 +59,19 @@
> │      "Programming Language :: Python :: 3.11",
> │      "Programming Language :: Python :: 3.12",
> │      "Programming Language :: Python :: 3.13",
> │      "Topic :: System :: Monitoring",
> │  ]
> │
> │  # Version is defined in src/airflow/__init__.py and it is automatically
> synchronized by prek
> │ -version = "3.1.5"
> │ +version = "3.1.4"
> │
> │  dependencies = [
> │ -    "apache-airflow-task-sdk==1.1.5",
> │ -    "apache-airflow-core==3.1.5",
> │ +    "apache-airflow-task-sdk==1.1.4",
> │ +    "apache-airflow-core==3.1.4",
> │  ]
> │
> │  packages = []
> │
> │  [project.optional-dependencies]
> │  # Automatically generated airflow optional dependencies
> (update_airflow_pyproject_toml.py)
> │  "all-core" = [
> │   --- apache_airflow-3.1.5-source/reproducible_build.yaml
> ├── +++ apache_airflow-3.1.4-source/reproducible_build.yaml
> │ @@ -1,2 +1,2 @@
> │ -release-notes-hash: 75deb73e4744a67f6467178fb99c93e6
> │ -source-date-epoch: 1765543510
> │ +release-notes-hash: 1cef4f069cb23b395098f97d070d8d0a
> │ +source-date-epoch: 1765212168
> │   --- apache_airflow-3.1.5-source/task-sdk
> ├── +++ apache_airflow-3.1.4-source/task-sdk
> │ │   --- apache_airflow-3.1.5-source/task-sdk/pyproject.toml
> │ ├── +++ apache_airflow-3.1.4-source/task-sdk/pyproject.toml
> │ │ @@ -45,15 +45,15 @@
> │ │      "Programming Language :: Python :: 3.10",
> │ │      "Programming Language :: Python :: 3.11",
> │ │      "Programming Language :: Python :: 3.12",
> │ │      "Programming Language :: Python :: 3.13",
> │ │      "Topic :: System :: Monitoring",
> │ │  ]
> │ │  dependencies = [
> │ │ +    "apache-airflow-core<3.2.0,>=3.1.3",
> │ │ -    "apache-airflow-core<3.2.0,>=3.1.5",
> │ │      "asgiref>=2.3.0",
> │ │      "attrs>=24.2.0, !=25.2.0",
> │ │      "babel>=2.17.0",
> │ │      "fsspec>=2023.10.0",
> │ │      "httpx>=0.27.0",
> │ │      "jinja2>=3.1.5",
> │ │      "methodtools>=0.4.7",
> │ │   --- apache_airflow-3.1.5-source/task-sdk/src
> │ ├── +++ apache_airflow-3.1.4-source/task-sdk/src
> │ │ │   --- apache_airflow-3.1.5-source/task-sdk/src/airflow
> │ │ ├── +++ apache_airflow-3.1.4-source/task-sdk/src/airflow
> │ │ │ │   --- apache_airflow-3.1.5-source/task-sdk/src/airflow/sdk
> │ │ │ ├── +++ apache_airflow-3.1.4-source/task-sdk/src/airflow/sdk
> │ │ │ │ │   ---
> apache_airflow-3.1.5-source/task-sdk/src/airflow/sdk/__init__.py
> │ │ │ │ ├── +++
> apache_airflow-3.1.4-source/task-sdk/src/airflow/sdk/__init__.py
> │ │ │ │ │ @@ -56,15 +56,15 @@
> │ │ │ │ │      "literal",
> │ │ │ │ │      "setup",
> │ │ │ │ │      "task",
> │ │ │ │ │      "task_group",
> │ │ │ │ │      "teardown",
> │ │ │ │ │  ]
> │ │ │ │ │
> │ │ │ │ │ -__version__ = "1.1.5"
> │ │ │ │ │ +__version__ = "1.1.4"
> │ │ │ │ │
> │ │ │ │ │  if TYPE_CHECKING:
> │ │ │ │ │      from airflow.sdk.api.datamodels._generated import
> DagRunState, TaskInstanceState, TriggerRule, WeightRule
> │ │ │ │ │      from airflow.sdk.bases.hook import BaseHook
> │ │ │ │ │      from airflow.sdk.bases.notifier import BaseNotifier
> │ │ │ │ │      from airflow.sdk.bases.operator import BaseOperator, chain,
> chain_linear, cross_downstream
> │ │ │ │ │      from airflow.sdk.bases.operatorlink import BaseOperatorLink
> ````
>
>
>
>
>
> On Fri, Dec 12, 2025 at 6:19 PM Ash Berlin-Taylor <[email protected]> wrote:
>
>> Confirmed only difference between 3.1.4rc2 and 3.1.5rc2 is the version
>> and related metadata files. (https://try.diffoscope.org/hquvbsdzzvca.html
>> https://try.diffoscope.org/skudyxtkexgs.html etc)
>>
>> Checked sigs.
>>
>> +1 (binding)
>>
>>
>> > On 12 Dec 2025, at 16:50, Ephraim Anierobi <[email protected]>
>> wrote:
>> >
>> > Hey fellow Airflowers,
>> >
>> > The release candidates for Apache Airflow 3.1.5rc1 and Task SDK 1.1.5rc1
>> > are now available for testing!
>> >
>> > This is an accelerated vote because 3.1.5rc1 is functionally identical
>> to
>> > 3.1.4rc2, differing only by version. 3.1.4rc1 was inadvertently
>> released as
>> > 3.1.4, which was yanked because of being published from the incorrect
>> RC.
>> > We are therefore expediting this vote to release 3.1.5 as soon as
>> possible.
>> >
>> > This email is calling for a vote on the release, which will last at
>> least 4
>> > hours, from Friday, December 12, 2025 at 5:00 pm UTC
>> > until Friday, December 12, 2025 at 9:00 pm UTC
>> > <
>> https://www.timeanddate.com/worldclock/fixedtime.html?msg=8&iso=20251212T2100&p1=1440
>> >,
>> > and until 3 binding +1 votes have been received.
>> >
>> > Status of testing of the release is kept in
>> > https://github.com/apache/airflow/issues/59033
>> >
>> > Consider this my +1 binding vote.
>> >
>> > Airflow 3.1.5rc1 is available at:
>> > https://dist.apache.org/repos/dist/dev/airflow/3.1.5rc1/
>> >
>> > "apache-airflow" Meta package:
>> > - *apache-airflow-3.1.5-source.tar.gz* is a source release that comes
>> with
>> > INSTALL instructions.
>> > - *apache-airflow-3.1.5.tar.gz* is the binary Python "sdist" release.
>> > - *apache_airflow-3.1.5-py3-none-any.whl* is the binary Python wheel
>> > "binary" release.
>> >
>> > "apache-airflow-core" package:
>> > - *apache_airflow_core-3.1.5.tar.gz* is the binary Python "sdist"
>> release.
>> > - *apache_airflow_core-3.1.5-py3-none-any.whl* is the binary Python
>> wheel
>> > "binary" release.
>> >
>> > Task SDK 1.1.5 is available at:
>> > https://dist.apache.org/repos/dist/dev/airflow/task-sdk/1.1.5rc1/
>> >
>> > "apache-airflow-task-sdk" package:
>> > - *apache_airflow_task_sdk-1.1.5.tar.gz* is the binary Python "sdist"
>> > release.
>> > - *apache_airflow_task_sdk-1.1.5-py3-none-any.whl* is the binary Python
>> > wheel "binary" release.
>> >
>> > Public keys are available at:
>> > https://dist.apache.org/repos/dist/release/airflow/KEYS
>> >
>> > Please vote accordingly:
>> >
>> > [ ] +1 approve
>> > [ ] +0 no opinion
>> > [ ] -1 disapprove with the reason
>> >
>> > Only votes from PMC members are binding, but all members of the
>> community
>> > are encouraged to test the release and vote with "(non-binding)".
>> >
>> > The test procedure for PMC members is described in:
>> >
>> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOW.md#verify-the-release-candidate-by-pmc-members
>> >
>> > The test procedure for contributors and members of the community who
>> would
>> > like to test this RC is described in:
>> >
>> https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOW.md#verify-the-release-candidate-by-contributors
>> >
>> > Please note that the version number excludes the 'rcX' string, so it's
>> now
>> > simply 3.1.5 for Airflow package and 1.1.5 for Task SDK. This will
>> allow us
>> > to rename the artifact without modifying
>> > the artifact checksums when we actually release.
>> >
>> > Docs (for preview):
>> > https://airflow.staged.apache.org/docs/apache-airflow/3.1.5
>> >
>> > Release Notes:
>> > - https://github.com/apache/airflow/blob/3.1.5rc1/RELEASE_NOTES.rst
>> > -
>> >
>> https://airflow.staged.apache.org/docs/apache-airflow/3.1.5/release_notes.html
>> > (Rendered HTML)
>> >
>> > Testing Instructions using PyPI:
>> > You can build a virtualenv that installs this and other required
>> packages
>> > (e.g. task sdk), like this:
>> >
>> > uv venv
>> > uv pip install -U \
>> >  apache-airflow==3.1.5rc1 \
>> >  apache-airflow-core==3.1.5rc1 \
>> >  apache-airflow-task-sdk==1.1.5rc1
>> >
>> > Constraints files are at
>> > https://github.com/apache/airflow/tree/constraints-3.1.5rc1
>> >
>> > Cheers,
>> > Ephraim
>>
>>

Reply via email to