diff --git a/.github/actions/build-prod-images/action.yml b/.github/actions/build-prod-images/action.yml
index 5fdbb795c4124..14a5aa8de90c6 100644
--- a/.github/actions/build-prod-images/action.yml
+++ b/.github/actions/build-prod-images/action.yml
@@ -22,6 +22,9 @@ inputs:
   build-provider-packages:
     description: 'Whether to build provider packages from sources'
     required: true
+  chicken-egg-providers:
+    description: 'List of chicken-egg provider packages to build from sources'
+    required: true
 runs:
   using: "composite"
   steps:
@@ -41,6 +44,15 @@ runs:
         --package-list-file ./airflow/providers/installed_providers.txt
         --package-format wheel --version-suffix-for-pypi dev0
       if: ${{ inputs.build-provider-packages == 'true' }}
+    - name: "Prepare chicken-eggs provider packages"
+      # In case of provider packages which use latest dev0 version of providers, we should prepare them
+      # from the source code, not from the PyPI because they have apache-airflow>=X.Y.Z dependency
+      # And when we prepare them from sources they will have apache-airflow>=X.Y.Z.dev0
+      shell: bash
+      run: >
+        breeze release-management prepare-provider-packages
+        --package-format wheel --version-suffix-for-pypi dev0 ${{ inputs.chicken-egg-providers }}
+      if: ${{ inputs.build-provider-packages != 'true' && inputs.chicken-egg-providers != '' }}
     - name: "Prepare airflow package"
       shell: bash
       run: >
@@ -54,6 +66,13 @@ runs:
       with:
         name: source-constraints
         path: ./docker-context-files
+      if: ${{ inputs.build-provider-packages == 'true' }}
+    - name: "Download constraints from the Generate & Verify build"
+      uses: actions/download-artifact@v3
+      with:
+        name: constraints
+        path: ./docker-context-files
+      if: ${{ inputs.build-provider-packages != 'true' }}
     - name: "Build & Push PROD images with source providers ${{ env.IMAGE_TAG }}:${{ env.PYTHON_VERSIONS }}"
       shell: bash
       run: >
diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml
index b29d49de17813..82cc6e598785d 100644
--- a/.github/workflows/build-images.yml
+++ b/.github/workflows/build-images.yml
@@ -74,6 +74,7 @@ jobs:
       is-arm-runner: ${{ steps.selective-checks.outputs.is-arm-runner }}
       is-vm-runner: ${{ steps.selective-checks.outputs.is-vm-runner }}
       is-k8s-runner: ${{ steps.selective-checks.outputs.is-k8s-runner }}
+      chicken-egg-providers: ${{ steps.selective-checks.outputs.chicken-egg-providers }}
       target-commit-sha: "${{steps.discover-pr-merge-commit.outputs.target-commit-sha ||
           github.event.pull_request.head.sha ||
           github.sha
@@ -293,6 +294,7 @@ jobs:
         uses: ./.github/actions/build-prod-images
         with:
           build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
+          chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
         env:
           UPGRADE_TO_NEWER_DEPENDENCIES: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
           DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 53e4da6916627..333c1e65db716 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -121,6 +121,7 @@ jobs:
       is-arm-runner: ${{ steps.selective-checks.outputs.is-arm-runner }}
       is-vm-runner: ${{ steps.selective-checks.outputs.is-vm-runner }}
       is-k8s-runner: ${{ steps.selective-checks.outputs.is-k8s-runner }}
+      chicken-egg-providers: ${{ steps.selective-checks.outputs.chicken-egg-providers }}
       has-migrations: ${{ steps.selective-checks.outputs.has-migrations }}
       source-head-repo: ${{ steps.source-run-info.outputs.source-head-repo }}
       pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
@@ -474,6 +475,7 @@ jobs:
       RUNS_ON: "${{ needs.build-info.outputs.runs-on }}"
       PYTHON_VERSIONS: ${{needs.build-info.outputs.all-python-versions-list-as-string}}
       DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
+      VERSION_SUFFIX_FOR_PYPI: "dev0"
     if: needs.build-info.outputs.ci-image-build == 'true'
     steps:
       - name: Cleanup repo
@@ -502,12 +504,23 @@ jobs:
         run: >
           breeze release-management generate-constraints --run-in-parallel
           --airflow-constraints-mode constraints-no-providers
+      - name: "Prepare chicken-eggs provider packages"
+        # In case of provider packages which use latest dev0 version of providers, we should prepare them
+        # from the source code, not from the PyPI because they have apache-airflow>=X.Y.Z dependency
+        # And when we prepare them from sources they will have apache-airflow>=X.Y.Z.dev0
+        shell: bash
+        run: >
+          breeze release-management prepare-provider-packages
+          --package-format wheel --version-suffix-for-pypi dev0
+          ${{ needs.build-info.outputs.chicken-egg-providers }}
+        if: needs.build-info.outputs.chicken-egg-providers != ''
       - name: "PyPI constraints"
         shell: bash
         timeout-minutes: 25
         run: >
           breeze release-management generate-constraints --run-in-parallel
           --airflow-constraints-mode constraints
+          --chicken-egg-providers "${{ needs.build-info.outputs.chicken-egg-providers }}"
       - name: "Dependency upgrade summary"
         shell: bash
         run: |
@@ -1576,7 +1589,7 @@ jobs:
   build-prod-images:
     timeout-minutes: 80
     name: >
-      ${{needs.build-info.outputs.build-job-description}} PROD images
+      ${{needs.build-info.outputs.build-job-description}} PROD images (main)
       ${{needs.build-info.outputs.all-python-versions-list-as-string}}
     runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}}
     needs: [build-info, build-ci-images]
@@ -1592,22 +1605,31 @@ jobs:
     steps:
       - name: Cleanup repo
         run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
-        if: needs.build-info.outputs.in-workflow-build == 'true'
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
       - uses: actions/checkout@v4
         with:
           ref: ${{ needs.build-info.outputs.targetCommitSha }}
           persist-credentials: false
-        if: needs.build-info.outputs.in-workflow-build == 'true'
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
       - name: "Install Breeze"
         uses: ./.github/actions/breeze
-        if: needs.build-info.outputs.in-workflow-build == 'true'
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
       - name: >
           Build PROD Images
           ${{needs.build-info.outputs.all-python-versions-list-as-string}}:${{env.IMAGE_TAG}}
         uses: ./.github/actions/build-prod-images
-        if: needs.build-info.outputs.in-workflow-build == 'true'
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
         with:
           build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
+          chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
         env:
           UPGRADE_TO_NEWER_DEPENDENCIES: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
           DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
@@ -1617,7 +1639,7 @@ jobs:
   build-prod-images-bullseye:
     timeout-minutes: 80
     name: >
-      Build Bullseye PROD images
+      Build Bullseye PROD images (main)
       ${{needs.build-info.outputs.all-python-versions-list-as-string}}
     runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}}
     needs: [build-info, build-ci-images]
@@ -1634,19 +1656,138 @@ jobs:
     steps:
       - name: Cleanup repo
         run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
+      - uses: actions/checkout@v3
+        with:
+          ref: ${{ needs.build-info.outputs.targetCommitSha }}
+          persist-credentials: false
+          submodules: recursive
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
+      - name: "Install Breeze"
+        uses: ./.github/actions/breeze
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
+      - name: >
+          Build Bullseye PROD Images
+          ${{needs.build-info.outputs.all-python-versions-list-as-string}}:${{env.IMAGE_TAG}}
+        uses: ./.github/actions/build-prod-images
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
+        with:
+          build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
+          chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
+        env:
+          UPGRADE_TO_NEWER_DEPENDENCIES: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
+          DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
+          PYTHON_VERSIONS: ${{needs.build-info.outputs.all-python-versions-list-as-string}}
+          DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
+          DEBIAN_VERSION: "bullseye"
+          # Do not override the "bookworm" image - just push a new bullseye image
+          # TODO: improve caching for that build
+          IMAGE_TAG: "bullseye-${{ github.event.pull_request.head.sha || github.sha }}"
+
+  build-prod-images-release-branch:
+    timeout-minutes: 80
+    name: >
+      ${{needs.build-info.outputs.build-job-description}} PROD images (v2_*_test)
+      ${{needs.build-info.outputs.all-python-versions-list-as-string}}
+    runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}}
+    needs: [build-info, generate-constraints]
+    env:
+      DEFAULT_BRANCH: ${{ needs.build-info.outputs.default-branch }}
+      DEFAULT_CONSTRAINTS_BRANCH: ${{ needs.build-info.outputs.default-constraints-branch }}
+      RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
+      BACKEND: sqlite
+      VERSION_SUFFIX_FOR_PYPI: "dev0"
+      DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
+      # Force more parallelism for build even on public images
+      PARALLELISM: 6
+    steps:
+      - name: Cleanup repo
+        run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
+      - uses: actions/checkout@v4
+        with:
+          ref: ${{ needs.build-info.outputs.targetCommitSha }}
+          persist-credentials: false
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
+      - name: "Install Breeze"
+        uses: ./.github/actions/breeze
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
+      - name: >
+          Build PROD Images
+          ${{needs.build-info.outputs.all-python-versions-list-as-string}}:${{env.IMAGE_TAG}}
+        uses: ./.github/actions/build-prod-images
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
+        with:
+          build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
+          chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
+        env:
+          UPGRADE_TO_NEWER_DEPENDENCIES: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
+          DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
+          PYTHON_VERSIONS: ${{needs.build-info.outputs.all-python-versions-list-as-string}}
+          DEBUG_RESOURCES: ${{ needs.build-info.outputs.debug-resources }}
+
+  build-prod-images-bullseye-release-branch:
+    timeout-minutes: 80
+    name: >
+      Build Bullseye PROD images (v2_*_test)
+      ${{needs.build-info.outputs.all-python-versions-list-as-string}}
+    runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}}
+    needs: [build-info, generate-constraints]
+    if: needs.build-info.outputs.canary-run == 'true'
+    env:
+      DEFAULT_BRANCH: ${{ needs.build-info.outputs.default-branch }}
+      DEFAULT_CONSTRAINTS_BRANCH: ${{ needs.build-info.outputs.default-constraints-branch }}
+      RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
+      BACKEND: sqlite
+      VERSION_SUFFIX_FOR_PYPI: "dev0"
+      DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
+      # Force more parallelism for build even on public images
+      PARALLELISM: 6
+    steps:
+      - name: Cleanup repo
+        run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
       - uses: actions/checkout@v3
         with:
           ref: ${{ needs.build-info.outputs.targetCommitSha }}
           persist-credentials: false
           submodules: recursive
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
       - name: "Install Breeze"
         uses: ./.github/actions/breeze
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
       - name: >
           Build Bullseye PROD Images
           ${{needs.build-info.outputs.all-python-versions-list-as-string}}:${{env.IMAGE_TAG}}
         uses: ./.github/actions/build-prod-images
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch != 'main'
         with:
           build-provider-packages: ${{ needs.build-info.outputs.default-branch == 'main' }}
+          chicken-egg-providers: ${{ needs.build-info.outputs.chicken-egg-providers }}
         env:
           UPGRADE_TO_NEWER_DEPENDENCIES: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
           DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
@@ -1661,7 +1802,7 @@ jobs:
     timeout-minutes: 80
     name: "Wait for PROD images"
     runs-on: ${{fromJSON(needs.build-info.outputs.runs-on)}}
-    needs: [build-info, wait-for-ci-images, build-prod-images]
+    needs: [build-info, wait-for-ci-images, build-prod-images, build-prod-images-release-branch]
     if: needs.build-info.outputs.prod-image-build == 'true'
     env:
       RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
@@ -1683,7 +1824,7 @@ jobs:
         if: needs.build-info.outputs.in-workflow-build == 'false'
       - name: Wait for PROD images ${{ env.PYTHON_VERSIONS }}:${{ env.IMAGE_TAG }}
         # We wait for the images to be available either from "build-images.yml' run as pull_request_target
-        # or from build-prod-images above.
+        # or from build-prod-images (or build-prod-images-release-branch) above.
         # We are utilising single job to wait for all images because this job merely waits
         # For the images to be available.
         run: breeze prod-image pull --wait-for-image --run-in-parallel
diff --git a/.github/workflows/release_dockerhub_image.yml b/.github/workflows/release_dockerhub_image.yml
index 6889539387f6a..3d6d4e065e0a0 100644
--- a/.github/workflows/release_dockerhub_image.yml
+++ b/.github/workflows/release_dockerhub_image.yml
@@ -35,6 +35,7 @@ concurrency:
   cancel-in-progress: true
 env:
   GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+  VERBOSE: true
 jobs:
   build-info:
     timeout-minutes: 10
@@ -46,6 +47,7 @@ jobs:
       pythonVersions: ${{ steps.selective-checks.outputs.python-versions }}
       allPythonVersions: ${{ steps.selective-checks.outputs.all-python-versions }}
       defaultPythonVersion: ${{ steps.selective-checks.outputs.default-python-version }}
+      chicken-egg-providers: ${{ steps.selective-checks.outputs.chicken-egg-providers }}
       skipLatest: ${{ github.event.inputs.skipLatest == '' && ' ' || '--skip-latest' }}
       limitPlatform: ${{ github.repository == 'apache/airflow' && ' ' || '--limit-platform linux/amd64' }}
     env:
@@ -107,6 +109,20 @@ jobs:
         run: >
           echo ${{ secrets.DOCKERHUB_TOKEN }} |
           docker login --password-stdin --username ${{ secrets.DOCKERHUB_USER }}
+      - name: "Prepare chicken-eggs provider packages"
+        # In case of provider packages which use latest dev0 version of providers, we should prepare them
+        # from the source code, not from the PyPI because they have apache-airflow>=X.Y.Z dependency
+        # And when we prepare them from sources they will have apache-airflow>=X.Y.Z.dev0
+        shell: bash
+        run: >
+          breeze release-management prepare-provider-packages
+          --package-format wheel
+          --version-suffix-for-pypi dev0 ${{ needs.build-info.outputs.chicken-egg-providers }}
+        if: needs.build-info.outputs.chicken-egg-providers != ''
+      - name: "Copy dist packages to docker-context files"
+        shell: bash
+        run: cp -v --no-preserve=mode,ownership ./dist/*.whl ./docker-context-files
+        if: needs.build-info.outputs.chicken-egg-providers != ''
       - name: >
           Release regular images: ${{ github.event.inputs.airflowVersion }}, ${{ matrix.python-version }}
         run: >
@@ -116,6 +132,7 @@ jobs:
           ${{ needs.build-info.outputs.skipLatest }}
           ${{ needs.build-info.outputs.limitPlatform }}
           --limit-python ${{ matrix.python-version }}
+          --chicken-egg-providers "${{ needs.build-info.outputs.chicken-egg-providers }}"
         env:
           COMMIT_SHA: ${{ github.sha }}
       - name: >
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 85a7cf96c7209..805cc72ebd91d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -405,6 +405,13 @@ repos:
         files: ^Dockerfile$
         pass_filenames: false
         additional_dependencies: ['rich>=12.4.4']
+      - id: generate-airflow-diagrams
+        name: Generate airflow diagrams
+        entry: ./scripts/ci/pre_commit/pre_commit_generate_airflow_diagrams.py
+        language: python
+        files: ^scripts/ci/pre_commit/pre_commit_generate_airflow_diagrams.py
+        pass_filenames: false
+        additional_dependencies: ['rich>=12.4.4', "diagrams>=0.23.4"]
       - id: update-supported-versions
         name: Updates supported versions in documentation
         entry: ./scripts/ci/pre_commit/pre_commit_supported_versions.py
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 1114c160748ca..25633c0995d80 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -672,16 +672,16 @@ aiobotocore, airbyte, alibaba, all, all_dbs, amazon, apache.atlas, apache.beam,
 apache.drill, apache.druid, apache.flink, apache.hdfs, apache.hive, apache.impala, apache.kafka,
 apache.kylin, apache.livy, apache.pig, apache.pinot, apache.spark, apache.sqoop, apache.webhdfs,
 apprise, arangodb, asana, async, atlas, atlassian.jira, aws, azure, cassandra, celery, cgroups,
-cloudant, cncf.kubernetes, cohere, common.io, common.sql, crypto, dask, daskexecutor, databricks,
-datadog, dbt.cloud, deprecated_api, devel, devel_all, devel_ci, devel_hadoop, dingding, discord,
-doc, doc_gen, docker, druid, elasticsearch, exasol, facebook, ftp, gcp, gcp_api, github,
-github_enterprise, google, google_auth, grpc, hashicorp, hdfs, hive, http, imap, influxdb, jdbc,
-jenkins, kerberos, kubernetes, ldap, leveldb, microsoft.azure, microsoft.mssql, microsoft.psrp,
-microsoft.winrm, mongo, mssql, mysql, neo4j, odbc, openai, openfaas, openlineage, opensearch,
-opsgenie, oracle, otel, pagerduty, pandas, papermill, password, pgvector, pinecone, pinot, plexus,
-postgres, presto, rabbitmq, redis, s3, s3fs, salesforce, samba, saml, segment, sendgrid, sentry,
-sftp, singularity, slack, smtp, snowflake, spark, sqlite, ssh, statsd, tableau, tabular, telegram,
-trino, vertica, virtualenv, weaviate, webhdfs, winrm, yandex, zendesk
+cloudant, cncf.kubernetes, cohere, common.io, common.sql, crypto, databricks, datadog, dbt.cloud,
+deprecated_api, devel, devel_all, devel_ci, devel_hadoop, dingding, discord, doc, doc_gen, docker,
+druid, elasticsearch, exasol, facebook, ftp, gcp, gcp_api, github, github_enterprise, google,
+google_auth, grpc, hashicorp, hdfs, hive, http, imap, influxdb, jdbc, jenkins, kerberos, kubernetes,
+ldap, leveldb, microsoft.azure, microsoft.mssql, microsoft.psrp, microsoft.winrm, mongo, mssql,
+mysql, neo4j, odbc, openai, openfaas, openlineage, opensearch, opsgenie, oracle, otel, pagerduty,
+pandas, papermill, password, pgvector, pinecone, pinot, plexus, postgres, presto, rabbitmq, redis,
+s3, s3fs, salesforce, samba, saml, segment, sendgrid, sentry, sftp, singularity, slack, smtp,
+snowflake, spark, sqlite, ssh, statsd, tableau, tabular, telegram, trino, vertica, virtualenv,
+weaviate, webhdfs, winrm, yandex, zendesk
   .. END EXTRAS HERE
 
 Provider packages
diff --git a/Dockerfile b/Dockerfile
index b9b358d0c7dc4..ce845cef8bba7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -35,7 +35,7 @@
 #                        much smaller.
 #
 # Use the same builder frontend version for everyone
-ARG AIRFLOW_EXTRAS="aiobotocore,amazon,async,celery,cncf.kubernetes,daskexecutor,docker,elasticsearch,ftp,google,google_auth,grpc,hashicorp,http,ldap,microsoft.azure,mysql,odbc,openlineage,pandas,postgres,redis,sendgrid,sftp,slack,snowflake,ssh,statsd,virtualenv"
+ARG AIRFLOW_EXTRAS="aiobotocore,amazon,async,celery,cncf.kubernetes,docker,elasticsearch,ftp,google,google_auth,grpc,hashicorp,http,ldap,microsoft.azure,mysql,odbc,openlineage,pandas,postgres,redis,sendgrid,sftp,slack,snowflake,ssh,statsd,virtualenv"
 ARG ADDITIONAL_AIRFLOW_EXTRAS=""
 ARG ADDITIONAL_PYTHON_DEPS=""
 
@@ -347,8 +347,6 @@ COPY <<"EOF" /install_mssql.sh
 #!/usr/bin/env bash
 set -euo pipefail
 
-. "$( dirname "${BASH_SOURCE[0]}" )/common.sh"
-
 : "${AIRFLOW_PIP_VERSION:?Should be set}"
 
 : "${INSTALL_MSSQL_CLIENT:?Should be true or false}"
@@ -384,40 +382,6 @@ function install_mssql_client() {
     rm -rf /var/lib/apt/lists/*
     apt-get autoremove -yqq --purge
     apt-get clean && rm -rf /var/lib/apt/lists/*
-
-    # Workaround an issue with installing pymssql on ARM architecture triggered by Cython 3.0.0 release as of
-    # 18 July 2023. The problem is that pip uses latest Cython to compile pymssql and since we are using
-    # setuptools, there is no easy way to fix version of Cython used to compile packages.
-    #
-    # This triggers a problem with newer `pip` versions that have build isolation enabled by default because
-    # There is no (easy) way to pin build dependencies for dependent packages. If a package does not have
-    # limit on build dependencies, it will use the latest version of them to build that particular package.
-    #
-    # The workaround to the problem suggest in the last thread by Pradyun Gedam - pip maintainer - is to
-    # use PIP_CONSTRAINT environment variable and constraint the version of Cython used while installing
-    # the package. Which is precisely what we are doing here.
-    #
-    # Note that it does not work if we pass ``--constraint`` option to pip because it will not be passed to
-    # the package being build in isolation. The fact that the PIP_CONSTRAINT env variable works in the isolation
-    # is a bit of side-effect on how env variables work and that they are passed to subprocesses as pip
-    # launches a subprocess `pip` to build the package.
-    #
-    # This is a temporary solution until the issue is resolved in pymssql or Cython
-    # Issues/discussions that track it:
-    #
-    # * https://github.com/cython/cython/issues/5541
-    # * https://github.com/pymssql/pymssql/pull/827
-    # * https://discuss.python.org/t/no-way-to-pin-build-dependencies/29833
-    #
-    # TODO: Remove this workaround when the issue is resolved.
-    #       ALSO REMOVE THE TOP LINES ABOVE WITH common.sh IMPORT AS WELL AS COPYING common.sh ib
-    #       Dockerfile AND Dockerfile.ci (look for capital PYMSSQL - there are several places to remove)
-    if [[ "${1}" == "dev" ]]; then
-        common::install_pip_version
-        echo "Cython==0.29.36" >> /tmp/mssql-constraints.txt
-        PIP_CONSTRAINT=/tmp/mssql-constraints.txt pip install pymssql
-        rm /tmp/mssql-constraints.txt
-    fi
 }
 
 install_mssql_client "${@}"
@@ -663,6 +627,13 @@ function install_airflow_and_providers_from_docker_context_files(){
         reinstalling_apache_airflow_package="apache-airflow[${AIRFLOW_EXTRAS}]==$ver"
     fi
 
+    if [[ -z "${reinstalling_apache_airflow_package}" && ${AIRFLOW_VERSION=} != "" ]]; then
+        # When we install only provider packages from docker-context files, we need to still
+        # install airflow from PyPI when AIRFLOW_VERSION is set. This handles the case where
+        # pre-release dockerhub image of airflow is built, but we want to install some providers from
+        # docker-context files
+        reinstalling_apache_airflow_package="apache-airflow[${AIRFLOW_EXTRAS}]==${AIRFLOW_VERSION}"
+    fi
     # Find Apache Airflow packages in docker-context files
     local reinstalling_apache_airflow_providers_packages
     reinstalling_apache_airflow_providers_packages=$(ls \
@@ -1203,7 +1174,7 @@ while true; do
     -type f -mtime +"${RETENTION}" -name '*.log' -print0 | \
     xargs -0 rm -f
 
-  find "${DIRECTORY}"/logs -type d -empty -delete
+  find "${DIRECTORY}"/logs -type d -empty -delete || true
 
   seconds=$(( $(date -u +%s) % EVERY))
   (( seconds < 1 )) || sleep $((EVERY - seconds - 1))
@@ -1272,12 +1243,6 @@ ENV INSTALL_MYSQL_CLIENT=${INSTALL_MYSQL_CLIENT} \
 # scripts which are needed much later will not invalidate the docker layer here
 COPY --from=scripts install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/
 
-# THE 3 LINES ARE ONLY NEEDED IN ORDER TO MAKE PYMSSQL BUILD WORK WITH LATEST CYTHON
-# AND SHOULD BE REMOVED WHEN WORKAROUND IN install_mssql.sh IS REMOVED
-ARG AIRFLOW_PIP_VERSION=23.3.1
-ENV AIRFLOW_PIP_VERSION=${AIRFLOW_PIP_VERSION}
-COPY --from=scripts common.sh /scripts/docker/
-
 RUN bash /scripts/docker/install_mysql.sh dev && \
     bash /scripts/docker/install_mssql.sh dev && \
     bash /scripts/docker/install_postgres.sh dev
diff --git a/Dockerfile.ci b/Dockerfile.ci
index c3e5e2e3a0d3f..a22c363fa567c 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -307,8 +307,6 @@ COPY <<"EOF" /install_mssql.sh
 #!/usr/bin/env bash
 set -euo pipefail
 
-. "$( dirname "${BASH_SOURCE[0]}" )/common.sh"
-
 : "${AIRFLOW_PIP_VERSION:?Should be set}"
 
 : "${INSTALL_MSSQL_CLIENT:?Should be true or false}"
@@ -344,40 +342,6 @@ function install_mssql_client() {
     rm -rf /var/lib/apt/lists/*
     apt-get autoremove -yqq --purge
     apt-get clean && rm -rf /var/lib/apt/lists/*
-
-    # Workaround an issue with installing pymssql on ARM architecture triggered by Cython 3.0.0 release as of
-    # 18 July 2023. The problem is that pip uses latest Cython to compile pymssql and since we are using
-    # setuptools, there is no easy way to fix version of Cython used to compile packages.
-    #
-    # This triggers a problem with newer `pip` versions that have build isolation enabled by default because
-    # There is no (easy) way to pin build dependencies for dependent packages. If a package does not have
-    # limit on build dependencies, it will use the latest version of them to build that particular package.
-    #
-    # The workaround to the problem suggest in the last thread by Pradyun Gedam - pip maintainer - is to
-    # use PIP_CONSTRAINT environment variable and constraint the version of Cython used while installing
-    # the package. Which is precisely what we are doing here.
-    #
-    # Note that it does not work if we pass ``--constraint`` option to pip because it will not be passed to
-    # the package being build in isolation. The fact that the PIP_CONSTRAINT env variable works in the isolation
-    # is a bit of side-effect on how env variables work and that they are passed to subprocesses as pip
-    # launches a subprocess `pip` to build the package.
-    #
-    # This is a temporary solution until the issue is resolved in pymssql or Cython
-    # Issues/discussions that track it:
-    #
-    # * https://github.com/cython/cython/issues/5541
-    # * https://github.com/pymssql/pymssql/pull/827
-    # * https://discuss.python.org/t/no-way-to-pin-build-dependencies/29833
-    #
-    # TODO: Remove this workaround when the issue is resolved.
-    #       ALSO REMOVE THE TOP LINES ABOVE WITH common.sh IMPORT AS WELL AS COPYING common.sh ib
-    #       Dockerfile AND Dockerfile.ci (look for capital PYMSSQL - there are several places to remove)
-    if [[ "${1}" == "dev" ]]; then
-        common::install_pip_version
-        echo "Cython==0.29.36" >> /tmp/mssql-constraints.txt
-        PIP_CONSTRAINT=/tmp/mssql-constraints.txt pip install pymssql
-        rm /tmp/mssql-constraints.txt
-    fi
 }
 
 install_mssql_client "${@}"
diff --git a/IMAGES.rst b/IMAGES.rst
index 7c69d58e70606..a8c91d11bb71a 100644
--- a/IMAGES.rst
+++ b/IMAGES.rst
@@ -135,7 +135,7 @@ This will build the image using command similar to:
 .. code-block:: bash
 
     pip install \
-      apache-airflow[async,amazon,celery,cncf.kubernetes,docker,daskexecutor,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,microsoft.azure,mysql,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv]==2.0.0 \
+      apache-airflow[async,amazon,celery,cncf.kubernetes,docker,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,microsoft.azure,mysql,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv]==2.0.0 \
       --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.0.0/constraints-3.8.txt"
 
 .. note::
diff --git a/INSTALL b/INSTALL
index 0ac0ac33d0b9b..e784b2d057aa3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -98,16 +98,16 @@ aiobotocore, airbyte, alibaba, all, all_dbs, amazon, apache.atlas, apache.beam,
 apache.drill, apache.druid, apache.flink, apache.hdfs, apache.hive, apache.impala, apache.kafka,
 apache.kylin, apache.livy, apache.pig, apache.pinot, apache.spark, apache.sqoop, apache.webhdfs,
 apprise, arangodb, asana, async, atlas, atlassian.jira, aws, azure, cassandra, celery, cgroups,
-cloudant, cncf.kubernetes, cohere, common.io, common.sql, crypto, dask, daskexecutor, databricks,
-datadog, dbt.cloud, deprecated_api, devel, devel_all, devel_ci, devel_hadoop, dingding, discord,
-doc, doc_gen, docker, druid, elasticsearch, exasol, facebook, ftp, gcp, gcp_api, github,
-github_enterprise, google, google_auth, grpc, hashicorp, hdfs, hive, http, imap, influxdb, jdbc,
-jenkins, kerberos, kubernetes, ldap, leveldb, microsoft.azure, microsoft.mssql, microsoft.psrp,
-microsoft.winrm, mongo, mssql, mysql, neo4j, odbc, openai, openfaas, openlineage, opensearch,
-opsgenie, oracle, otel, pagerduty, pandas, papermill, password, pgvector, pinecone, pinot, plexus,
-postgres, presto, rabbitmq, redis, s3, s3fs, salesforce, samba, saml, segment, sendgrid, sentry,
-sftp, singularity, slack, smtp, snowflake, spark, sqlite, ssh, statsd, tableau, tabular, telegram,
-trino, vertica, virtualenv, weaviate, webhdfs, winrm, yandex, zendesk
+cloudant, cncf.kubernetes, cohere, common.io, common.sql, crypto, databricks, datadog, dbt.cloud,
+deprecated_api, devel, devel_all, devel_ci, devel_hadoop, dingding, discord, doc, doc_gen, docker,
+druid, elasticsearch, exasol, facebook, ftp, gcp, gcp_api, github, github_enterprise, google,
+google_auth, grpc, hashicorp, hdfs, hive, http, imap, influxdb, jdbc, jenkins, kerberos, kubernetes,
+ldap, leveldb, microsoft.azure, microsoft.mssql, microsoft.psrp, microsoft.winrm, mongo, mssql,
+mysql, neo4j, odbc, openai, openfaas, openlineage, opensearch, opsgenie, oracle, otel, pagerduty,
+pandas, papermill, password, pgvector, pinecone, pinot, plexus, postgres, presto, rabbitmq, redis,
+s3, s3fs, salesforce, samba, saml, segment, sendgrid, sentry, sftp, singularity, slack, smtp,
+snowflake, spark, sqlite, ssh, statsd, tableau, tabular, telegram, trino, vertica, virtualenv,
+weaviate, webhdfs, winrm, yandex, zendesk
 # END EXTRAS HERE
 
 # For installing Airflow in development environments - see CONTRIBUTING.rst
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index b2c1c20a64b56..63dbc56269298 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -41,6 +41,7 @@ Significant Changes
 New Features
 """"""""""""
 - AIP-58: Add Airflow ObjectStore (AFS) (`AIP-58 <https://github.com/apache/airflow/pulls?q=is%3Apr+is%3Amerged+label%3AAIP-58+milestone%3A%22Airflow+2.8.0%22>`_)
+- Add XCom tab to Grid (#35719)
 - Add "literal" wrapper to disable field templating (#35017)
 - Add task context logging feature to allow forwarding messages to task logs (#32646, #32693, #35857)
 - Add Listener hooks for Datasets (#34418)
@@ -60,9 +61,17 @@ New Features
 - Add BranchPythonVirtualenvOperator (#33356)
 - Allow PythonVenvOperator using other index url (#33017)
 - Add CLI notification commands to providers (#33116)
+- Use dropdown instead of buttons when there are more than 10 retries in log tab (#36025)
 
 Improvements
 """"""""""""
+- Add ``multiselect`` to run state in grid view (#35403)
+- Fix warning message in ``Connection.get_hook`` in case of ImportError (#36005)
+- Add processor_subdir to import_error table to handle multiple dag processors (#35956)
+- Consolidate the call of change_state to fail or success in the core executors (#35901)
+- Relax mandatory requirement for start_date when schedule=None (#35356)
+- Use ExitStack to manage mutation of secrets_backend_list in dag.test (#34620)
+- improved visibility of tasks in ActionModal for ``taskinstance`` (#35810)
 - Create directories based on ``AIRFLOW_CONFIG`` path (#35818)
 - Implements ``JSON-string`` connection representation generator (#35723)
 - Move ``BaseOperatorLink`` into the separate module (#35032)
@@ -75,7 +84,7 @@ Improvements
 - Improved instructions for adding dependencies in TaskFlow (#35406)
 - Add optional exit code to list import errors (#35378)
 - Limit query result on DB rather than client in ``synchronize_log_template`` function (#35366)
-- Feature: Allow description to be passed in when using variables CLI (#34791)
+- Allow description to be passed in when using variables CLI (#34791)
 - Allow optional defaults in required fields with manual triggered dags (#31301)
 - Permitting airflow kerberos to run in different modes (#35146)
 - Refactor commands to unify daemon context handling (#34945)
@@ -122,6 +131,16 @@ Improvements
 
 Bug Fixes
 """""""""
+- Account for change in UTC offset when calculating next schedule (#35887)
+- Add read access to pools for viewer role (#35352)
+- Fix gantt chart queued duration when queued_dttm is greater than start_date for deferred tasks (#35984)
+- Avoid crushing container when directory is not found on rm (#36050)
+- Update ``reset_user_sessions`` to work from either CLI or web (#36056)
+- Fix UI Grid error when DAG has been removed. (#36028)
+- Change Trigger UI to use HTTP POST in web ui (#36026)
+- Fix airflow db shell needing an extra key press to exit (#35982)
+- Change dag grid ``overscroll`` behaviour to auto (#35717)
+- Run triggers inline with dag test (#34642)
 - Add ``borderWidthRight`` to grid for Firefox ``scrollbar`` (#35346)
 - Fix for infinite recursion due to secrets_masker (#35048)
 - Fix write ``processor_subdir`` in serialized_dag table (#35661)
@@ -144,8 +163,12 @@ Bug Fixes
 - Use Literal from airflow.typing_compat in Airflow core (#33821)
 - Always use ``Literal`` from ``typing_extensions`` (#33794)
 
-Misc/Internal
+Miscellaneous
 """""""""""""
+- Mark daskexecutor provider as removed (#35965)
+- Bump FAB to ``4.3.10`` (#35991)
+- Mark daskexecutor provider as removed (#35965)
+- Rename ``Connection.to_json_dict`` to ``Connection.to_dict`` (#35894)
 - Upgrade to Pydantic v2 (#35551)
 - Bump ``moto`` version to ``>= 4.2.9`` (#35687)
 - Use ``pyarrow-hotfix`` to mitigate CVE-2023-47248 (#35650)
@@ -177,6 +200,9 @@ Misc/Internal
 
 Doc Only Changes
 """"""""""""""""
+- Add support for tabs (and other UX components) to docs (#36041)
+- Replace architecture diagram of Airflow with diagrams-generated one (#36035)
+- Add the section describing the security model of DAG Author capabilities (#36022)
 - Enhance docs for zombie tasks (#35825)
 - Reflect drop/add support of DB Backends versions in documentation (#35785)
 - More detail on mandatory task arguments (#35740)
diff --git a/STATIC_CODE_CHECKS.rst b/STATIC_CODE_CHECKS.rst
index b83cb64859322..95e71cccb7ae5 100644
--- a/STATIC_CODE_CHECKS.rst
+++ b/STATIC_CODE_CHECKS.rst
@@ -270,6 +270,8 @@ require Breeze Docker image to be built locally.
 +-----------------------------------------------------------+--------------------------------------------------------------+---------+
 | flynt                                                     | Run flynt string format converter for Python                 |         |
 +-----------------------------------------------------------+--------------------------------------------------------------+---------+
+| generate-airflow-diagrams                                 | Generate airflow diagrams                                    |         |
++-----------------------------------------------------------+--------------------------------------------------------------+---------+
 | generate-pypi-readme                                      | Generate PyPI README                                         |         |
 +-----------------------------------------------------------+--------------------------------------------------------------+---------+
 | identity                                                  | Print input to the static check hooks for troubleshooting    |         |
diff --git a/airflow/api_internal/endpoints/rpc_api_endpoint.py b/airflow/api_internal/endpoints/rpc_api_endpoint.py
index f451659cc0b5c..7f1629affa544 100644
--- a/airflow/api_internal/endpoints/rpc_api_endpoint.py
+++ b/airflow/api_internal/endpoints/rpc_api_endpoint.py
@@ -76,6 +76,7 @@ def _initialize_map() -> dict[str, Callable]:
         DagRun.get_previous_dagrun,
         DagRun.get_previous_scheduled_dagrun,
         DagRun.fetch_task_instance,
+        DagRun._get_log_template,
         SerializedDagModel.get_serialized_dag,
         TaskInstance._check_and_change_state_before_execution,
         TaskInstance.get_task_instance,
diff --git a/airflow/auth/managers/fab/security_manager/override.py b/airflow/auth/managers/fab/security_manager/override.py
index 2dc023f1daeb5..a78ab76ecd2db 100644
--- a/airflow/auth/managers/fab/security_manager/override.py
+++ b/airflow/auth/managers/fab/security_manager/override.py
@@ -28,7 +28,7 @@
 
 import jwt
 import re2
-from flask import flash, g, session
+from flask import flash, g, has_request_context, session
 from flask_appbuilder import const
 from flask_appbuilder.const import (
     AUTH_DB,
@@ -209,6 +209,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG_RUN),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_DATASET),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_CLUSTER_ACTIVITY),
+        (permissions.ACTION_CAN_READ, permissions.RESOURCE_POOL),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_IMPORT_ERROR),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG_WARNING),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_JOB),
@@ -266,7 +267,6 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
         (permissions.ACTION_CAN_EDIT, permissions.RESOURCE_CONNECTION),
         (permissions.ACTION_CAN_DELETE, permissions.RESOURCE_CONNECTION),
         (permissions.ACTION_CAN_CREATE, permissions.RESOURCE_POOL),
-        (permissions.ACTION_CAN_READ, permissions.RESOURCE_POOL),
         (permissions.ACTION_CAN_EDIT, permissions.RESOURCE_POOL),
         (permissions.ACTION_CAN_DELETE, permissions.RESOURCE_POOL),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_PROVIDER),
@@ -476,17 +476,15 @@ def reset_user_sessions(self, user: User) -> None:
             user_session_model = interface.sql_session_model
             num_sessions = session.query(user_session_model).count()
             if num_sessions > MAX_NUM_DATABASE_USER_SESSIONS:
-                flash(
-                    Markup(
-                        f"The old sessions for user {user.username} have <b>NOT</b> been deleted!<br>"
-                        f"You have a lot ({num_sessions}) of user sessions in the 'SESSIONS' table in "
-                        f"your database.<br> "
-                        "This indicates that this deployment might have an automated API calls that create "
-                        "and not reuse sessions.<br>You should consider reusing sessions or cleaning them "
-                        "periodically using db clean.<br>"
-                        "Make sure to reset password for the user again after cleaning the session table "
-                        "to remove old sessions of the user."
-                    ),
+                _cli_safe_flash(
+                    f"The old sessions for user {user.username} have <b>NOT</b> been deleted!<br>"
+                    f"You have a lot ({num_sessions}) of user sessions in the 'SESSIONS' table in "
+                    f"your database.<br> "
+                    "This indicates that this deployment might have an automated API calls that create "
+                    "and not reuse sessions.<br>You should consider reusing sessions or cleaning them "
+                    "periodically using db clean.<br>"
+                    "Make sure to reset password for the user again after cleaning the session table "
+                    "to remove old sessions of the user.",
                     "warning",
                 )
             else:
@@ -495,15 +493,13 @@ def reset_user_sessions(self, user: User) -> None:
                     if session_details.get("_user_id") == user.id:
                         session.delete(s)
         else:
-            flash(
-                Markup(
-                    "Since you are using `securecookie` session backend mechanism, we cannot prevent "
-                    f"some old sessions for user {user.username} to be reused.<br> If you want to make sure "
-                    "that the user is logged out from all sessions, you should consider using "
-                    "`database` session backend mechanism.<br> You can also change the 'secret_key` "
-                    "webserver configuration for all your webserver instances and restart the webserver. "
-                    "This however will logout all users from all sessions."
-                ),
+            _cli_safe_flash(
+                "Since you are using `securecookie` session backend mechanism, we cannot prevent "
+                f"some old sessions for user {user.username} to be reused.<br> If you want to make sure "
+                "that the user is logged out from all sessions, you should consider using "
+                "`database` session backend mechanism.<br> You can also change the 'secret_key` "
+                "webserver configuration for all your webserver instances and restart the webserver. "
+                "This however will logout all users from all sessions.",
                 "warning",
             )
 
@@ -2149,7 +2145,7 @@ def get_oauth_user_info(self, provider: str, resp: dict[str, Any]) -> dict[str,
             log.debug("User info from Azure: %s", me)
             # https://learn.microsoft.com/en-us/azure/active-directory/develop/id-token-claims-reference#payload-claims
             return {
-                "email": me["email"],
+                "email": me["upn"] if "upn" in me else me["email"],
                 "first_name": me.get("given_name", ""),
                 "last_name": me.get("family_name", ""),
                 "username": me["oid"],
@@ -2666,3 +2662,11 @@ def _get_root_dag_id(self, dag_id: str) -> str:
             ).one()
             return dm.root_dag_id or dm.dag_id
         return dag_id
+
+
+def _cli_safe_flash(text: str, level: str) -> None:
+    """Shows a flash in a web context or prints a message if not."""
+    if has_request_context():
+        flash(Markup(text), level)
+    else:
+        getattr(log, level)(text.replace("<br>", "\n").replace("<b>", "*").replace("</b>", "*"))
diff --git a/airflow/config_templates/config.yml b/airflow/config_templates/config.yml
index a25adc7206c34..63bcb3edcdd86 100644
--- a/airflow/config_templates/config.yml
+++ b/airflow/config_templates/config.yml
@@ -63,7 +63,7 @@ core:
     executor:
       description: |
         The executor class that airflow should use. Choices include
-        ``SequentialExecutor``, ``LocalExecutor``, ``CeleryExecutor``, ``DaskExecutor``,
+        ``SequentialExecutor``, ``LocalExecutor``, ``CeleryExecutor``,
         ``KubernetesExecutor``, ``CeleryKubernetesExecutor``, ``LocalKubernetesExecutor`` or the
         full import path to the class when using a custom executor.
       version_added: ~
diff --git a/airflow/dag_processing/manager.py b/airflow/dag_processing/manager.py
index 909425e569a6a..b4b4ed65fe55c 100644
--- a/airflow/dag_processing/manager.py
+++ b/airflow/dag_processing/manager.py
@@ -743,7 +743,9 @@ def _refresh_dag_dir(self) -> bool:
 
             try:
                 self.log.debug("Removing old import errors")
-                DagFileProcessorManager.clear_nonexistent_import_errors(file_paths=self._file_paths)
+                DagFileProcessorManager.clear_nonexistent_import_errors(
+                    file_paths=self._file_paths, processor_subdir=self.get_dag_directory()
+                )
             except Exception:
                 self.log.exception("Error removing old import errors")
 
@@ -793,7 +795,9 @@ def _print_stat(self):
     @staticmethod
     @internal_api_call
     @provide_session
-    def clear_nonexistent_import_errors(file_paths: list[str] | None, session=NEW_SESSION):
+    def clear_nonexistent_import_errors(
+        file_paths: list[str] | None, processor_subdir: str | None, session=NEW_SESSION
+    ):
         """
         Clear import errors for files that no longer exist.
 
@@ -803,7 +807,10 @@ def clear_nonexistent_import_errors(file_paths: list[str] | None, session=NEW_SE
         query = delete(errors.ImportError)
 
         if file_paths:
-            query = query.where(~errors.ImportError.filename.in_(file_paths))
+            query = query.where(
+                ~errors.ImportError.filename.in_(file_paths),
+                errors.ImportError.processor_subdir == processor_subdir,
+            )
 
         session.execute(query.execution_options(synchronize_session="fetch"))
         session.commit()
diff --git a/airflow/dag_processing/processor.py b/airflow/dag_processing/processor.py
index 5209e6bfd2385..ce4c51552ba43 100644
--- a/airflow/dag_processing/processor.py
+++ b/airflow/dag_processing/processor.py
@@ -592,7 +592,10 @@ def manage_slas(cls, dag_folder, dag_id: str, session: Session = NEW_SESSION) ->
     @internal_api_call
     @provide_session
     def update_import_errors(
-        file_last_changed: dict[str, datetime], import_errors: dict[str, str], session: Session = NEW_SESSION
+        file_last_changed: dict[str, datetime],
+        import_errors: dict[str, str],
+        processor_subdir: str | None,
+        session: Session = NEW_SESSION,
     ) -> None:
         """
         Update any import errors to be displayed in the UI.
@@ -627,7 +630,12 @@ def update_import_errors(
                 )
             else:
                 session.add(
-                    errors.ImportError(filename=filename, timestamp=timezone.utcnow(), stacktrace=stacktrace)
+                    errors.ImportError(
+                        filename=filename,
+                        timestamp=timezone.utcnow(),
+                        stacktrace=stacktrace,
+                        processor_subdir=processor_subdir,
+                    )
                 )
             (
                 session.query(DagModel)
@@ -835,6 +843,7 @@ def process_file(
             DagFileProcessor.update_import_errors(
                 file_last_changed=dagbag.file_last_changed,
                 import_errors=dagbag.import_errors,
+                processor_subdir=self._dag_directory,
                 session=session,
             )
             if callback_requests:
@@ -860,6 +869,7 @@ def process_file(
             DagFileProcessor.update_import_errors(
                 file_last_changed=dagbag.file_last_changed,
                 import_errors=dagbag.import_errors,
+                processor_subdir=self._dag_directory,
                 session=session,
             )
         except Exception:
diff --git a/airflow/example_dags/example_python_decorator.py b/airflow/example_dags/example_python_decorator.py
new file mode 100644
index 0000000000000..8a57175dd21dc
--- /dev/null
+++ b/airflow/example_dags/example_python_decorator.py
@@ -0,0 +1,135 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+"""
+Example DAG demonstrating the usage of the TaskFlow API to execute Python functions natively and within a
+virtual environment.
+"""
+from __future__ import annotations
+
+import logging
+import sys
+import time
+from pprint import pprint
+
+import pendulum
+
+from airflow.decorators import dag, task
+from airflow.operators.python import is_venv_installed
+
+log = logging.getLogger(__name__)
+
+PATH_TO_PYTHON_BINARY = sys.executable
+
+
+@dag(
+    schedule=None,
+    start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
+    catchup=False,
+    tags=["example"],
+)
+def example_python_decorator():
+    # [START howto_operator_python]
+    @task(task_id="print_the_context")
+    def print_context(ds=None, **kwargs):
+        """Print the Airflow context and ds variable from the context."""
+        pprint(kwargs)
+        print(ds)
+        return "Whatever you return gets printed in the logs"
+
+    run_this = print_context()
+    # [END howto_operator_python]
+
+    # [START howto_operator_python_render_sql]
+    @task(task_id="log_sql_query", templates_dict={"query": "sql/sample.sql"}, templates_exts=[".sql"])
+    def log_sql(**kwargs):
+        logging.info("Python task decorator query: %s", str(kwargs["templates_dict"]["query"]))
+
+    log_the_sql = log_sql()
+    # [END howto_operator_python_render_sql]
+
+    # [START howto_operator_python_kwargs]
+    # Generate 5 sleeping tasks, sleeping from 0.0 to 0.4 seconds respectively
+    @task
+    def my_sleeping_function(random_base):
+        """This is a function that will run within the DAG execution"""
+        time.sleep(random_base)
+
+    for i in range(5):
+        sleeping_task = my_sleeping_function.override(task_id=f"sleep_for_{i}")(random_base=i / 10)
+
+        run_this >> log_the_sql >> sleeping_task
+    # [END howto_operator_python_kwargs]
+
+    if not is_venv_installed():
+        log.warning("The virtalenv_python example task requires virtualenv, please install it.")
+    else:
+        # [START howto_operator_python_venv]
+        @task.virtualenv(
+            task_id="virtualenv_python", requirements=["colorama==0.4.0"], system_site_packages=False
+        )
+        def callable_virtualenv():
+            """
+            Example function that will be performed in a virtual environment.
+
+            Importing at the module level ensures that it will not attempt to import the
+            library before it is installed.
+            """
+            from time import sleep
+
+            from colorama import Back, Fore, Style
+
+            print(Fore.RED + "some red text")
+            print(Back.GREEN + "and with a green background")
+            print(Style.DIM + "and in dim text")
+            print(Style.RESET_ALL)
+            for _ in range(4):
+                print(Style.DIM + "Please wait...", flush=True)
+                sleep(1)
+            print("Finished")
+
+        virtualenv_task = callable_virtualenv()
+        # [END howto_operator_python_venv]
+
+        sleeping_task >> virtualenv_task
+
+        # [START howto_operator_external_python]
+        @task.external_python(task_id="external_python", python=PATH_TO_PYTHON_BINARY)
+        def callable_external_python():
+            """
+            Example function that will be performed in a virtual environment.
+
+            Importing at the module level ensures that it will not attempt to import the
+            library before it is installed.
+            """
+            import sys
+            from time import sleep
+
+            print(f"Running task via {sys.executable}")
+            print("Sleeping")
+            for _ in range(4):
+                print("Please wait...", flush=True)
+                sleep(1)
+            print("Finished")
+
+        external_python_task = callable_external_python()
+        # [END howto_operator_external_python]
+
+        run_this >> external_python_task >> virtualenv_task
+
+
+example_python_decorator()
diff --git a/airflow/example_dags/example_python_operator.py b/airflow/example_dags/example_python_operator.py
index 7518206b41a2f..47cad6bd4b1cf 100644
--- a/airflow/example_dags/example_python_operator.py
+++ b/airflow/example_dags/example_python_operator.py
@@ -16,8 +16,8 @@
 # specific language governing permissions and limitations
 # under the License.
 """
-Example DAG demonstrating the usage of the TaskFlow API to execute Python functions natively and within a
-virtual environment.
+Example DAG demonstrating the usage of the classic Python operators to execute Python functions natively and
+within a virtual environment.
 """
 from __future__ import annotations
 
@@ -28,55 +28,58 @@
 
 import pendulum
 
-from airflow.decorators import task
 from airflow.models.dag import DAG
-from airflow.operators.python import ExternalPythonOperator, PythonVirtualenvOperator, is_venv_installed
+from airflow.operators.python import (
+    ExternalPythonOperator,
+    PythonOperator,
+    PythonVirtualenvOperator,
+    is_venv_installed,
+)
 
 log = logging.getLogger(__name__)
 
 PATH_TO_PYTHON_BINARY = sys.executable
 
 
-def x():
-    pass
-
-
 with DAG(
     dag_id="example_python_operator",
     schedule=None,
     start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
     catchup=False,
     tags=["example"],
-) as dag:
+):
     # [START howto_operator_python]
-    @task(task_id="print_the_context")
     def print_context(ds=None, **kwargs):
         """Print the Airflow context and ds variable from the context."""
         pprint(kwargs)
         print(ds)
         return "Whatever you return gets printed in the logs"
 
-    run_this = print_context()
+    run_this = PythonOperator(task_id="print_the_context", python_callable=print_context)
     # [END howto_operator_python]
 
     # [START howto_operator_python_render_sql]
-    @task(task_id="log_sql_query", templates_dict={"query": "sql/sample.sql"}, templates_exts=[".sql"])
     def log_sql(**kwargs):
         logging.info("Python task decorator query: %s", str(kwargs["templates_dict"]["query"]))
 
-    log_the_sql = log_sql()
+    log_the_sql = PythonOperator(
+        task_id="log_sql_query",
+        python_callable=log_sql,
+        templates_dict={"query": "sql/sample.sql"},
+        templates_exts=[".sql"],
+    )
     # [END howto_operator_python_render_sql]
 
     # [START howto_operator_python_kwargs]
     # Generate 5 sleeping tasks, sleeping from 0.0 to 0.4 seconds respectively
-    for i in range(5):
-
-        @task(task_id=f"sleep_for_{i}")
-        def my_sleeping_function(random_base):
-            """This is a function that will run within the DAG execution"""
-            time.sleep(random_base)
+    def my_sleeping_function(random_base):
+        """This is a function that will run within the DAG execution"""
+        time.sleep(random_base)
 
-        sleeping_task = my_sleeping_function(random_base=i / 10)
+    for i in range(5):
+        sleeping_task = PythonOperator(
+            task_id=f"sleep_for_{i}", python_callable=my_sleeping_function, op_kwargs={"random_base": i / 10}
+        )
 
         run_this >> log_the_sql >> sleeping_task
     # [END howto_operator_python_kwargs]
@@ -85,9 +88,6 @@ def my_sleeping_function(random_base):
         log.warning("The virtalenv_python example task requires virtualenv, please install it.")
     else:
         # [START howto_operator_python_venv]
-        @task.virtualenv(
-            task_id="virtualenv_python", requirements=["colorama==0.4.0"], system_site_packages=False
-        )
         def callable_virtualenv():
             """
             Example function that will be performed in a virtual environment.
@@ -108,13 +108,17 @@ def callable_virtualenv():
                 sleep(1)
             print("Finished")
 
-        virtualenv_task = callable_virtualenv()
+        virtualenv_task = PythonVirtualenvOperator(
+            task_id="virtualenv_python",
+            python_callable=callable_virtualenv,
+            requirements=["colorama==0.4.0"],
+            system_site_packages=False,
+        )
         # [END howto_operator_python_venv]
 
         sleeping_task >> virtualenv_task
 
         # [START howto_operator_external_python]
-        @task.external_python(task_id="external_python", python=PATH_TO_PYTHON_BINARY)
         def callable_external_python():
             """
             Example function that will be performed in a virtual environment.
@@ -132,23 +136,11 @@ def callable_external_python():
                 sleep(1)
             print("Finished")
 
-        external_python_task = callable_external_python()
-        # [END howto_operator_external_python]
-
-        # [START howto_operator_external_python_classic]
-        external_classic = ExternalPythonOperator(
-            task_id="external_python_classic",
+        external_python_task = ExternalPythonOperator(
+            task_id="external_python",
+            python_callable=callable_external_python,
             python=PATH_TO_PYTHON_BINARY,
-            python_callable=x,
         )
-        # [END howto_operator_external_python_classic]
-
-        # [START howto_operator_python_venv_classic]
-        virtual_classic = PythonVirtualenvOperator(
-            task_id="virtualenv_classic",
-            requirements="colorama==0.4.0",
-            python_callable=x,
-        )
-        # [END howto_operator_python_venv_classic]
+        # [END howto_operator_external_python]
 
-        run_this >> external_classic >> external_python_task >> virtual_classic
+        run_this >> external_python_task >> virtualenv_task
diff --git a/airflow/example_dags/example_short_circuit_operator.py b/airflow/example_dags/example_short_circuit_operator.py
index 18a0a8d8509f9..23618d6dc4054 100644
--- a/airflow/example_dags/example_short_circuit_operator.py
+++ b/airflow/example_dags/example_short_circuit_operator.py
@@ -31,7 +31,8 @@
     start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
     catchup=False,
     tags=["example"],
-) as dag:
+):
+    # [START howto_operator_short_circuit]
     cond_true = ShortCircuitOperator(
         task_id="condition_is_True",
         python_callable=lambda: True,
@@ -47,7 +48,9 @@
 
     chain(cond_true, *ds_true)
     chain(cond_false, *ds_false)
+    # [END howto_operator_short_circuit]
 
+    # [START howto_operator_short_circuit_trigger_rules]
     [task_1, task_2, task_3, task_4, task_5, task_6] = [
         EmptyOperator(task_id=f"task_{i}") for i in range(1, 7)
     ]
@@ -59,3 +62,4 @@
     )
 
     chain(task_1, [task_2, short_circuit], [task_3, task_4], [task_5, task_6], task_7)
+    # [END howto_operator_short_circuit_trigger_rules]
diff --git a/airflow/example_dags/tutorial_objectstorage.py b/airflow/example_dags/tutorial_objectstorage.py
index 47db595c24475..4660aa3c8e8c1 100644
--- a/airflow/example_dags/tutorial_objectstorage.py
+++ b/airflow/example_dags/tutorial_objectstorage.py
@@ -43,11 +43,10 @@
 }
 
 # [START create_object_storage_path]
-base = ObjectStoragePath("s3://airflow-tutorial-data/", conn_id="aws_default")
+base = ObjectStoragePath("s3://aws_default@airflow-tutorial-data/")
 # [END create_object_storage_path]
 
 
-# [START instantiate_dag]
 @dag(
     schedule=None,
     start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
@@ -62,9 +61,6 @@ def tutorial_objectstorage():
     located
     [here](https://airflow.apache.org/docs/apache-airflow/stable/tutorial/objectstorage.html)
     """
-    # [END instantiate_dag]
-    import duckdb
-    import pandas as pd
 
     # [START get_air_quality_data]
     @task
@@ -74,6 +70,8 @@ def get_air_quality_data(**kwargs) -> ObjectStoragePath:
         This task gets air quality data from the Finnish Meteorological Institute's
         open data API. The data is saved as parquet.
         """
+        import pandas as pd
+
         execution_date = kwargs["logical_date"]
         start_time = kwargs["data_interval_start"]
 
@@ -113,6 +111,8 @@ def analyze(path: ObjectStoragePath, **kwargs):
         #### Analyze
         This task analyzes the air quality data, prints the results
         """
+        import duckdb
+
         conn = duckdb.connect(database=":memory:")
         conn.register_filesystem(path.fs)
         conn.execute(f"CREATE OR REPLACE TABLE airquality_urban AS SELECT * FROM read_parquet('{path}')")
diff --git a/airflow/executors/debug_executor.py b/airflow/executors/debug_executor.py
index be2b657b7556e..750b0ba20b033 100644
--- a/airflow/executors/debug_executor.py
+++ b/airflow/executors/debug_executor.py
@@ -74,7 +74,7 @@ def sync(self) -> None:
             elif self._terminated.is_set():
                 self.log.info("Executor is terminated! Stopping %s to %s", ti.key, TaskInstanceState.FAILED)
                 ti.set_state(TaskInstanceState.FAILED)
-                self.change_state(ti.key, TaskInstanceState.FAILED)
+                self.fail(ti.key)
             else:
                 task_succeeded = self._run_task(ti)
 
@@ -84,11 +84,11 @@ def _run_task(self, ti: TaskInstance) -> bool:
         try:
             params = self.tasks_params.pop(ti.key, {})
             ti.run(job_id=ti.job_id, **params)
-            self.change_state(key, TaskInstanceState.SUCCESS)
+            self.success(key)
             return True
         except Exception as e:
             ti.set_state(TaskInstanceState.FAILED)
-            self.change_state(key, TaskInstanceState.FAILED)
+            self.fail(key)
             self.log.exception("Failed to execute task: %s.", e)
             return False
 
diff --git a/airflow/executors/executor_constants.py b/airflow/executors/executor_constants.py
index ae8c69dea8494..5f8b0c0d727b5 100644
--- a/airflow/executors/executor_constants.py
+++ b/airflow/executors/executor_constants.py
@@ -21,7 +21,6 @@
 SEQUENTIAL_EXECUTOR = "SequentialExecutor"
 CELERY_EXECUTOR = "CeleryExecutor"
 CELERY_KUBERNETES_EXECUTOR = "CeleryKubernetesExecutor"
-DASK_EXECUTOR = "DaskExecutor"
 KUBERNETES_EXECUTOR = "KubernetesExecutor"
 DEBUG_EXECUTOR = "DebugExecutor"
 MOCK_EXECUTOR = "MockExecutor"
diff --git a/airflow/executors/executor_loader.py b/airflow/executors/executor_loader.py
index 73c1149515d0d..3420292f80dd7 100644
--- a/airflow/executors/executor_loader.py
+++ b/airflow/executors/executor_loader.py
@@ -28,7 +28,6 @@
 from airflow.executors.executor_constants import (
     CELERY_EXECUTOR,
     CELERY_KUBERNETES_EXECUTOR,
-    DASK_EXECUTOR,
     DEBUG_EXECUTOR,
     KUBERNETES_EXECUTOR,
     LOCAL_EXECUTOR,
@@ -64,7 +63,6 @@ class ExecutorLoader:
         CELERY_EXECUTOR: "airflow.providers.celery.executors.celery_executor.CeleryExecutor",
         CELERY_KUBERNETES_EXECUTOR: "airflow.providers.celery."
         "executors.celery_kubernetes_executor.CeleryKubernetesExecutor",
-        DASK_EXECUTOR: "airflow.providers.daskexecutor.executors.dask_executor.DaskExecutor",
         KUBERNETES_EXECUTOR: "airflow.providers.cncf.kubernetes."
         "executors.kubernetes_executor.KubernetesExecutor",
         DEBUG_EXECUTOR: "airflow.executors.debug_executor.DebugExecutor",
@@ -218,5 +216,4 @@ def __load_local_kubernetes_executor(cls) -> BaseExecutor:
 UNPICKLEABLE_EXECUTORS = (
     LOCAL_EXECUTOR,
     SEQUENTIAL_EXECUTOR,
-    DASK_EXECUTOR,
 )
diff --git a/airflow/executors/sequential_executor.py b/airflow/executors/sequential_executor.py
index 8ea3e42dc5b68..227bf879f306b 100644
--- a/airflow/executors/sequential_executor.py
+++ b/airflow/executors/sequential_executor.py
@@ -28,7 +28,6 @@
 from typing import TYPE_CHECKING, Any
 
 from airflow.executors.base_executor import BaseExecutor
-from airflow.utils.state import TaskInstanceState
 
 if TYPE_CHECKING:
     from airflow.executors.base_executor import CommandType
@@ -75,9 +74,9 @@ def sync(self) -> None:
 
             try:
                 subprocess.check_call(command, close_fds=True)
-                self.change_state(key, TaskInstanceState.SUCCESS)
+                self.success(key)
             except subprocess.CalledProcessError as e:
-                self.change_state(key, TaskInstanceState.FAILED)
+                self.fail(key)
                 self.log.error("Failed to execute task %s.", e)
 
         self.commands_to_run = []
diff --git a/airflow/io/__init__.py b/airflow/io/__init__.py
index b5425dfd205ae..b26d169090129 100644
--- a/airflow/io/__init__.py
+++ b/airflow/io/__init__.py
@@ -32,21 +32,24 @@
 if TYPE_CHECKING:
     from fsspec import AbstractFileSystem
 
+    from airflow.io.typedef import Properties
+
+
 log = logging.getLogger(__name__)
 
 
-def _file(_: str | None) -> LocalFileSystem:
-    return LocalFileSystem()
+def _file(_: str | None, storage_options: Properties) -> LocalFileSystem:
+    return LocalFileSystem(**storage_options)
 
 
 # builtin supported filesystems
-_BUILTIN_SCHEME_TO_FS: dict[str, Callable[[str | None], AbstractFileSystem]] = {
+_BUILTIN_SCHEME_TO_FS: dict[str, Callable[[str | None, Properties], AbstractFileSystem]] = {
     "file": _file,
 }
 
 
 @cache
-def _register_filesystems() -> dict[str, Callable[[str | None], AbstractFileSystem]]:
+def _register_filesystems() -> dict[str, Callable[[str | None, Properties], AbstractFileSystem]]:
     scheme_to_fs = _BUILTIN_SCHEME_TO_FS.copy()
     with Stats.timer("airflow.io.load_filesystems") as timer:
         manager = ProvidersManager()
@@ -65,20 +68,25 @@ def _register_filesystems() -> dict[str, Callable[[str | None], AbstractFileSyst
     return scheme_to_fs
 
 
-def get_fs(scheme: str, conn_id: str | None = None) -> AbstractFileSystem:
+def get_fs(
+    scheme: str, conn_id: str | None = None, storage_options: Properties | None = None
+) -> AbstractFileSystem:
     """
     Get a filesystem by scheme.
 
     :param scheme: the scheme to get the filesystem for
     :return: the filesystem method
     :param conn_id: the airflow connection id to use
+    :param storage_options: the storage options to pass to the filesystem
     """
     filesystems = _register_filesystems()
     try:
         fs = filesystems[scheme]
     except KeyError:
         raise ValueError(f"No filesystem registered for scheme {scheme}") from None
-    return fs(conn_id)
+
+    options = storage_options or {}
+    return fs(conn_id, options)
 
 
 def has_fs(scheme: str) -> bool:
diff --git a/airflow/io/path.py b/airflow/io/path.py
index f5eeb14eff043..ed5ab664ebe59 100644
--- a/airflow/io/path.py
+++ b/airflow/io/path.py
@@ -40,6 +40,8 @@
 
 PT = typing.TypeVar("PT", bound="ObjectStoragePath")
 
+default = "file"
+
 
 class _AirflowCloudAccessor(_CloudAccessor):
     __slots__ = ("_store",)
@@ -70,7 +72,7 @@ class ObjectStoragePath(CloudPath):
 
     __version__: typing.ClassVar[int] = 1
 
-    _default_accessor: type[_CloudAccessor] = _AirflowCloudAccessor
+    _default_accessor = _AirflowCloudAccessor
 
     sep: typing.ClassVar[str] = "/"
     root_marker: typing.ClassVar[str] = "/"
@@ -92,6 +94,7 @@ def __new__(
         cls: type[PT],
         *args: str | os.PathLike,
         scheme: str | None = None,
+        conn_id: str | None = None,
         **kwargs: typing.Any,
     ) -> PT:
         args_list = list(args)
@@ -137,11 +140,21 @@ def __new__(
         else:
             args_list.insert(0, parsed_url.path)
 
-        return cls._from_parts(args_list, url=parsed_url, **kwargs)  # type: ignore
+        # This matches the parsing logic in urllib.parse; see:
+        # https://github.com/python/cpython/blob/46adf6b701c440e047abf925df9a75a/Lib/urllib/parse.py#L194-L203
+        userinfo, have_info, hostinfo = parsed_url.netloc.rpartition("@")
+        if have_info:
+            conn_id = conn_id or userinfo or None
+            parsed_url = parsed_url._replace(netloc=hostinfo)
+
+        return cls._from_parts(args_list, url=parsed_url, conn_id=conn_id, **kwargs)  # type: ignore
 
     @functools.lru_cache
     def __hash__(self) -> int:
-        return hash(self._bucket)
+        return hash(str(self))
+
+    def __eq__(self, other: typing.Any) -> bool:
+        return self.samestore(other) and str(self) == str(other)
 
     def samestore(self, other: typing.Any) -> bool:
         return isinstance(other, ObjectStoragePath) and self._accessor == other._accessor
@@ -378,10 +391,14 @@ def move(self, path: str | ObjectStoragePath, recursive: bool = False, **kwargs)
         self.copy(path, recursive=recursive, **kwargs)
         self.unlink()
 
-    def serialize(self) -> dict[str, str]:
+    def serialize(self) -> dict[str, typing.Any]:
+        _kwargs = self._kwargs.copy()
+        conn_id = _kwargs.pop("conn_id", None)
+
         return {
             "path": str(self),
-            **self._kwargs,
+            "conn_id": conn_id,
+            "kwargs": _kwargs,
         }
 
     @classmethod
@@ -389,5 +406,8 @@ def deserialize(cls, data: dict, version: int) -> ObjectStoragePath:
         if version > cls.__version__:
             raise ValueError(f"Cannot deserialize version {version} with version {cls.__version__}.")
 
+        _kwargs = data.pop("kwargs")
         path = data.pop("path")
-        return ObjectStoragePath(path, **data)
+        conn_id = data.pop("conn_id", None)
+
+        return ObjectStoragePath(path, conn_id=conn_id, **_kwargs)
diff --git a/airflow/io/store/__init__.py b/airflow/io/store/__init__.py
index 6bf40c939f734..bc9e0cd87dfdd 100644
--- a/airflow/io/store/__init__.py
+++ b/airflow/io/store/__init__.py
@@ -24,6 +24,8 @@
 if TYPE_CHECKING:
     from fsspec import AbstractFileSystem
 
+    from airflow.io.typedef import Properties
+
 
 class ObjectStore:
     """Manages a filesystem or object storage."""
@@ -33,13 +35,21 @@ class ObjectStore:
     method: str
     conn_id: str | None
     protocol: str
+    storage_options: Properties | None
 
     _fs: AbstractFileSystem | None = None
 
-    def __init__(self, protocol: str, conn_id: str | None, fs: AbstractFileSystem | None = None):
+    def __init__(
+        self,
+        protocol: str,
+        conn_id: str | None,
+        fs: AbstractFileSystem | None = None,
+        storage_options: Properties | None = None,
+    ):
         self.conn_id = conn_id
         self.protocol = protocol
         self._fs = fs
+        self.storage_options = storage_options
 
     def __str__(self):
         return f"{self.protocol}-{self.conn_id}" if self.conn_id else self.protocol
@@ -69,6 +79,7 @@ def serialize(self):
             "protocol": self.protocol,
             "conn_id": self.conn_id,
             "filesystem": qualname(self._fs) if self._fs else None,
+            "storage_options": self.storage_options,
         }
 
     @classmethod
@@ -90,7 +101,7 @@ def deserialize(cls, data: dict[str, str], version: int):
                 f"protocol {data['protocol']}. Please use attach() for this protocol and filesystem."
             )
 
-        return attach(protocol=protocol, conn_id=conn_id)
+        return attach(protocol=protocol, conn_id=conn_id, storage_options=data["storage_options"])
 
     def _connect(self) -> AbstractFileSystem:
         if self._fs is None:
@@ -110,6 +121,7 @@ def attach(
     alias: str | None = None,
     encryption_type: str | None = "",
     fs: AbstractFileSystem | None = None,
+    **kwargs,
 ) -> ObjectStore:
     """
     Attach a filesystem or object storage.
@@ -131,9 +143,9 @@ def attach(
 
     if not alias:
         alias = f"{protocol}-{conn_id}" if conn_id else protocol
-        if store := _STORE_CACHE.get(alias, None):
+        if store := _STORE_CACHE.get(alias):
             return store
 
-    _STORE_CACHE[alias] = store = ObjectStore(protocol=protocol, conn_id=conn_id, fs=fs)
+    _STORE_CACHE[alias] = store = ObjectStore(protocol=protocol, conn_id=conn_id, fs=fs, **kwargs)
 
     return store
diff --git a/airflow/io/typedef.py b/airflow/io/typedef.py
new file mode 100644
index 0000000000000..3fd92564fc1c3
--- /dev/null
+++ b/airflow/io/typedef.py
@@ -0,0 +1,21 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from typing import Dict
+
+Properties = Dict[str, str]
diff --git a/airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py b/airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py
new file mode 100644
index 0000000000000..02878ccb93fd2
--- /dev/null
+++ b/airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py
@@ -0,0 +1,54 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+
+"""Add processor_subdir to ImportError.
+
+Revision ID: 10b52ebd31f7
+Revises: bd5dfbe21f88
+Create Date: 2023-11-29 16:54:48.101834
+
+"""
+
+import sqlalchemy as sa
+from alembic import op
+
+
+# revision identifiers, used by Alembic.
+revision = "10b52ebd31f7"
+down_revision = "bd5dfbe21f88"
+branch_labels = None
+depends_on = None
+airflow_version = "2.8.0"
+
+
+def upgrade():
+    """Apply Add processor_subdir to ImportError."""
+    conn = op.get_bind()
+
+    with op.batch_alter_table("import_error") as batch_op:
+        if conn.dialect.name == "mysql":
+            batch_op.add_column(sa.Column("processor_subdir", sa.Text(length=2000), nullable=True))
+        else:
+            batch_op.add_column(sa.Column("processor_subdir", sa.String(length=2000), nullable=True))
+
+
+def downgrade():
+    """Unapply Add processor_subdir to ImportError."""
+    conn = op.get_bind()
+    with op.batch_alter_table("import_error", schema=None) as batch_op:
+        batch_op.drop_column("processor_subdir")
diff --git a/airflow/models/connection.py b/airflow/models/connection.py
index 1e835b4673dab..4e8e3c7aaf282 100644
--- a/airflow/models/connection.py
+++ b/airflow/models/connection.py
@@ -478,10 +478,7 @@ def get_connection_from_secrets(cls, conn_id: str) -> Connection:
 
         raise AirflowNotFoundException(f"The conn_id `{conn_id}` isn't defined")
 
-    def to_dict(self) -> dict[str, Any]:
-        return {"conn_id": self.conn_id, "description": self.description, "uri": self.get_uri()}
-
-    def to_json_dict(self, *, prune_empty: bool = False, validate: bool = True) -> dict[str, Any]:
+    def to_dict(self, *, prune_empty: bool = False, validate: bool = True) -> dict[str, Any]:
         """
         Convert Connection to json-serializable dictionary.
 
@@ -528,6 +525,6 @@ def from_json(cls, value, conn_id=None) -> Connection:
 
     def as_json(self) -> str:
         """Convert Connection to JSON-string object."""
-        conn = self.to_json_dict(prune_empty=True, validate=False)
-        conn.pop("conn_id", None)
-        return json.dumps(conn)
+        conn_repr = self.to_dict(prune_empty=True, validate=False)
+        conn_repr.pop("conn_id", None)
+        return json.dumps(conn_repr)
diff --git a/airflow/models/dag.py b/airflow/models/dag.py
index 26c83754a877c..654bc85cae8b8 100644
--- a/airflow/models/dag.py
+++ b/airflow/models/dag.py
@@ -17,7 +17,8 @@
 # under the License.
 from __future__ import annotations
 
-import collections.abc
+import asyncio
+import collections
 import copy
 import functools
 import itertools
@@ -31,6 +32,7 @@
 import warnings
 import weakref
 from collections import deque
+from contextlib import ExitStack
 from datetime import datetime, timedelta
 from inspect import signature
 from typing import (
@@ -82,11 +84,11 @@
 from airflow.exceptions import (
     AirflowDagInconsistent,
     AirflowException,
-    AirflowSkipException,
     DuplicateTaskIdFound,
     FailStopDagInvalidTriggerRule,
     ParamValidationError,
     RemovedInAirflow3Warning,
+    TaskDeferred,
     TaskNotFound,
 )
 from airflow.jobs.job import run_job
@@ -101,7 +103,6 @@
     Context,
     TaskInstance,
     TaskInstanceKey,
-    TaskReturnCode,
     clear_task_instances,
 )
 from airflow.secrets.local_filesystem import LocalFilesystemBackend
@@ -285,12 +286,11 @@ def get_dataset_triggered_next_run_info(
     }
 
 
-class _StopDagTest(Exception):
-    """
-    Raise when DAG.test should stop immediately.
+def _triggerer_is_healthy():
+    from airflow.jobs.triggerer_job_runner import TriggererJobRunner
 
-    :meta private:
-    """
+    job = TriggererJobRunner.most_recent_job()
+    return job and job.is_alive()
 
 
 @functools.total_ordering
@@ -548,6 +548,13 @@ def __init__(
 
         # sort out DAG's scheduling behavior
         scheduling_args = [schedule_interval, timetable, schedule]
+
+        has_scheduling_args = any(a is not NOTSET and bool(a) for a in scheduling_args)
+        has_empty_start_date = not ("start_date" in self.default_args or self.start_date)
+
+        if has_scheduling_args and has_empty_start_date:
+            raise ValueError("DAG is missing the start_date parameter")
+
         if not at_most_one(*scheduling_args):
             raise ValueError("At most one allowed for args 'schedule_interval', 'timetable', and 'schedule'.")
         if schedule_interval is not NOTSET:
@@ -841,16 +848,35 @@ def date_range(
         return [info.logical_date for info in it]
 
     def is_fixed_time_schedule(self):
+        """Figures out if the schedule has a fixed time (e.g. 3 AM every day).
+
+        Detection is done by "peeking" the next two cron trigger time; if the
+        two times have the same minute and hour value, the schedule is fixed,
+        and we *don't* need to perform the DST fix.
+
+        This assumes DST happens on whole minute changes (e.g. 12:59 -> 12:00).
+
+        Do not try to understand what this actually means. It is old logic that
+        should not be used anywhere.
+        """
         warnings.warn(
             "`DAG.is_fixed_time_schedule()` is deprecated.",
             category=RemovedInAirflow3Warning,
             stacklevel=2,
         )
-        try:
-            return not self.timetable._should_fix_dst
-        except AttributeError:
+
+        from airflow.timetables._cron import CronMixin
+
+        if not isinstance(self.timetable, CronMixin):
             return True
 
+        from croniter import croniter
+
+        cron = croniter(self.timetable._expression)
+        next_a = cron.get_next(datetime.datetime)
+        next_b = cron.get_next(datetime.datetime)
+        return next_b.minute == next_a.minute and next_b.hour == next_a.hour
+
     def following_schedule(self, dttm):
         """
         Calculate the following schedule for this dag in UTC.
@@ -2618,10 +2644,8 @@ def add_task(self, task: Operator) -> None:
 
         from airflow.utils.task_group import TaskGroupContext
 
-        if not self.start_date and not task.start_date:
-            raise AirflowException("DAG is missing the start_date parameter")
         # if the task has no start date, assign it the same as the DAG
-        elif not task.start_date:
+        if not task.start_date:
             task.start_date = self.start_date
         # otherwise, the task will start on the later of its own start date and
         # the DAG's start date
@@ -2798,72 +2822,63 @@ def add_logger_if_needed(ti: TaskInstance):
                 self.log.debug("Adding Streamhandler to taskinstance %s", ti.task_id)
                 ti.log.addHandler(handler)
 
+        exit_stack = ExitStack()
         if conn_file_path or variable_file_path:
             local_secrets = LocalFilesystemBackend(
                 variables_file_path=variable_file_path, connections_file_path=conn_file_path
             )
             secrets_backend_list.insert(0, local_secrets)
+            exit_stack.callback(lambda: secrets_backend_list.pop(0))
+
+        with exit_stack:
+            execution_date = execution_date or timezone.utcnow()
+            self.validate()
+            self.log.debug("Clearing existing task instances for execution date %s", execution_date)
+            self.clear(
+                start_date=execution_date,
+                end_date=execution_date,
+                dag_run_state=False,  # type: ignore
+                session=session,
+            )
+            self.log.debug("Getting dagrun for dag %s", self.dag_id)
+            logical_date = timezone.coerce_datetime(execution_date)
+            data_interval = self.timetable.infer_manual_data_interval(run_after=logical_date)
+            dr: DagRun = _get_or_create_dagrun(
+                dag=self,
+                start_date=execution_date,
+                execution_date=execution_date,
+                run_id=DagRun.generate_run_id(DagRunType.MANUAL, execution_date),
+                session=session,
+                conf=run_conf,
+                data_interval=data_interval,
+            )
 
-        execution_date = execution_date or timezone.utcnow()
-        self.validate()
-        self.log.debug("Clearing existing task instances for execution date %s", execution_date)
-        self.clear(
-            start_date=execution_date,
-            end_date=execution_date,
-            dag_run_state=False,  # type: ignore
-            session=session,
-        )
-        self.log.debug("Getting dagrun for dag %s", self.dag_id)
-        logical_date = timezone.coerce_datetime(execution_date)
-        data_interval = self.timetable.infer_manual_data_interval(run_after=logical_date)
-        dr: DagRun = _get_or_create_dagrun(
-            dag=self,
-            start_date=execution_date,
-            execution_date=execution_date,
-            run_id=DagRun.generate_run_id(DagRunType.MANUAL, execution_date),
-            session=session,
-            conf=run_conf,
-            data_interval=data_interval,
-        )
-
-        tasks = self.task_dict
-        self.log.debug("starting dagrun")
-        # Instead of starting a scheduler, we run the minimal loop possible to check
-        # for task readiness and dependency management. This is notably faster
-        # than creating a BackfillJob and allows us to surface logs to the user
-        while dr.state == DagRunState.RUNNING:
-            session.expire_all()
-            schedulable_tis, _ = dr.update_state(session=session)
-            for s in schedulable_tis:
-                s.state = TaskInstanceState.SCHEDULED
-            session.commit()
-            # triggerer may mark tasks scheduled so we read from DB
-            all_tis = set(dr.get_task_instances(session=session))
-            scheduled_tis = {x for x in all_tis if x.state == TaskInstanceState.SCHEDULED}
-            ids_unrunnable = {x for x in all_tis if x.state not in State.finished} - scheduled_tis
-            if not scheduled_tis and ids_unrunnable:
-                self.log.warning("No tasks to run. unrunnable tasks: %s", ids_unrunnable)
-                time.sleep(1)
-            for ti in scheduled_tis:
-                try:
-                    add_logger_if_needed(ti)
-                    ti.task = tasks[ti.task_id]
-                    ret = _run_task(ti, session=session)
-                    if ret is TaskReturnCode.DEFERRED:
-                        if not _triggerer_is_healthy():
-                            raise _StopDagTest(
-                                "Task has deferred but triggerer component is not running. "
-                                "You can start the triggerer by running `airflow triggerer` in a terminal."
-                            )
-                except _StopDagTest:
-                    # Let this exception bubble out and not be swallowed by the
-                    # except block below.
-                    raise
-                except Exception:
-                    self.log.exception("Task failed; ti=%s", ti)
-        if conn_file_path or variable_file_path:
-            # Remove the local variables we have added to the secrets_backend_list
-            secrets_backend_list.pop(0)
+            tasks = self.task_dict
+            self.log.debug("starting dagrun")
+            # Instead of starting a scheduler, we run the minimal loop possible to check
+            # for task readiness and dependency management. This is notably faster
+            # than creating a BackfillJob and allows us to surface logs to the user
+            while dr.state == DagRunState.RUNNING:
+                session.expire_all()
+                schedulable_tis, _ = dr.update_state(session=session)
+                for s in schedulable_tis:
+                    s.state = TaskInstanceState.SCHEDULED
+                session.commit()
+                # triggerer may mark tasks scheduled so we read from DB
+                all_tis = set(dr.get_task_instances(session=session))
+                scheduled_tis = {x for x in all_tis if x.state == TaskInstanceState.SCHEDULED}
+                ids_unrunnable = {x for x in all_tis if x.state not in State.finished} - scheduled_tis
+                if not scheduled_tis and ids_unrunnable:
+                    self.log.warning("No tasks to run. unrunnable tasks: %s", ids_unrunnable)
+                    time.sleep(1)
+                triggerer_running = _triggerer_is_healthy()
+                for ti in scheduled_tis:
+                    try:
+                        add_logger_if_needed(ti)
+                        ti.task = tasks[ti.task_id]
+                        _run_task(ti=ti, inline_trigger=not triggerer_running, session=session)
+                    except Exception:
+                        self.log.exception("Task failed; ti=%s", ti)
         return dr
 
     @provide_session
@@ -3992,14 +4007,15 @@ def get_current_dag(cls) -> DAG | None:
             return None
 
 
-def _triggerer_is_healthy():
-    from airflow.jobs.triggerer_job_runner import TriggererJobRunner
+def _run_trigger(trigger):
+    async def _run_trigger_main():
+        async for event in trigger.run():
+            return event
 
-    job = TriggererJobRunner.most_recent_job()
-    return job and job.is_alive()
+    return asyncio.run(_run_trigger_main())
 
 
-def _run_task(ti: TaskInstance, session) -> TaskReturnCode | None:
+def _run_task(*, ti: TaskInstance, inline_trigger: bool = False, session: Session):
     """
     Run a single task instance, and push result to Xcom for downstream tasks.
 
@@ -4009,20 +4025,21 @@ def _run_task(ti: TaskInstance, session) -> TaskReturnCode | None:
     Args:
         ti: TaskInstance to run
     """
-    ret = None
-    log.info("*****************************************************")
-    if ti.map_index > 0:
-        log.info("Running task %s index %d", ti.task_id, ti.map_index)
-    else:
-        log.info("Running task %s", ti.task_id)
-    try:
-        ret = ti._run_raw_task(session=session)
-        session.flush()
-        log.info("%s ran successfully!", ti.task_id)
-    except AirflowSkipException:
-        log.info("Task Skipped, continuing")
-    log.info("*****************************************************")
-    return ret
+    log.info("[DAG TEST] starting task_id=%s map_index=%s", ti.task_id, ti.map_index)
+    while True:
+        try:
+            log.info("[DAG TEST] running task %s", ti)
+            ti._run_raw_task(session=session, raise_on_defer=inline_trigger)
+            break
+        except TaskDeferred as e:
+            log.info("[DAG TEST] running trigger in line")
+            event = _run_trigger(e.trigger)
+            ti.next_method = e.method_name
+            ti.next_kwargs = {"event": event.payload} if event else e.kwargs
+            log.info("[DAG TEST] Trigger completed")
+        session.merge(ti)
+        session.commit()
+    log.info("[DAG TEST] end task task_id=%s map_index=%s", ti.task_id, ti.map_index)
 
 
 def _get_or_create_dagrun(
diff --git a/airflow/models/dagrun.py b/airflow/models/dagrun.py
index 898d2663903ce..a611155ddaf84 100644
--- a/airflow/models/dagrun.py
+++ b/airflow/models/dagrun.py
@@ -18,7 +18,6 @@
 from __future__ import annotations
 
 import itertools
-import json
 import os
 import warnings
 from collections import defaultdict
@@ -79,6 +78,7 @@
     from airflow.models.operator import Operator
     from airflow.serialization.pydantic.dag_run import DagRunPydantic
     from airflow.serialization.pydantic.taskinstance import TaskInstancePydantic
+    from airflow.serialization.pydantic.tasklog import LogTemplatePydantic
     from airflow.typing_compat import Literal
     from airflow.utils.types import ArgNotSet
 
@@ -98,37 +98,6 @@ class TISchedulingDecision(NamedTuple):
     finished_tis: list[TI]
 
 
-class ConfDict(dict):
-    """Custom dictionary for storing only JSON serializable values."""
-
-    def __init__(self, val=None):
-        super().__init__(self.is_jsonable(val))
-
-    def __setitem__(self, key, value):
-        self.is_jsonable({key: value})
-        super().__setitem__(key, value)
-
-    @staticmethod
-    def is_jsonable(conf: dict) -> dict | None:
-        """Prevent setting non-json attributes."""
-        try:
-            json.dumps(conf)
-        except TypeError:
-            raise AirflowException("Cannot assign non JSON Serializable value")
-        if isinstance(conf, dict):
-            return conf
-        else:
-            raise AirflowException(f"Object of type {type(conf)} must be a dict")
-
-    @staticmethod
-    def dump_check(conf: str) -> str:
-        val = json.loads(conf)
-        if isinstance(val, dict):
-            return conf
-        else:
-            raise TypeError(f"Object of type {type(val)} must be a dict")
-
-
 def _creator_note(val):
     """Creator the ``note`` association proxy."""
     if isinstance(val, str):
@@ -159,7 +128,7 @@ class DagRun(Base, LoggingMixin):
     creating_job_id = Column(Integer)
     external_trigger = Column(Boolean, default=True)
     run_type = Column(String(50), nullable=False)
-    _conf = Column("conf", PickleType)
+    conf = Column(PickleType)
     # These two must be either both NULL or both datetime.
     data_interval_start = Column(UtcDateTime)
     data_interval_end = Column(UtcDateTime)
@@ -261,12 +230,7 @@ def __init__(
         self.execution_date = execution_date
         self.start_date = start_date
         self.external_trigger = external_trigger
-
-        if isinstance(conf, str):
-            self._conf = ConfDict.dump_check(conf)
-        else:
-            self._conf = ConfDict(conf or {})
-
+        self.conf = conf or {}
         if state is not None:
             self.state = state
         if queued_at is NOTSET:
@@ -296,16 +260,6 @@ def validate_run_id(self, key: str, run_id: str) -> str | None:
             )
         return run_id
 
-    def get_conf(self):
-        return self._conf
-
-    def set_conf(self, value):
-        self._conf = ConfDict(value)
-
-    @declared_attr
-    def conf(self):
-        return synonym("_conf", descriptor=property(self.get_conf, self.set_conf))
-
     @property
     def stats_tags(self) -> dict[str, str]:
         return prune_dict({"dag_id": self.dag_id, "run_type": self.run_type})
@@ -1116,7 +1070,7 @@ def verify_integrity(self, *, session: Session = NEW_SESSION) -> None:
         def task_filter(task: Operator) -> bool:
             return task.task_id not in task_ids and (
                 self.is_backfill
-                or task.start_date <= self.execution_date
+                or (task.start_date is None or task.start_date <= self.execution_date)
                 and (task.end_date is None or self.execution_date <= task.end_date)
             )
 
@@ -1507,14 +1461,23 @@ def schedule_tis(
         return count
 
     @provide_session
-    def get_log_template(self, *, session: Session = NEW_SESSION) -> LogTemplate:
-        if self.log_template_id is None:  # DagRun created before LogTemplate introduction.
+    def get_log_template(self, *, session: Session = NEW_SESSION) -> LogTemplate | LogTemplatePydantic:
+        return DagRun._get_log_template(log_template_id=self.log_template_id, session=session)
+
+    @staticmethod
+    @internal_api_call
+    @provide_session
+    def _get_log_template(
+        log_template_id: int | None, session: Session = NEW_SESSION
+    ) -> LogTemplate | LogTemplatePydantic:
+        template: LogTemplate | None
+        if log_template_id is None:  # DagRun created before LogTemplate introduction.
             template = session.scalar(select(LogTemplate).order_by(LogTemplate.id).limit(1))
         else:
-            template = session.get(LogTemplate, self.log_template_id)
+            template = session.get(LogTemplate, log_template_id)
         if template is None:
             raise AirflowException(
-                f"No log_template entry found for ID {self.log_template_id!r}. "
+                f"No log_template entry found for ID {log_template_id!r}. "
                 f"Please make sure you set up the metadatabase correctly."
             )
         return template
diff --git a/airflow/models/errors.py b/airflow/models/errors.py
index 9d2da0917d98f..ed76c6c35501b 100644
--- a/airflow/models/errors.py
+++ b/airflow/models/errors.py
@@ -31,3 +31,4 @@ class ImportError(Base):
     timestamp = Column(UtcDateTime)
     filename = Column(String(1024))
     stacktrace = Column(Text)
+    processor_subdir = Column(String(2000), nullable=True)
diff --git a/airflow/models/taskinstance.py b/airflow/models/taskinstance.py
index 95a2f5945fc04..f041dcf208949 100644
--- a/airflow/models/taskinstance.py
+++ b/airflow/models/taskinstance.py
@@ -2284,6 +2284,7 @@ def _run_raw_task(
         test_mode: bool = False,
         job_id: str | None = None,
         pool: str | None = None,
+        raise_on_defer: bool = False,
         session: Session = NEW_SESSION,
     ) -> TaskReturnCode | None:
         """
@@ -2338,6 +2339,8 @@ def _run_raw_task(
             except TaskDeferred as defer:
                 # The task has signalled it wants to defer execution based on
                 # a trigger.
+                if raise_on_defer:
+                    raise
                 self._defer_task(defer=defer, session=session)
                 self.log.info(
                     "Pausing task as DEFERRED. dag_id=%s, task_id=%s, execution_date=%s, start_date=%s",
diff --git a/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst b/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst
index 0fd2e16215c17..40cbd5ff617d3 100644
--- a/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst
+++ b/airflow/providers/MANAGING_PROVIDERS_LIFECYCLE.rst
@@ -109,6 +109,64 @@ breeze and I'll run unit tests for my Hook.
 
       root@fafd8d630e46:/opt/airflow# python -m pytest tests/providers/<NEW_PROVIDER>/hook/<NEW_PROVIDER>.py
 
+Adding chicken-egg providers
+----------------------------
+
+Sometimes we want to release provider that depends on the version of airflow that has not yet been released
+- for example when we released ``common.io`` provider it had ``apache-airflow>=2.8.0`` dependency. This
+creates problem when generating constraints and building docker image for pre-release versions of
+Airflow - because ``pip`` does not recognize the ``.dev0`` or ``.b1`` suffixes of those packages as
+valid in the ``>=X.Y.Z`` comparison. So when you want to install a provider package with
+``apache-airflow>=2.8.0`` requirement and you have ``2.8.0.dev0`` airflow package, ``pip`` will not
+install the package, because it does not recognize ``2.8.0.dev0`` as a valid version for ``>=2.8.0``
+dependency. This is because ``pip`` currently implements the minimum version selection algorithm
+requirement specified in packaging as described in the packaging version specification
+https://packaging.python.org/en/latest/specifications/version-specifiers/#handling-of-pre-releases
+Currently ``pip`` only allows to include pre-release versions for all installed packages using ``--pre``
+flag, but it does not have the possibility of selectively using this flag to only one package.
+In order to implement our desired behaviour, we need the case where only ``apache-airflow`` is considered
+as pre-release version while all the other dependencies only have stable versions and this is currently
+not possible.
+
+To work around this limitation, we have introduced the concept of "chicken-egg" providers. Those providers
+are providers that are released together with the version of Airflow they depend on. They are released
+with the same version number as the Airflow version they depend on, but with a different suffix. For example
+``apache-airflow-providers-common-io==2.8.0.dev0`` is a chicken-egg provider for ``apache-airflow==2.8.0.dev0``.
+
+However - we should not release those providers to ``pypi``, so in order to allow our CI to work with
+pre-release versions and perform both - constraint generation and image releasing, we introduced workarounds
+in our tooling where in case we build a pre-release version of Airflow, we will locally build the
+chicken-egg providers from sources and they are installed from local directory instead of from PyPI.
+
+This is controlled by ``chicken_egg_providers`` property in Selective Checks - and our CI will automatically
+build and use those chicken-egg providers during the CI process if pre-release version of Airflow is built.
+
+The code responsible for that is in ``src/airflow_breeze/utils/selective_checks.py``:
+
+.. code-block:: python
+
+    @cached_property
+    def chicken_egg_providers(self) -> str:
+        """Space separated list of providers with chicken-egg problem and should be built from sources."""
+        return "common.io"
+
+This list should be kept here until the official version of Airflow the chicken-egg-providers depend on
+is released and the version of airflow is updated in the ``main`` and ``v2-X-Y`` branch to ``2.X+1.0.dev0``
+and ``2.X.1.dev0`` respectively. After that the chicken-egg providers will be correctly installed because
+both ``2.X.1.dev0`` and ``2.X+1.0.dev0`` are considered by ``pip`` as ``>2.X.0`` (unlike ``2.X.0.dev0``).
+
+This workaround might be removed if ``pip`` implements the possibility of selectively using ``--pre`` flag
+for only one package (Which is foreseen as a possibility in the packaging specification but not implemented
+by ``pip``).
+
+.. note::
+
+   The current solution of building pre-release images will not work well if the chicken-egg-provider is
+   pre-installed package because slim imges will not use the chicken-egg-provider. This could be solved
+   by adding ``--chicken-egg-providers`` flag to slim image building step in ``released_dockerhub_image.yml``
+   but it would also require filtering out the non-pre-installed packages from it, so the current solution
+   is to assume pre-installed packages are not chicken-egg providers.
+
 Integration tests
 -----------------
 
diff --git a/airflow/providers/amazon/aws/auth_manager/avp/__init__.py b/airflow/providers/amazon/aws/auth_manager/avp/__init__.py
new file mode 100644
index 0000000000000..13a83393a9124
--- /dev/null
+++ b/airflow/providers/amazon/aws/auth_manager/avp/__init__.py
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
diff --git a/airflow/providers/amazon/aws/auth_manager/avp/entities.py b/airflow/providers/amazon/aws/auth_manager/avp/entities.py
new file mode 100644
index 0000000000000..fad5ee1c3ff59
--- /dev/null
+++ b/airflow/providers/amazon/aws/auth_manager/avp/entities.py
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from enum import Enum
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from airflow.auth.managers.base_auth_manager import ResourceMethod
+
+AVP_PREFIX_ENTITIES = "Airflow::"
+
+
+class AvpEntities(Enum):
+    """Enum of Amazon Verified Permissions entities."""
+
+    ACTION = "Action"
+    ROLE = "Role"
+    VARIABLE = "Variable"
+    USER = "User"
+
+
+def get_entity_type(resource_type: AvpEntities) -> str:
+    """
+    Return entity type.
+
+    :param resource_type: Resource type.
+
+    Example: Airflow::Action, Airflow::Role, Airflow::Variable, Airflow::User.
+    """
+    return AVP_PREFIX_ENTITIES + resource_type.value
+
+
+def get_action_id(resource_type: AvpEntities, method: ResourceMethod):
+    """
+    Return action id.
+
+    Convention for action ID is <resource_type>::<method>. Example: Variable::GET.
+
+    :param resource_type: Resource type.
+    :param method: Resource method.
+    """
+    return f"{resource_type.value}::{method}"
diff --git a/airflow/providers/amazon/aws/auth_manager/avp/facade.py b/airflow/providers/amazon/aws/auth_manager/avp/facade.py
new file mode 100644
index 0000000000000..63ed9f5c70321
--- /dev/null
+++ b/airflow/providers/amazon/aws/auth_manager/avp/facade.py
@@ -0,0 +1,126 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from functools import cached_property
+from typing import TYPE_CHECKING, Callable
+
+from airflow.configuration import conf
+from airflow.exceptions import AirflowException
+from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities, get_action_id, get_entity_type
+from airflow.providers.amazon.aws.auth_manager.constants import (
+    CONF_AVP_POLICY_STORE_ID_KEY,
+    CONF_CONN_ID_KEY,
+    CONF_SECTION_NAME,
+)
+from airflow.providers.amazon.aws.hooks.verified_permissions import VerifiedPermissionsHook
+from airflow.utils.log.logging_mixin import LoggingMixin
+
+if TYPE_CHECKING:
+    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.providers.amazon.aws.auth_manager.user import AwsAuthManagerUser
+
+
+class AwsAuthManagerAmazonVerifiedPermissionsFacade(LoggingMixin):
+    """
+    Facade for Amazon Verified Permissions.
+
+    Used as an intermediate layer between AWS auth manager and Amazon Verified Permissions.
+    """
+
+    @cached_property
+    def avp_client(self):
+        """Build Amazon Verified Permissions client."""
+        aws_conn_id = conf.get(CONF_SECTION_NAME, CONF_CONN_ID_KEY)
+        return VerifiedPermissionsHook(aws_conn_id=aws_conn_id).conn
+
+    @cached_property
+    def avp_policy_store_id(self):
+        """Get the Amazon Verified Permission policy store ID from config."""
+        return conf.get_mandatory_value(CONF_SECTION_NAME, CONF_AVP_POLICY_STORE_ID_KEY)
+
+    def is_authorized(
+        self,
+        *,
+        method: ResourceMethod,
+        entity_type: AvpEntities,
+        user: AwsAuthManagerUser,
+        entity_id: str | None = None,
+        entity_fetcher: Callable | None = None,
+    ) -> bool:
+        """
+        Make an authorization decision against Amazon Verified Permissions.
+
+        Check whether the user has permissions to access given resource.
+
+        :param method: the method to perform
+        :param entity_type: the entity type the user accesses
+        :param user: the user
+        :param entity_id: the entity ID the user accesses. If not provided, all entities of the type will be
+            considered.
+        :param entity_fetcher: function that returns list of entities to be passed to Amazon Verified
+            Permissions. Only needed if some resource properties are used in the policies (e.g. DAG folder).
+        """
+        entity_list = self._get_user_role_entities(user)
+        if entity_fetcher and entity_id:
+            # If no entity ID is provided, there is no need to fetch entities.
+            # We just need to know whether the user has permissions to access all resources from this type
+            entity_list += entity_fetcher()
+
+        self.log.debug(
+            "Making authorization request for user=%s, method=%s, entity_type=%s, entity_id=%s",
+            user.get_id(),
+            method,
+            entity_type,
+            entity_id,
+        )
+
+        resp = self.avp_client.is_authorized(
+            policyStoreId=self.avp_policy_store_id,
+            principal={"entityType": get_entity_type(AvpEntities.USER), "entityId": user.get_id()},
+            action={
+                "actionType": get_entity_type(AvpEntities.ACTION),
+                "actionId": get_action_id(entity_type, method),
+            },
+            resource={"entityType": get_entity_type(entity_type), "entityId": entity_id or "*"},
+            entities={"entityList": entity_list},
+        )
+
+        self.log.debug("Authorization response: %s", resp)
+
+        if len(resp.get("errors", [])) > 0:
+            self.log.error(
+                "Error occurred while making an authorization decision. Errors: %s", resp["errors"]
+            )
+            raise AirflowException("Error occurred while making an authorization decision.")
+
+        return resp["decision"] == "ALLOW"
+
+    @staticmethod
+    def _get_user_role_entities(user: AwsAuthManagerUser) -> list[dict]:
+        user_entity = {
+            "identifier": {"entityType": get_entity_type(AvpEntities.USER), "entityId": user.get_id()},
+            "parents": [
+                {"entityType": get_entity_type(AvpEntities.ROLE), "entityId": group}
+                for group in user.get_groups()
+            ],
+        }
+        role_entities = [
+            {"identifier": {"entityType": get_entity_type(AvpEntities.ROLE), "entityId": group}}
+            for group in user.get_groups()
+        ]
+        return [user_entity, *role_entities]
diff --git a/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py b/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
index fcf3caacb9b5f..d5526625326e3 100644
--- a/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
+++ b/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
@@ -23,6 +23,8 @@
 
 from airflow.configuration import conf
 from airflow.exceptions import AirflowOptionalProviderFeatureException
+from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities
+from airflow.providers.amazon.aws.auth_manager.avp.facade import AwsAuthManagerAmazonVerifiedPermissionsFacade
 from airflow.providers.amazon.aws.auth_manager.constants import (
     CONF_ENABLE_KEY,
     CONF_SECTION_NAME,
@@ -72,6 +74,10 @@ def __init__(self, appbuilder: AirflowAppBuilder) -> None:
                 "The AWS auth manager is currently being built. It is not finalized. It is not intended to be used yet."
             )
 
+    @cached_property
+    def avp_facade(self):
+        return AwsAuthManagerAmazonVerifiedPermissionsFacade()
+
     def get_user(self) -> AwsAuthManagerUser | None:
         return session["aws_user"] if self.is_logged_in() else None
 
@@ -122,7 +128,13 @@ def is_authorized_pool(
     def is_authorized_variable(
         self, *, method: ResourceMethod, details: VariableDetails | None = None, user: BaseUser | None = None
     ) -> bool:
-        return self.is_logged_in()
+        variable_key = details.key if details else None
+        return self.avp_facade.is_authorized(
+            method=method,
+            entity_type=AvpEntities.VARIABLE,
+            user=user or self.get_user(),
+            entity_id=variable_key,
+        )
 
     def is_authorized_view(
         self,
diff --git a/airflow/providers/amazon/aws/auth_manager/constants.py b/airflow/providers/amazon/aws/auth_manager/constants.py
index f2f9c1da07a62..1ad2633f35849 100644
--- a/airflow/providers/amazon/aws/auth_manager/constants.py
+++ b/airflow/providers/amazon/aws/auth_manager/constants.py
@@ -18,6 +18,8 @@
 # Configuration keys
 from __future__ import annotations
 
+CONF_ENABLE_KEY = "enable"
 CONF_SECTION_NAME = "aws_auth_manager"
+CONF_CONN_ID_KEY = "conn_id"
 CONF_SAML_METADATA_URL_KEY = "saml_metadata_url"
-CONF_ENABLE_KEY = "enable"
+CONF_AVP_POLICY_STORE_ID_KEY = "avp_policy_store_id"
diff --git a/airflow/providers/amazon/aws/auth_manager/user.py b/airflow/providers/amazon/aws/auth_manager/user.py
index 68699783d6547..da3dab8ce5cbb 100644
--- a/airflow/providers/amazon/aws/auth_manager/user.py
+++ b/airflow/providers/amazon/aws/auth_manager/user.py
@@ -49,3 +49,6 @@ def get_id(self) -> str:
 
     def get_name(self) -> str:
         return self.username or self.email or self.user_id
+
+    def get_groups(self):
+        return self.groups
diff --git a/airflow/providers/amazon/aws/fs/s3.py b/airflow/providers/amazon/aws/fs/s3.py
index d64adc401f0ee..128e225815131 100644
--- a/airflow/providers/amazon/aws/fs/s3.py
+++ b/airflow/providers/amazon/aws/fs/s3.py
@@ -25,7 +25,7 @@
 from botocore import UNSIGNED
 from requests import HTTPError
 
-from airflow.providers.amazon.aws.hooks.base_aws import AwsGenericHook
+from airflow.providers.amazon.aws.hooks.s3 import S3Hook
 
 if TYPE_CHECKING:
     from botocore.awsrequest import AWSRequest
@@ -45,7 +45,7 @@ class SignError(Exception):
     """Raises when unable to sign a S3 request."""
 
 
-def get_fs(conn_id: str | None) -> AbstractFileSystem:
+def get_fs(conn_id: str | None, storage_options: dict[str, str] | None = None) -> AbstractFileSystem:
     try:
         from s3fs import S3FileSystem
     except ImportError:
@@ -55,14 +55,16 @@ def get_fs(conn_id: str | None) -> AbstractFileSystem:
             "pip install apache-airflow-providers-amazon[s3fs]"
         )
 
-    aws: AwsGenericHook = AwsGenericHook(aws_conn_id=conn_id, client_type="s3")
-    session = aws.get_session(deferrable=True)
-    endpoint_url = aws.conn_config.get_service_endpoint_url(service_name="s3")
+    s3_hook = S3Hook(aws_conn_id=conn_id)
+    session = s3_hook.get_session(deferrable=True)
+    endpoint_url = s3_hook.conn_config.get_service_endpoint_url(service_name="s3")
+
+    config_kwargs: dict[str, Any] = s3_hook.conn_config.extra_config.get("config_kwargs", {})
+    config_kwargs.update(storage_options or {})
 
-    config_kwargs: dict[str, Any] = aws.conn_config.extra_config.get("config_kwargs", {})
     register_events: dict[str, Callable[[Properties], None]] = {}
 
-    s3_service_config = aws.service_config
+    s3_service_config = s3_hook.service_config
     if signer := s3_service_config.get("signer", None):
         log.info("Loading signer %s", signer)
         if singer_func := SIGNERS.get(signer):
diff --git a/airflow/providers/amazon/aws/hooks/verified_permissions.py b/airflow/providers/amazon/aws/hooks/verified_permissions.py
new file mode 100644
index 0000000000000..8c4bb7e90c911
--- /dev/null
+++ b/airflow/providers/amazon/aws/hooks/verified_permissions.py
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from airflow.providers.amazon.aws.hooks.base_aws import AwsGenericHook
+
+if TYPE_CHECKING:
+    from mypy_boto3_verifiedpermissions.client import VerifiedPermissionsClient  # noqa
+
+
+class VerifiedPermissionsHook(AwsGenericHook["VerifiedPermissionsClient"]):
+    """
+    Interact with Amazon Verified Permissions.
+
+    Provide thin wrapper around :external+boto3:py:class:`boto3.client("verifiedpermissions")
+    <VerifiedPermissions.Client>`.
+
+    Additional arguments (such as ``aws_conn_id``) may be specified and
+    are passed down to the underlying AwsBaseHook.
+
+    .. seealso::
+        - :class:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`
+        - `Amazon Appflow API Reference <https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/Welcome.html>`__
+    """
+
+    def __init__(self, *args, **kwargs) -> None:
+        kwargs["client_type"] = "verifiedpermissions"
+        super().__init__(*args, **kwargs)
diff --git a/airflow/providers/amazon/provider.yaml b/airflow/providers/amazon/provider.yaml
index d68850e437f66..798043abe8ad6 100644
--- a/airflow/providers/amazon/provider.yaml
+++ b/airflow/providers/amazon/provider.yaml
@@ -302,6 +302,10 @@ integrations:
       - /docs/apache-airflow-providers-amazon/operators/glue_databrew.rst
     logo: /integration-logos/aws/AWS-Glue-DataBrew_64.png
     tags: [aws]
+  - integration-name: Amazon Verified Permissions
+    external-doc-url: https://aws.amazon.com/verified-permissions/
+    logo: /integration-logos/aws/Amazon-Verified-Permissions.png
+    tags: [aws]
 
 operators:
   - integration-name: Amazon Athena
@@ -563,6 +567,9 @@ hooks:
   - integration-name: AWS Glue DataBrew
     python-modules:
       - airflow.providers.amazon.aws.hooks.glue_databrew
+  - integration-name: Amazon Verified Permissions
+    python-modules:
+      - airflow.providers.amazon.aws.hooks.verified_permissions
 
 triggers:
   - integration-name: Amazon Web Services
@@ -746,7 +753,7 @@ additional-extras:
       - apache-airflow-providers-cncf-kubernetes>=7.2.0
   - name: s3fs
     dependencies:
-      - s3fs>=2023.9.2
+      - s3fs>=2023.10.0
   - name: python3-saml
     dependencies:
       - python3-saml>=1.16.0
@@ -915,6 +922,14 @@ config:
         type: boolean
         example: "True"
         default: "False"
+      conn_id:
+        description: |
+          The Airflow connection (i.e. credentials) used by the AWS auth manager to make API calls to AWS
+          Identity Center and Amazon Verified Permissions.
+        version_added: 8.12.0
+        type: string
+        example: "aws_default"
+        default: "aws_default"
       saml_metadata_url:
         description: |
           SAML metadata XML file provided by AWS Identity Center.
@@ -923,6 +938,14 @@ config:
         type: string
         example: "https://portal.sso.<region>.amazonaws.com/saml/metadata/XXXXXXXXXX"
         default: ~
+      avp_policy_store_id:
+        description: |
+          Amazon Verified Permissions' policy store ID where all the policies defining user permissions
+          in Airflow are stored. Required.
+        version_added: 8.12.0
+        type: string
+        example: ~
+        default: ~
 
 executors:
   - airflow.providers.amazon.aws.executors.ecs.ecs_executor.AwsEcsExecutor
diff --git a/airflow/providers/daskexecutor/CHANGELOG.rst b/airflow/providers/daskexecutor/CHANGELOG.rst
index 81b4696c1b121..078ee648429bf 100644
--- a/airflow/providers/daskexecutor/CHANGELOG.rst
+++ b/airflow/providers/daskexecutor/CHANGELOG.rst
@@ -27,6 +27,12 @@
 Changelog
 ---------
 
+1.1.1
+.....
+
+* Mark daskexecutor provider as removed according to `consensus on the dev@airflow.apache.org <https://lists.apache.org/thread/fxv44cqqljrrhll3fdpdgc9h9fz5ghcy>`_
+
+
 1.1.0
 .....
 
diff --git a/airflow/providers/daskexecutor/provider.yaml b/airflow/providers/daskexecutor/provider.yaml
index 2aa7babd761bd..369143bcd9f9f 100644
--- a/airflow/providers/daskexecutor/provider.yaml
+++ b/airflow/providers/daskexecutor/provider.yaml
@@ -21,9 +21,11 @@ name: Dask Executor
 description: |
     `Dask <https://www.dask.org/>`__
 
-suspended: false
+removed: true
+suspended: true
 source-date-epoch: 1700827453
 versions:
+  - 1.1.1
   - 1.1.0
   - 1.0.1
   - 1.0.0
diff --git a/airflow/providers/google/cloud/fs/gcs.py b/airflow/providers/google/cloud/fs/gcs.py
index 74852d01f7251..5288bbfa1d928 100644
--- a/airflow/providers/google/cloud/fs/gcs.py
+++ b/airflow/providers/google/cloud/fs/gcs.py
@@ -39,7 +39,7 @@
 schemes = ["gs", "gcs"]
 
 
-def get_fs(conn_id: str | None) -> AbstractFileSystem:
+def get_fs(conn_id: str | None, storage_options: dict[str, str] | None = None) -> AbstractFileSystem:
     # https://gcsfs.readthedocs.io/en/latest/api.html#gcsfs.core.GCSFileSystem
     from gcsfs import GCSFileSystem
 
@@ -49,15 +49,18 @@ def get_fs(conn_id: str | None) -> AbstractFileSystem:
     g = GoogleBaseHook(gcp_conn_id=conn_id)
     creds = g.get_credentials()
 
-    return GCSFileSystem(
-        project=g.project_id,
-        access=g.extras.get(GCS_ACCESS, "full_control"),
-        token=creds.token,
-        consistency=g.extras.get(GCS_CONSISTENCY, "none"),
-        cache_timeout=g.extras.get(GCS_CACHE_TIMEOUT),
-        requester_pays=g.extras.get(GCS_REQUESTER_PAYS, False),
-        session_kwargs=g.extras.get(GCS_SESSION_KWARGS, {}),
-        endpoint_url=g.extras.get(GCS_ENDPOINT),
-        default_location=g.extras.get(GCS_DEFAULT_LOCATION),
-        version_aware=g.extras.get(GCS_VERSION_AWARE, "false").lower() == "true",
-    )
+    options = {
+        "project": g.project_id,
+        "access": g.extras.get(GCS_ACCESS, "full_control"),
+        "token": creds.token,
+        "consistency": g.extras.get(GCS_CONSISTENCY, "none"),
+        "cache_timeout": g.extras.get(GCS_CACHE_TIMEOUT),
+        "requester_pays": g.extras.get(GCS_REQUESTER_PAYS, False),
+        "session_kwargs": g.extras.get(GCS_SESSION_KWARGS, {}),
+        "endpoint_url": g.extras.get(GCS_ENDPOINT),
+        "default_location": g.extras.get(GCS_DEFAULT_LOCATION),
+        "version_aware": g.extras.get(GCS_VERSION_AWARE, "false").lower() == "true",
+    }
+    options.update(storage_options or {})
+
+    return GCSFileSystem(**options)
diff --git a/airflow/providers/google/provider.yaml b/airflow/providers/google/provider.yaml
index 86a03ff9003c5..7e6f69349c9a6 100644
--- a/airflow/providers/google/provider.yaml
+++ b/airflow/providers/google/provider.yaml
@@ -87,7 +87,7 @@ dependencies:
   - gcloud-aio-auth>=4.0.0,<5.0.0
   - gcloud-aio-bigquery>=6.1.2
   - gcloud-aio-storage
-  - gcsfs>=2023.9.2
+  - gcsfs>=2023.10.0
   - google-ads>=22.1.0
   - google-api-core>=2.11.0
   - google-api-python-client>=1.6.0
diff --git a/airflow/providers/installed_providers.txt b/airflow/providers/installed_providers.txt
index bd32056d5f328..d416a8a47b68e 100644
--- a/airflow/providers/installed_providers.txt
+++ b/airflow/providers/installed_providers.txt
@@ -1,8 +1,8 @@
 amazon
 celery
 cncf.kubernetes
+common.io
 common.sql
-daskexecutor
 docker
 elasticsearch
 ftp
diff --git a/airflow/providers/microsoft/azure/fs/adls.py b/airflow/providers/microsoft/azure/fs/adls.py
index e6eaf258498d5..54c9cef520e02 100644
--- a/airflow/providers/microsoft/azure/fs/adls.py
+++ b/airflow/providers/microsoft/azure/fs/adls.py
@@ -16,7 +16,7 @@
 # under the License.
 from __future__ import annotations
 
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
 
 from airflow.hooks.base import BaseHook
 from airflow.providers.microsoft.azure.utils import get_field
@@ -27,7 +27,7 @@
 schemes = ["abfs", "abfss", "adl"]
 
 
-def get_fs(conn_id: str | None) -> AbstractFileSystem:
+def get_fs(conn_id: str | None, storage_options: dict[str, Any] | None = None) -> AbstractFileSystem:
     from adlfs import AzureBlobFileSystem
 
     if conn_id is None:
@@ -36,24 +36,13 @@ def get_fs(conn_id: str | None) -> AbstractFileSystem:
     conn = BaseHook.get_connection(conn_id)
     extras = conn.extra_dejson
 
-    connection_string = get_field(
-        conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name="connection_string"
-    )
-    account_name = get_field(
-        conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name="account_name"
-    )
-    account_key = get_field(
-        conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name="account_key"
-    )
-    sas_token = get_field(conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name="sas_token")
-    tenant = get_field(conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name="tenant")
-
-    return AzureBlobFileSystem(
-        connection_string=connection_string,
-        account_name=account_name,
-        account_key=account_key,
-        sas_token=sas_token,
-        tenant_id=tenant,
-        client_id=conn.login,
-        client_secret=conn.password,
-    )
+    options = {}
+    fields = ["connection_string", "account_name", "account_key", "sas_token", "tenant"]
+    for field in fields:
+        options[field] = get_field(
+            conn_id=conn_id, conn_type="azure_data_lake", extras=extras, field_name=field
+        )
+
+    options.update(storage_options or {})
+
+    return AzureBlobFileSystem(**options)
diff --git a/airflow/providers/microsoft/azure/provider.yaml b/airflow/providers/microsoft/azure/provider.yaml
index 4f2308803dda4..186719a9af00e 100644
--- a/airflow/providers/microsoft/azure/provider.yaml
+++ b/airflow/providers/microsoft/azure/provider.yaml
@@ -70,7 +70,7 @@ versions:
 
 dependencies:
   - apache-airflow>=2.5.0
-  - adlfs>=2023.9.2
+  - adlfs>=2023.10.0
   - azure-batch>=8.0.0
   - azure-cosmos>=4.0.0
   - azure-mgmt-cosmosdb
diff --git a/airflow/providers/microsoft/mssql/provider.yaml b/airflow/providers/microsoft/mssql/provider.yaml
index ce4bb0ceb361a..934a8091713be 100644
--- a/airflow/providers/microsoft/mssql/provider.yaml
+++ b/airflow/providers/microsoft/mssql/provider.yaml
@@ -48,7 +48,7 @@ versions:
 dependencies:
   - apache-airflow>=2.5.0
   - apache-airflow-providers-common-sql>=1.3.1
-  - pymssql>=2.1.5
+  - pymssql>=2.1.8
 
 integrations:
   - integration-name: Microsoft SQL Server (MSSQL)
diff --git a/airflow/serialization/enums.py b/airflow/serialization/enums.py
index 744aeb4088c9a..4f95c849c8fb2 100644
--- a/airflow/serialization/enums.py
+++ b/airflow/serialization/enums.py
@@ -56,5 +56,6 @@ class DagAttributeTypes(str, Enum):
     DAG_RUN = "dag_run"
     DAG_MODEL = "dag_model"
     DATA_SET = "data_set"
+    LOG_TEMPLATE = "log_template"
     CONNECTION = "connection"
     ARG_NOT_SET = "arg_not_set"
diff --git a/airflow/serialization/pydantic/dag_run.py b/airflow/serialization/pydantic/dag_run.py
index cd0886ecafc2f..8faabc5ee47e9 100644
--- a/airflow/serialization/pydantic/dag_run.py
+++ b/airflow/serialization/pydantic/dag_run.py
@@ -55,6 +55,7 @@ class DagRunPydantic(BaseModelPydantic):
     updated_at: Optional[datetime]
     dag: Optional[PydanticDag]
     consumed_dataset_events: List[DatasetEventPydantic]  # noqa
+    log_template_id: Optional[int]
 
     model_config = ConfigDict(from_attributes=True, arbitrary_types_allowed=True)
 
diff --git a/airflow/serialization/pydantic/tasklog.py b/airflow/serialization/pydantic/tasklog.py
new file mode 100644
index 0000000000000..a23204400c1f9
--- /dev/null
+++ b/airflow/serialization/pydantic/tasklog.py
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from datetime import datetime
+
+from pydantic import BaseModel as BaseModelPydantic, ConfigDict
+
+
+class LogTemplatePydantic(BaseModelPydantic):
+    """Serializable version of the LogTemplate ORM SqlAlchemyModel used by internal API."""
+
+    id: int
+    filename: str
+    elasticsearch_id: str
+    created_at: datetime
+
+    model_config = ConfigDict(from_attributes=True)
diff --git a/airflow/serialization/serialized_objects.py b/airflow/serialization/serialized_objects.py
index c40d4703eea8b..48aa595933466 100644
--- a/airflow/serialization/serialized_objects.py
+++ b/airflow/serialization/serialized_objects.py
@@ -47,6 +47,7 @@
 from airflow.models.mappedoperator import MappedOperator
 from airflow.models.param import Param, ParamsDict
 from airflow.models.taskinstance import SimpleTaskInstance, TaskInstance
+from airflow.models.tasklog import LogTemplate
 from airflow.models.xcom_arg import XComArg, deserialize_xcom_arg, serialize_xcom_arg
 from airflow.providers_manager import ProvidersManager
 from airflow.serialization.enums import DagAttributeTypes as DAT, Encoding
@@ -57,6 +58,7 @@
 from airflow.serialization.pydantic.dataset import DatasetPydantic
 from airflow.serialization.pydantic.job import JobPydantic
 from airflow.serialization.pydantic.taskinstance import TaskInstancePydantic
+from airflow.serialization.pydantic.tasklog import LogTemplatePydantic
 from airflow.settings import _ENABLE_AIP_44, DAGS_FOLDER, json
 from airflow.utils.code_utils import get_python_source
 from airflow.utils.docs import get_docs_url
@@ -498,7 +500,7 @@ def serialize(
                 type_=DAT.SIMPLE_TASK_INSTANCE,
             )
         elif isinstance(var, Connection):
-            return cls._encode(var.to_json_dict(validate=True), type_=DAT.CONNECTION)
+            return cls._encode(var.to_dict(validate=True), type_=DAT.CONNECTION)
         elif use_pydantic_models and _ENABLE_AIP_44:
 
             def _pydantic_model_dump(model_cls: type[BaseModel], var: Any) -> dict[str, Any]:
@@ -514,7 +516,8 @@ def _pydantic_model_dump(model_cls: type[BaseModel], var: Any) -> dict[str, Any]
                 return cls._encode(_pydantic_model_dump(DatasetPydantic, var), type_=DAT.DATA_SET)
             elif isinstance(var, DagModel):
                 return cls._encode(_pydantic_model_dump(DagModelPydantic, var), type_=DAT.DAG_MODEL)
-
+            elif isinstance(var, LogTemplate):
+                return cls._encode(_pydantic_model_dump(LogTemplatePydantic, var), type_=DAT.LOG_TEMPLATE)
             else:
                 return cls.default_serialization(strict, var)
         elif isinstance(var, ArgNotSet):
@@ -596,6 +599,8 @@ def deserialize(cls, encoded_var: Any, use_pydantic_models=False) -> Any:
                 return DagModelPydantic.parse_obj(var)
             elif type_ == DAT.DATA_SET:
                 return DatasetPydantic.parse_obj(var)
+            elif type_ == DAT.LOG_TEMPLATE:
+                return LogTemplatePydantic.parse_obj(var)
         elif type_ == DAT.ARG_NOT_SET:
             return NOTSET
         else:
diff --git a/airflow/timetables/_cron.py b/airflow/timetables/_cron.py
index f9b8efa465914..9f5878b197232 100644
--- a/airflow/timetables/_cron.py
+++ b/airflow/timetables/_cron.py
@@ -17,7 +17,6 @@
 from __future__ import annotations
 
 import datetime
-from functools import cached_property
 from typing import TYPE_CHECKING, Any
 
 from cron_descriptor import CasingTypeEnum, ExpressionDescriptor, FormatException, MissingFieldException
@@ -32,21 +31,32 @@
     from pendulum import DateTime
 
 
-def _is_schedule_fixed(expression: str) -> bool:
-    """Figures out if the schedule has a fixed time (e.g. 3 AM every day).
+def _covers_every_hour(cron: croniter) -> bool:
+    """Check whether the given cron runs at least once an hour.
 
-    :return: True if the schedule has a fixed time, False if not.
+    This indicates whether we need to implement a workaround for (what I call)
+    the "fold hour problem". Folding happens when a region switches time
+    backwards, usually as a part of ending a DST period, causing a block of time
+    to occur twice in the wall clock. This is indicated by the ``fold`` flag on
+    datetime.
 
-    Detection is done by "peeking" the next two cron trigger time; if the
-    two times have the same minute and hour value, the schedule is fixed,
-    and we *don't* need to perform the DST fix.
+    As an example, Switzerland in 2023 ended DST on 3am (wall clock time, UTC+2)
+    by dialing back the clock to 2am (UTC+1). So for (say) ``30 * * * *``, if
+    the last run was 2:30am (UTC+2), the next needs to be 2:30am (UTC+1, folded)
+    instead of 3:30am.
 
-    This assumes DST happens on whole minute changes (e.g. 12:59 -> 12:00).
+    While this technically happens for all runs (in such a timezone), we only
+    really care about runs that happen at least once an hour, and can
+    provide a somewhat reasonable rationale to skip the fold hour for things
+    such as ``*/2`` (every two hour). So we try to *minially* peak into croniter
+    internals to work around the issue.
+
+    The check is simple since croniter internally normalizes things to ``*``.
+    More edge cases can be added later as needed.
+
+    See also: https://github.com/kiorky/croniter/issues/56.
     """
-    cron = croniter(expression)
-    next_a = cron.get_next(datetime.datetime)
-    next_b = cron.get_next(datetime.datetime)
-    return next_b.minute == next_a.minute and next_b.hour == next_a.hour
+    return cron.expanded[1] == ["*"]
 
 
 class CronMixin:
@@ -91,18 +101,12 @@ def validate(self) -> None:
         except (CroniterBadCronError, CroniterBadDateError) as e:
             raise AirflowTimetableInvalid(str(e))
 
-    @cached_property
-    def _should_fix_dst(self) -> bool:
-        # This is lazy so instantiating a schedule does not immediately raise
-        # an exception. Validity is checked with validate() during DAG-bagging.
-        return not _is_schedule_fixed(self._expression)
-
     def _get_next(self, current: DateTime) -> DateTime:
         """Get the first schedule after specified time, with DST fixed."""
         naive = make_naive(current, self._timezone)
         cron = croniter(self._expression, start_time=naive)
         scheduled = cron.get_next(datetime.datetime)
-        if not self._should_fix_dst:
+        if not _covers_every_hour(cron):
             return convert_to_utc(make_aware(scheduled, self._timezone))
         delta = scheduled - naive
         return convert_to_utc(current.in_timezone(self._timezone) + delta)
@@ -112,7 +116,7 @@ def _get_prev(self, current: DateTime) -> DateTime:
         naive = make_naive(current, self._timezone)
         cron = croniter(self._expression, start_time=naive)
         scheduled = cron.get_prev(datetime.datetime)
-        if not self._should_fix_dst:
+        if not _covers_every_hour(cron):
             return convert_to_utc(make_aware(scheduled, self._timezone))
         delta = naive - scheduled
         return convert_to_utc(current.in_timezone(self._timezone) - delta)
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index 5b6bd4757e822..25a889f639e55 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -88,7 +88,7 @@
     "2.6.0": "98ae134e6fff",
     "2.6.2": "c804e5c76e3e",
     "2.7.0": "405de8318b3a",
-    "2.8.0": "bd5dfbe21f88",
+    "2.8.0": "10b52ebd31f7",
 }
 
 
diff --git a/airflow/utils/process_utils.py b/airflow/utils/process_utils.py
index 15844d9227b67..18798e85d027c 100644
--- a/airflow/utils/process_utils.py
+++ b/airflow/utils/process_utils.py
@@ -222,7 +222,7 @@ def execute_interactive(cmd: list[str], **kwargs) -> None:
             # ignore SIGINT in the parent process
             signal.signal(signal.SIGINT, signal.SIG_IGN)
             while proc.poll() is None:
-                readable_fbs, _, _ = select.select([sys.stdin, primary_fd], [], [])
+                readable_fbs, _, _ = select.select([sys.stdin, primary_fd], [], [], 0)
                 if sys.stdin in readable_fbs:
                     input_data = os.read(sys.stdin.fileno(), 10240)
                     os.write(primary_fd, input_data)
diff --git a/airflow/www/auth.py b/airflow/www/auth.py
index 1ad6e6dab5b47..bcb98d9cbea71 100644
--- a/airflow/www/auth.py
+++ b/airflow/www/auth.py
@@ -22,7 +22,7 @@
 from functools import wraps
 from typing import TYPE_CHECKING, Callable, Sequence, TypeVar, cast
 
-from flask import flash, redirect, render_template, request, url_for
+from flask import flash, redirect, render_template, request
 from flask_appbuilder._compat import as_unicode
 from flask_appbuilder.const import (
     FLAMSG_ERR_SEC_ACCESS_DENIED,
@@ -107,21 +107,20 @@ def wraps(self, *args, **kwargs):
             _permission_name = self.method_permission_name.get(f.__name__)
             if _permission_name:
                 permission_str = f"{PERMISSION_PREFIX}{_permission_name}"
-        if permission_str in self.base_permissions and self.appbuilder.sm.has_access(
-            action_name=permission_str,
-            resource_name=self.class_permission_name,
-            resource_pk=kwargs.get("pk"),
+        if (
+            get_auth_manager().is_logged_in()
+            and permission_str in self.base_permissions
+            and self.appbuilder.sm.has_access(
+                action_name=permission_str,
+                resource_name=self.class_permission_name,
+                resource_pk=kwargs.get("pk"),
+            )
         ):
             return f(self, *args, **kwargs)
         else:
-            log.warning(LOGMSG_ERR_SEC_ACCESS_DENIED.format(permission_str, self.__class__.__name__))
+            log.warning(LOGMSG_ERR_SEC_ACCESS_DENIED, permission_str, self.__class__.__name__)
             flash(as_unicode(FLAMSG_ERR_SEC_ACCESS_DENIED), "danger")
-        return redirect(
-            url_for(
-                self.appbuilder.sm.auth_view.__class__.__name__ + ".login",
-                next=request.url,
-            )
-        )
+        return redirect(get_auth_manager().get_url_login(next=request.url))
 
     f._permission_name = permission_str
     return functools.update_wrapper(wraps, f)
diff --git a/airflow/www/jest-setup.js b/airflow/www/jest-setup.js
index 48b4e190699ca..f5a269cfa2a5d 100644
--- a/airflow/www/jest-setup.js
+++ b/airflow/www/jest-setup.js
@@ -58,6 +58,12 @@ global.stateColors = {
 
 global.defaultDagRunDisplayNumber = 245;
 
+global.filtersOptions = {
+  // Must stay in sync with airflow/www/static/js/types/index.ts
+  dagStates: ["success", "running", "queued", "failed"],
+  runTypes: ["manual", "backfill", "scheduled", "dataset_triggered"],
+};
+
 global.moment = moment;
 
 global.standaloneDagProcessor = true;
diff --git a/airflow/www/static/js/api/index.ts b/airflow/www/static/js/api/index.ts
index 94ec52e8630bc..6369a819d26ef 100644
--- a/airflow/www/static/js/api/index.ts
+++ b/airflow/www/static/js/api/index.ts
@@ -48,6 +48,14 @@ import usePools from "./usePools";
 import useDags from "./useDags";
 import useDagRuns from "./useDagRuns";
 import useHistoricalMetricsData from "./useHistoricalMetricsData";
+import { useTaskXcomEntry, useTaskXcomCollection } from "./useTaskXcom";
+
+axios.interceptors.request.use((config) => {
+  config.paramsSerializer = {
+    indexes: null,
+  };
+  return config;
+});
 
 axios.interceptors.response.use((res: AxiosResponse) =>
   res.data ? camelcaseKeys(res.data, { deep: true }) : res
@@ -84,4 +92,6 @@ export {
   useTaskInstance,
   useUpstreamDatasetEvents,
   useHistoricalMetricsData,
+  useTaskXcomEntry,
+  useTaskXcomCollection,
 };
diff --git a/airflow/www/static/js/api/useTaskXcom.ts b/airflow/www/static/js/api/useTaskXcom.ts
new file mode 100644
index 0000000000000..1faa19005a906
--- /dev/null
+++ b/airflow/www/static/js/api/useTaskXcom.ts
@@ -0,0 +1,71 @@
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+
+import type { API } from "src/types";
+import { getMetaValue } from "src/utils";
+import { useQuery } from "react-query";
+import axios, { AxiosResponse } from "axios";
+
+// tryNumber is not required to get XCom keys or values but is used
+// in query key so refetch will occur if new tries are available
+interface TaskXcomCollectionProps extends API.GetXcomEntriesVariables {
+  tryNumber: number;
+}
+interface TaskXcomProps extends API.GetXcomEntryVariables {
+  tryNumber: number;
+}
+
+export const useTaskXcomCollection = ({
+  dagId,
+  dagRunId,
+  taskId,
+  mapIndex,
+  tryNumber,
+}: TaskXcomCollectionProps) =>
+  useQuery(["taskXcoms", dagId, dagRunId, taskId, mapIndex, tryNumber], () =>
+    axios.get<AxiosResponse, API.XComCollection>(
+      getMetaValue("task_xcom_entries_api")
+        .replace("_DAG_RUN_ID_", dagRunId)
+        .replace("_TASK_ID_", taskId),
+      { params: { map_index: mapIndex } }
+    )
+  );
+
+export const useTaskXcomEntry = ({
+  dagId,
+  dagRunId,
+  taskId,
+  mapIndex,
+  xcomKey,
+  tryNumber,
+}: TaskXcomProps) =>
+  useQuery(
+    ["taskXcom", dagId, dagRunId, taskId, mapIndex, xcomKey, tryNumber],
+    () =>
+      axios.get<AxiosResponse, API.XCom>(
+        getMetaValue("task_xcom_entry_api")
+          .replace("_DAG_RUN_ID_", dagRunId)
+          .replace("_TASK_ID_", taskId)
+          .replace("_XCOM_KEY_", xcomKey),
+        { params: { map_index: mapIndex } }
+      ),
+    {
+      enabled: !!xcomKey,
+    }
+  );
diff --git a/airflow/www/static/js/dag/details/gantt/GanttTooltip.tsx b/airflow/www/static/js/dag/details/gantt/GanttTooltip.tsx
index 2f501209256d4..465eaa930e957 100644
--- a/airflow/www/static/js/dag/details/gantt/GanttTooltip.tsx
+++ b/airflow/www/static/js/dag/details/gantt/GanttTooltip.tsx
@@ -34,9 +34,11 @@ const GanttTooltip = ({ task, instance }: Props) => {
 
   // Calculate durations in ms
   const taskDuration = getDuration(instance?.startDate, instance?.endDate);
-  const queuedDuration = instance?.queuedDttm
-    ? getDuration(instance.queuedDttm, instance?.startDate)
-    : 0;
+  const queuedDuration =
+    instance?.queuedDttm &&
+    (instance?.startDate ? instance.queuedDttm < instance.startDate : true)
+      ? getDuration(instance.queuedDttm, instance?.startDate)
+      : 0;
   return (
     <Box>
       <Text>
diff --git a/airflow/www/static/js/dag/details/gantt/Row.tsx b/airflow/www/static/js/dag/details/gantt/Row.tsx
index bf1ce7ac60a25..1526e1713f0ad 100644
--- a/airflow/www/static/js/dag/details/gantt/Row.tsx
+++ b/airflow/www/static/js/dag/details/gantt/Row.tsx
@@ -52,18 +52,21 @@ const Row = ({
 
   const instance = task.instances.find((ti) => ti.runId === runId);
   const isSelected = taskId === instance?.taskId;
-  const hasQueuedDttm = !!instance?.queuedDttm;
+  const hasValidQueuedDttm =
+    !!instance?.queuedDttm &&
+    (instance?.startDate && instance?.queuedDttm
+      ? instance.queuedDttm < instance.startDate
+      : true);
   const isOpen = openGroupIds.includes(task.id || "");
 
   // Calculate durations in ms
   const taskDuration = getDuration(instance?.startDate, instance?.endDate);
-  const queuedDuration = hasQueuedDttm
+  const queuedDuration = hasValidQueuedDttm
     ? getDuration(instance?.queuedDttm, instance?.startDate)
     : 0;
-  const taskStartOffset = getDuration(
-    ganttStartDate,
-    instance?.queuedDttm || instance?.startDate
-  );
+  const taskStartOffset = hasValidQueuedDttm
+    ? getDuration(ganttStartDate, instance?.queuedDttm || instance?.startDate)
+    : getDuration(ganttStartDate, instance?.startDate);
 
   // Percent of each duration vs the overall dag run
   const taskDurationPercent = taskDuration / runDuration;
@@ -74,8 +77,8 @@ const Row = ({
   // Min width should be 5px
   let width = ganttWidth * taskDurationPercent;
   if (width < 5) width = 5;
-  let queuedWidth = hasQueuedDttm ? ganttWidth * queuedDurationPercent : 0;
-  if (hasQueuedDttm && queuedWidth < 5) queuedWidth = 5;
+  let queuedWidth = hasValidQueuedDttm ? ganttWidth * queuedDurationPercent : 0;
+  if (hasValidQueuedDttm && queuedWidth < 5) queuedWidth = 5;
   const offsetMargin = taskStartOffsetPercent * ganttWidth;
 
   return (
@@ -106,7 +109,7 @@ const Row = ({
                 });
               }}
             >
-              {instance.state !== "queued" && hasQueuedDttm && (
+              {instance.state !== "queued" && hasValidQueuedDttm && (
                 <SimpleStatus
                   state="queued"
                   width={`${queuedWidth}px`}
@@ -119,7 +122,9 @@ const Row = ({
                 state={instance.state}
                 width={`${width}px`}
                 borderLeftRadius={
-                  instance.state !== "queued" && hasQueuedDttm ? 0 : undefined
+                  instance.state !== "queued" && hasValidQueuedDttm
+                    ? 0
+                    : undefined
                 }
               />
             </Flex>
diff --git a/airflow/www/static/js/dag/details/index.tsx b/airflow/www/static/js/dag/details/index.tsx
index b476d61950ee3..3c555c701e191 100644
--- a/airflow/www/static/js/dag/details/index.tsx
+++ b/airflow/www/static/js/dag/details/index.tsx
@@ -39,6 +39,7 @@ import {
   MdReorder,
   MdCode,
   MdOutlineViewTimeline,
+  MdSyncAlt,
 } from "react-icons/md";
 import { BiBracket } from "react-icons/bi";
 import URLSearchParamsWrapper from "src/utils/URLSearchParamWrapper";
@@ -58,6 +59,7 @@ import ClearRun from "./dagRun/ClearRun";
 import MarkRunAs from "./dagRun/MarkRunAs";
 import ClearInstance from "./taskInstance/taskActions/ClearInstance";
 import MarkInstanceAs from "./taskInstance/taskActions/MarkInstanceAs";
+import XcomCollection from "./taskInstance/Xcom";
 
 const dagId = getMetaValue("dag_id")!;
 
@@ -80,6 +82,8 @@ const tabToIndex = (tab?: string) => {
     case "logs":
     case "mapped_tasks":
       return 4;
+    case "xcom":
+      return 5;
     case "details":
     default:
       return 0;
@@ -89,8 +93,8 @@ const tabToIndex = (tab?: string) => {
 const indexToTab = (
   index: number,
   taskId: string | null,
-  showLogs: boolean,
-  showMappedTasks: boolean
+  isTaskInstance: boolean,
+  isMappedTaskSummary: boolean
 ) => {
   switch (index) {
     case 1:
@@ -100,8 +104,11 @@ const indexToTab = (
     case 3:
       return "code";
     case 4:
-      if (showMappedTasks) return "mapped_tasks";
-      if (showLogs) return "logs";
+      if (isMappedTaskSummary) return "mapped_tasks";
+      if (isTaskInstance) return "logs";
+      return undefined;
+    case 5:
+      if (isTaskInstance) return "xcom";
       return undefined;
     case 0:
     default:
@@ -124,7 +131,6 @@ const Details = ({
   } = useSelection();
   const isDag = !runId && !taskId;
   const isDagRun = runId && !taskId;
-  const isTaskInstance = taskId && runId;
 
   const {
     data: { dagRuns, groups },
@@ -132,12 +138,21 @@ const Details = ({
   const group = getTask({ taskId, task: groups });
   const children = group?.children;
   const isMapped = group?.isMapped;
-
-  const isMappedTaskSummary = isMapped && mapIndex === undefined && taskId;
   const isGroup = !!children;
-  const isGroupOrMappedTaskSummary = isGroup || isMappedTaskSummary;
-  const showLogs = !!(isTaskInstance && !isGroupOrMappedTaskSummary);
-  const showMappedTasks = !!(isTaskInstance && isMappedTaskSummary && !isGroup);
+
+  const isMappedTaskSummary = !!(
+    taskId &&
+    runId &&
+    !isGroup &&
+    isMapped &&
+    mapIndex === undefined
+  );
+  const isTaskInstance = !!(
+    taskId &&
+    runId &&
+    !isGroup &&
+    !isMappedTaskSummary
+  );
 
   const [searchParams, setSearchParams] = useSearchParams();
   const tab = searchParams.get(TAB_PARAM) || undefined;
@@ -146,12 +161,17 @@ const Details = ({
   const onChangeTab = useCallback(
     (index: number) => {
       const params = new URLSearchParamsWrapper(searchParams);
-      const newTab = indexToTab(index, taskId, showLogs, showMappedTasks);
+      const newTab = indexToTab(
+        index,
+        taskId,
+        isTaskInstance,
+        isMappedTaskSummary
+      );
       if (newTab) params.set(TAB_PARAM, newTab);
       else params.delete(TAB_PARAM);
       setSearchParams(params);
     },
-    [setSearchParams, searchParams, showLogs, showMappedTasks, taskId]
+    [setSearchParams, searchParams, isTaskInstance, isMappedTaskSummary, taskId]
   );
 
   useEffect(() => {
@@ -252,7 +272,7 @@ const Details = ({
               Code
             </Text>
           </Tab>
-          {showLogs && (
+          {isTaskInstance && (
             <Tab>
               <MdReorder size={16} />
               <Text as="strong" ml={1}>
@@ -260,7 +280,7 @@ const Details = ({
               </Text>
             </Tab>
           )}
-          {showMappedTasks && (
+          {isMappedTaskSummary && (
             <Tab>
               <BiBracket size={16} />
               <Text as="strong" ml={1}>
@@ -268,6 +288,14 @@ const Details = ({
               </Text>
             </Tab>
           )}
+          {isTaskInstance && (
+            <Tab>
+              <MdSyncAlt size={16} />
+              <Text as="strong" ml={1}>
+                XCom
+              </Text>
+            </Tab>
+          )}
         </TabList>
         <TabPanels height="100%">
           <TabPanel height="100%">
@@ -304,7 +332,7 @@ const Details = ({
           <TabPanel height="100%">
             <DagCode />
           </TabPanel>
-          {showLogs && run && (
+          {isTaskInstance && run && (
             <TabPanel
               pt={mapIndex !== undefined ? "0px" : undefined}
               height="100%"
@@ -324,7 +352,7 @@ const Details = ({
               />
             </TabPanel>
           )}
-          {showMappedTasks && (
+          {isMappedTaskSummary && (
             <TabPanel height="100%">
               <MappedInstances
                 dagId={dagId}
@@ -336,6 +364,17 @@ const Details = ({
               />
             </TabPanel>
           )}
+          {isTaskInstance && (
+            <TabPanel height="100%">
+              <XcomCollection
+                dagId={dagId}
+                dagRunId={runId}
+                taskId={taskId}
+                mapIndex={mapIndex}
+                tryNumber={instance?.tryNumber}
+              />
+            </TabPanel>
+          )}
         </TabPanels>
       </Tabs>
     </Flex>
diff --git a/airflow/www/static/js/dag/details/taskInstance/Logs/index.tsx b/airflow/www/static/js/dag/details/taskInstance/Logs/index.tsx
index 16a5e2159f38d..12d64f42388c5 100644
--- a/airflow/www/static/js/dag/details/taskInstance/Logs/index.tsx
+++ b/airflow/www/static/js/dag/details/taskInstance/Logs/index.tsx
@@ -26,6 +26,7 @@ import {
   Checkbox,
   Icon,
   Spinner,
+  Select,
 } from "@chakra-ui/react";
 import { MdWarning } from "react-icons/md";
 
@@ -152,6 +153,9 @@ const Logs = ({
     [data, fileSourceFilters, logLevelFilters, timezone]
   );
 
+  const logAttemptDropdownLimit = 10;
+  const showDropdown = internalIndexes.length > logAttemptDropdownLimit;
+
   useEffect(() => {
     // Reset fileSourceFilters and selected attempt when changing to
     // a task that do not have those filters anymore.
@@ -193,24 +197,45 @@ const Logs = ({
       {tryNumber !== undefined && (
         <>
           <Box>
-            <Text as="span"> (by attempts)</Text>
-            <Flex my={1} justifyContent="space-between">
-              <Flex flexWrap="wrap">
-                {internalIndexes.map((index) => (
-                  <Button
-                    key={index}
-                    variant={taskTryNumber === index ? "solid" : "ghost"}
-                    colorScheme="blue"
-                    onClick={() => setSelectedTryNumber(index)}
-                    data-testid={`log-attempt-select-button-${index}`}
-                  >
-                    {index}
-                  </Button>
-                ))}
-              </Flex>
-            </Flex>
+            {!showDropdown && (
+              <Box>
+                <Text as="span"> (by attempts)</Text>
+                <Flex my={1} justifyContent="space-between">
+                  <Flex flexWrap="wrap">
+                    {internalIndexes.map((index) => (
+                      <Button
+                        key={index}
+                        variant={taskTryNumber === index ? "solid" : "ghost"}
+                        colorScheme="blue"
+                        onClick={() => setSelectedTryNumber(index)}
+                        data-testid={`log-attempt-select-button-${index}`}
+                      >
+                        {index}
+                      </Button>
+                    ))}
+                  </Flex>
+                </Flex>
+              </Box>
+            )}
             <Flex my={1} justifyContent="space-between" flexWrap="wrap">
               <Flex alignItems="center" flexGrow={1} mr={10}>
+                {showDropdown && (
+                  <Box width="100%" mr={2}>
+                    <Select
+                      size="sm"
+                      placeholder="Select log attempt"
+                      onChange={(e) => {
+                        setSelectedTryNumber(Number(e.target.value));
+                      }}
+                    >
+                      {internalIndexes.map((index) => (
+                        <option key={index} value={index}>
+                          {index}
+                        </option>
+                      ))}
+                    </Select>
+                  </Box>
+                )}
                 <Box width="100%" mr={2}>
                   <MultiSelect
                     size="sm"
diff --git a/airflow/www/static/js/dag/details/taskInstance/Nav.tsx b/airflow/www/static/js/dag/details/taskInstance/Nav.tsx
index 3541240ce3255..1e5d84d8ba48b 100644
--- a/airflow/www/static/js/dag/details/taskInstance/Nav.tsx
+++ b/airflow/www/static/js/dag/details/taskInstance/Nav.tsx
@@ -30,7 +30,6 @@ const isK8sExecutor = getMetaValue("k8s_or_k8scelery_executor") === "True";
 const taskInstancesUrl = getMetaValue("task_instances_list_url");
 const renderedK8sUrl = getMetaValue("rendered_k8s_url");
 const renderedTemplatesUrl = getMetaValue("rendered_templates_url");
-const xcomUrl = getMetaValue("xcom_url");
 const taskUrl = getMetaValue("task_url");
 const gridUrl = getMetaValue("grid_url");
 
@@ -52,7 +51,6 @@ const Nav = forwardRef<HTMLDivElement, Props>(
     });
     const detailsLink = `${taskUrl}&${params}`;
     const renderedLink = `${renderedTemplatesUrl}&${params}`;
-    const xcomLink = `${xcomUrl}&${params}`;
     const k8sLink = `${renderedK8sUrl}&${params}`;
     const listParams = new URLSearchParamsWrapper({
       _flt_3_dag_id: dagId,
@@ -88,7 +86,6 @@ const Nav = forwardRef<HTMLDivElement, Props>(
             {isSubDag && (
               <LinkButton href={subDagLink}>Zoom into SubDag</LinkButton>
             )}
-            <LinkButton href={xcomLink}>XCom</LinkButton>
           </>
         )}
         <LinkButton
diff --git a/airflow/www/static/js/dag/details/taskInstance/Xcom/XcomEntry.tsx b/airflow/www/static/js/dag/details/taskInstance/Xcom/XcomEntry.tsx
new file mode 100644
index 0000000000000..59e3d06505d41
--- /dev/null
+++ b/airflow/www/static/js/dag/details/taskInstance/Xcom/XcomEntry.tsx
@@ -0,0 +1,82 @@
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+
+import { Alert, AlertIcon, Spinner, Td, Text, Tr } from "@chakra-ui/react";
+import React from "react";
+import { useTaskXcomEntry } from "src/api";
+import type { Dag, DagRun, TaskInstance } from "src/types";
+
+interface Props {
+  dagId: Dag["id"];
+  dagRunId: DagRun["runId"];
+  taskId: TaskInstance["taskId"];
+  mapIndex?: TaskInstance["mapIndex"];
+  xcomKey: string;
+  tryNumber: TaskInstance["tryNumber"];
+}
+
+const XcomEntry = ({
+  dagId,
+  dagRunId,
+  taskId,
+  mapIndex,
+  xcomKey,
+  tryNumber,
+}: Props) => {
+  const {
+    data: xcom,
+    isLoading,
+    error,
+  } = useTaskXcomEntry({
+    dagId,
+    dagRunId,
+    taskId,
+    mapIndex,
+    xcomKey,
+    tryNumber: tryNumber || 1,
+  });
+
+  let content = <Text fontFamily="monospace">{xcom?.value}</Text>;
+  if (isLoading) {
+    content = <Spinner />;
+  } else if (error) {
+    content = (
+      <Alert status="error">
+        <AlertIcon />
+        Error loading XCom entry
+      </Alert>
+    );
+  } else if (!xcom) {
+    content = (
+      <Alert status="info">
+        <AlertIcon />
+        No value found for XCom key
+      </Alert>
+    );
+  }
+
+  return (
+    <Tr>
+      <Td>{xcomKey}</Td>
+      <Td>{content}</Td>
+    </Tr>
+  );
+};
+
+export default XcomEntry;
diff --git a/airflow/www/static/js/dag/details/taskInstance/Xcom/index.tsx b/airflow/www/static/js/dag/details/taskInstance/Xcom/index.tsx
new file mode 100644
index 0000000000000..065f9ff497a6c
--- /dev/null
+++ b/airflow/www/static/js/dag/details/taskInstance/Xcom/index.tsx
@@ -0,0 +1,116 @@
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+
+import React, { useRef } from "react";
+import type { Dag, DagRun, TaskInstance } from "src/types";
+import {
+  Table,
+  Text,
+  Thead,
+  Tbody,
+  Tr,
+  Td,
+  Spinner,
+  Alert,
+  AlertIcon,
+  Box,
+} from "@chakra-ui/react";
+import { useTaskXcomCollection } from "src/api";
+import { useOffsetTop } from "src/utils";
+import XcomEntry from "./XcomEntry";
+
+interface Props {
+  dagId: Dag["id"];
+  dagRunId: DagRun["runId"];
+  taskId: TaskInstance["taskId"];
+  mapIndex?: TaskInstance["mapIndex"];
+  tryNumber: TaskInstance["tryNumber"];
+}
+
+const XcomCollection = ({
+  dagId,
+  dagRunId,
+  taskId,
+  mapIndex,
+  tryNumber,
+}: Props) => {
+  const taskXcomRef = useRef<HTMLDivElement>(null);
+  const offsetTop = useOffsetTop(taskXcomRef);
+
+  const {
+    data: xcomCollection,
+    isLoading,
+    error,
+  } = useTaskXcomCollection({
+    dagId,
+    dagRunId,
+    taskId,
+    mapIndex,
+    tryNumber: tryNumber || 1,
+  });
+
+  return (
+    <Box
+      ref={taskXcomRef}
+      height="100%"
+      maxHeight={`calc(100% - ${offsetTop}px)`}
+      overflowY="auto"
+    >
+      {isLoading && <Spinner size="xl" thickness="4px" speed="0.65s" />}
+      {!!error && (
+        <Alert status="error" marginBottom="10px">
+          <AlertIcon />
+          An error occurred while fetching task XCom.
+        </Alert>
+      )}
+      {xcomCollection &&
+        (xcomCollection.totalEntries === 0 ? (
+          <Text>No XCom</Text>
+        ) : (
+          <Table variant="striped">
+            <Thead>
+              <Tr>
+                <Td>
+                  <Text as="b">Key</Text>
+                </Td>
+                <Td>
+                  <Text as="b">Value</Text>
+                </Td>
+              </Tr>
+            </Thead>
+            <Tbody>
+              {xcomCollection.xcomEntries?.map((xcomEntry) => (
+                <XcomEntry
+                  key={xcomEntry.key}
+                  dagId={dagId}
+                  dagRunId={dagRunId}
+                  taskId={taskId}
+                  mapIndex={mapIndex}
+                  xcomKey={xcomEntry.key || ""}
+                  tryNumber={tryNumber}
+                />
+              ))}
+            </Tbody>
+          </Table>
+        ))}
+    </Box>
+  );
+};
+
+export default XcomCollection;
diff --git a/airflow/www/static/js/dag/details/taskInstance/taskActions/ActionModal.tsx b/airflow/www/static/js/dag/details/taskInstance/taskActions/ActionModal.tsx
index 57128bacd13aa..e52cd30aaebe7 100644
--- a/airflow/www/static/js/dag/details/taskInstance/taskActions/ActionModal.tsx
+++ b/airflow/www/static/js/dag/details/taskInstance/taskActions/ActionModal.tsx
@@ -108,7 +108,7 @@ const ActionModal = ({
                   <AccordionIcon />
                 </AccordionButton>
                 <AccordionPanel>
-                  <Box maxHeight="400px" overflowY="auto">
+                  <Box maxHeight="35vh" overflowY="auto">
                     <AffectedTasksTable affectedTasks={affectedTasks} />
                   </Box>
                 </AccordionPanel>
diff --git a/airflow/www/static/js/dag/grid/index.tsx b/airflow/www/static/js/dag/grid/index.tsx
index dc73aecee3e8c..57f749a048418 100644
--- a/airflow/www/static/js/dag/grid/index.tsx
+++ b/airflow/www/static/js/dag/grid/index.tsx
@@ -167,7 +167,7 @@ const Grid = ({
         position="relative"
         pr={4}
         mt={8}
-        overscrollBehavior="contain"
+        overscrollBehavior="auto"
       >
         <Table pr="10px" borderRightWidth="14px" borderColor="transparent">
           <Thead>
diff --git a/airflow/www/static/js/dag/nav/FilterBar.tsx b/airflow/www/static/js/dag/nav/FilterBar.tsx
index fc3a56f1d5a3f..183f60e357d8c 100644
--- a/airflow/www/static/js/dag/nav/FilterBar.tsx
+++ b/airflow/www/static/js/dag/nav/FilterBar.tsx
@@ -20,9 +20,12 @@
 /* global moment */
 
 import { Box, Button, Flex, Input, Select } from "@chakra-ui/react";
+import MultiSelect from "src/components/MultiSelect";
 import React from "react";
 import type { DagRun, RunState, TaskState } from "src/types";
 import AutoRefresh from "src/components/AutoRefresh";
+import type { Size } from "chakra-react-select";
+import { useChakraSelectProps } from "chakra-react-select";
 
 import { useTimezone } from "src/context/timezone";
 import { isoFormatWithoutTZ } from "src/datetime_utils";
@@ -43,6 +46,7 @@ const FilterBar = () => {
     onRunTypeChange,
     onRunStateChange,
     clearFilters,
+    transformArrayToMultiSelectOptions,
   } = useFilters();
 
   const { timezone } = useTimezone();
@@ -51,7 +55,26 @@ const FilterBar = () => {
   // @ts-ignore
   const formattedTime = time.tz(timezone).format(isoFormatWithoutTZ);
 
-  const inputStyles = { backgroundColor: "white", size: "lg" };
+  const inputStyles: { backgroundColor: string; size: Size } = {
+    backgroundColor: "white",
+    size: "lg",
+  };
+
+  const multiSelectBoxStyle = { minWidth: "160px", zIndex: 3 };
+  const multiSelectStyles = useChakraSelectProps({
+    ...inputStyles,
+    isMulti: true,
+    tagVariant: "solid",
+    hideSelectedOptions: false,
+    isClearable: false,
+    selectedOptionStyle: "check",
+    chakraStyles: {
+      container: (provided) => ({
+        ...provided,
+        bg: "white",
+      }),
+    },
+  });
 
   return (
     <Flex
@@ -83,38 +106,44 @@ const FilterBar = () => {
             ))}
           </Select>
         </Box>
-        <Box px={2}>
-          <Select
-            {...inputStyles}
-            value={filters.runType || ""}
-            onChange={(e) => onRunTypeChange(e.target.value)}
-          >
-            <option value="" key="all">
-              All Run Types
-            </option>
-            {filtersOptions.runTypes.map((value) => (
-              <option value={value.toString()} key={value}>
-                {value}
-              </option>
-            ))}
-          </Select>
+        <Box px={2} style={multiSelectBoxStyle}>
+          <MultiSelect
+            {...multiSelectStyles}
+            value={transformArrayToMultiSelectOptions(filters.runType)}
+            onChange={(typeOptions) => {
+              if (
+                Array.isArray(typeOptions) &&
+                typeOptions.every((typeOption) => "value" in typeOption)
+              ) {
+                onRunTypeChange(
+                  typeOptions.map((typeOption) => typeOption.value)
+                );
+              }
+            }}
+            options={transformArrayToMultiSelectOptions(filters.runTypeOptions)}
+            placeholder="All Run Types"
+          />
         </Box>
         <Box />
-        <Box px={2}>
-          <Select
-            {...inputStyles}
-            value={filters.runState || ""}
-            onChange={(e) => onRunStateChange(e.target.value)}
-          >
-            <option value="" key="all">
-              All Run States
-            </option>
-            {filtersOptions.dagStates.map((value) => (
-              <option value={value} key={value}>
-                {value}
-              </option>
-            ))}
-          </Select>
+        <Box px={2} style={multiSelectBoxStyle}>
+          <MultiSelect
+            {...multiSelectStyles}
+            value={transformArrayToMultiSelectOptions(filters.runState)}
+            onChange={(stateOptions) => {
+              if (
+                Array.isArray(stateOptions) &&
+                stateOptions.every((stateOption) => "value" in stateOption)
+              ) {
+                onRunStateChange(
+                  stateOptions.map((stateOption) => stateOption.value)
+                );
+              }
+            }}
+            options={transformArrayToMultiSelectOptions(
+              filters.runStateOptions
+            )}
+            placeholder="All Run States"
+          />
         </Box>
         <Box px={2}>
           <Button
diff --git a/airflow/www/static/js/dag/useFilters.test.tsx b/airflow/www/static/js/dag/useFilters.test.tsx
index ce4a03d7b3ef0..87f50b5112217 100644
--- a/airflow/www/static/js/dag/useFilters.test.tsx
+++ b/airflow/www/static/js/dag/useFilters.test.tsx
@@ -21,11 +21,16 @@
 import { act, renderHook } from "@testing-library/react";
 
 import { RouterWrapper } from "src/utils/testUtils";
+import type { DagRun, RunState } from "src/types";
 
 declare global {
   namespace NodeJS {
     interface Global {
       defaultDagRunDisplayNumber: number;
+      filtersOptions: {
+        dagStates: RunState[];
+        runTypes: DagRun["runType"][];
+      };
     }
   }
 }
@@ -62,8 +67,8 @@ describe("Test useFilters hook", () => {
 
     expect(baseDate).toBe(date.toISOString());
     expect(numRuns).toBe(global.defaultDagRunDisplayNumber.toString());
-    expect(runType).toBeNull();
-    expect(runState).toBeNull();
+    expect(runType).toEqual([]);
+    expect(runState).toEqual([]);
     expect(root).toBeUndefined();
     expect(filterUpstream).toBeUndefined();
     expect(filterDownstream).toBeUndefined();
@@ -84,12 +89,22 @@ describe("Test useFilters hook", () => {
     {
       fnName: "onRunTypeChange" as keyof UtilFunctions,
       paramName: "runType" as keyof Filters,
-      paramValue: "manual",
+      paramValue: ["manual"],
+    },
+    {
+      fnName: "onRunTypeChange" as keyof UtilFunctions,
+      paramName: "runType" as keyof Filters,
+      paramValue: ["manual", "backfill"],
     },
     {
       fnName: "onRunStateChange" as keyof UtilFunctions,
       paramName: "runState" as keyof Filters,
-      paramValue: "success",
+      paramValue: ["success"],
+    },
+    {
+      fnName: "onRunStateChange" as keyof UtilFunctions,
+      paramName: "runState" as keyof Filters,
+      paramValue: ["success", "failed", "queued"],
     },
   ])("Test $fnName functions", async ({ fnName, paramName, paramValue }) => {
     const { result } = renderHook<FilterHookReturn, undefined>(
@@ -98,10 +113,12 @@ describe("Test useFilters hook", () => {
     );
 
     await act(async () => {
-      result.current[fnName](paramValue as "string" & FilterTasksProps);
+      result.current[fnName](
+        paramValue as "string" & string[] & FilterTasksProps
+      );
     });
 
-    expect(result.current.filters[paramName]).toBe(paramValue);
+    expect(result.current.filters[paramName]).toEqual(paramValue);
 
     // clearFilters
     await act(async () => {
@@ -115,7 +132,7 @@ describe("Test useFilters hook", () => {
         global.defaultDagRunDisplayNumber.toString()
       );
     } else {
-      expect(result.current.filters[paramName]).toBeNull();
+      expect(result.current.filters[paramName]).toEqual([]);
     }
   });
 
diff --git a/airflow/www/static/js/dag/useFilters.tsx b/airflow/www/static/js/dag/useFilters.tsx
index 7b8b998aac372..2d5d2eb321d1d 100644
--- a/airflow/www/static/js/dag/useFilters.tsx
+++ b/airflow/www/static/js/dag/useFilters.tsx
@@ -21,17 +21,27 @@
 
 import { useSearchParams } from "react-router-dom";
 import URLSearchParamsWrapper from "src/utils/URLSearchParamWrapper";
+import type { DagRun, RunState, TaskState } from "src/types";
 
 declare const defaultDagRunDisplayNumber: number;
 
+declare const filtersOptions: {
+  dagStates: RunState[];
+  numRuns: number[];
+  runTypes: DagRun["runType"][];
+  taskStates: TaskState[];
+};
+
 export interface Filters {
   root: string | undefined;
   filterUpstream: boolean | undefined;
   filterDownstream: boolean | undefined;
   baseDate: string | null;
   numRuns: string | null;
-  runType: string | null;
-  runState: string | null;
+  runType: string[] | null;
+  runTypeOptions: string[] | null;
+  runState: string[] | null;
+  runStateOptions: string[] | null;
 }
 
 export interface FilterTasksProps {
@@ -43,9 +53,12 @@ export interface FilterTasksProps {
 export interface UtilFunctions {
   onBaseDateChange: (value: string) => void;
   onNumRunsChange: (value: string) => void;
-  onRunTypeChange: (value: string) => void;
-  onRunStateChange: (value: string) => void;
+  onRunTypeChange: (values: string[]) => void;
+  onRunStateChange: (values: string[]) => void;
   onFilterTasksChange: (args: FilterTasksProps) => void;
+  transformArrayToMultiSelectOptions: (
+    options: string[] | null
+  ) => { label: string; value: string }[];
   clearFilters: () => void;
   resetRoot: () => void;
 }
@@ -83,8 +96,12 @@ const useFilters = (): FilterHookReturn => {
   const baseDate = searchParams.get(BASE_DATE_PARAM) || now;
   const numRuns =
     searchParams.get(NUM_RUNS_PARAM) || defaultDagRunDisplayNumber.toString();
-  const runType = searchParams.get(RUN_TYPE_PARAM);
-  const runState = searchParams.get(RUN_STATE_PARAM);
+
+  const runTypeOptions = filtersOptions.runTypes;
+  const runType = searchParams.getAll(RUN_TYPE_PARAM);
+
+  const runStateOptions = filtersOptions.dagStates;
+  const runState = searchParams.getAll(RUN_STATE_PARAM);
 
   const makeOnChangeFn =
     (paramName: string, formatFn?: (arg: string) => string) =>
@@ -98,14 +115,40 @@ const useFilters = (): FilterHookReturn => {
       setSearchParams(params);
     };
 
+  const makeMultiSelectOnChangeFn =
+    (paramName: string, options: string[]) => (values: string[]) => {
+      const params = new URLSearchParamsWrapper(searchParams);
+      if (values.length === options.length || values.length === 0) {
+        params.delete(paramName);
+      } else {
+        // Delete and reinsert anew each time; otherwise, there will be duplicates
+        params.delete(paramName);
+        values.forEach((value) => params.append(paramName, value));
+      }
+      setSearchParams(params);
+    };
+
+  const transformArrayToMultiSelectOptions = (
+    options: string[] | null
+  ): { label: string; value: string }[] =>
+    options === null
+      ? []
+      : options.map((option) => ({ label: option, value: option }));
+
   const onBaseDateChange = makeOnChangeFn(
     BASE_DATE_PARAM,
     // @ts-ignore
     (localDate: string) => moment(localDate).utc().format()
   );
   const onNumRunsChange = makeOnChangeFn(NUM_RUNS_PARAM);
-  const onRunTypeChange = makeOnChangeFn(RUN_TYPE_PARAM);
-  const onRunStateChange = makeOnChangeFn(RUN_STATE_PARAM);
+  const onRunTypeChange = makeMultiSelectOnChangeFn(
+    RUN_TYPE_PARAM,
+    filtersOptions.runTypes
+  );
+  const onRunStateChange = makeMultiSelectOnChangeFn(
+    RUN_STATE_PARAM,
+    filtersOptions.dagStates
+  );
 
   const onFilterTasksChange = ({
     root: newRoot,
@@ -154,7 +197,9 @@ const useFilters = (): FilterHookReturn => {
       baseDate,
       numRuns,
       runType,
+      runTypeOptions,
       runState,
+      runStateOptions,
     },
     onBaseDateChange,
     onNumRunsChange,
@@ -163,6 +208,7 @@ const useFilters = (): FilterHookReturn => {
     onFilterTasksChange,
     clearFilters,
     resetRoot,
+    transformArrayToMultiSelectOptions,
   };
 };
 
diff --git a/airflow/www/templates/airflow/dag.html b/airflow/www/templates/airflow/dag.html
index 40440d3fd6672..8d39d05a407db 100644
--- a/airflow/www/templates/airflow/dag.html
+++ b/airflow/www/templates/airflow/dag.html
@@ -63,13 +63,14 @@
   <meta name="graph_url" content="{{ url_for('Airflow.graph', dag_id=dag.dag_id, root=root) }}">
   <meta name="task_url" content="{{ url_for('Airflow.task', dag_id=dag.dag_id) }}">
   <meta name="log_url" content="{{ url_for('Airflow.log', dag_id=dag.dag_id) }}">
-  <meta name="xcom_url" content="{{ url_for('Airflow.xcom', dag_id=dag.dag_id) }}">
   <meta name="rendered_templates_url" content="{{ url_for('Airflow.rendered_templates', dag_id=dag.dag_id) }}">
   <meta name="rendered_k8s_url" content="{{ url_for('Airflow.rendered_k8s', dag_id=dag.dag_id) }}">
   <meta name="task_instances_list_url" content="{{ url_for('TaskInstanceModelView.list') }}">
   <meta name="tag_index_url" content="{{ url_for('Airflow.index', tags='_TAG_NAME_') }}">
   <meta name="mapped_instances_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_task_instance_endpoint_get_mapped_task_instances', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_') }}">
   <meta name="task_log_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_log_endpoint_get_log', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_', task_try_number='-1') }}">
+  <meta name="task_xcom_entries_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_xcom_endpoint_get_xcom_entries', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_') }}">
+  <meta name="task_xcom_entry_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_xcom_endpoint_get_xcom_entry', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_', xcom_key='_XCOM_KEY_') }}">
   <meta name="upstream_dataset_events_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_dag_run_endpoint_get_upstream_dataset_events', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_') }}">
   <meta name="task_instance_api" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_task_instance_endpoint_get_task_instance', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_') }}">
   <meta name="set_task_instance_note" content="{{ url_for('/api/v1.airflow_api_connexion_endpoints_task_instance_endpoint_set_task_instance_note', dag_id=dag.dag_id, dag_run_id='_DAG_RUN_ID_', task_id='_TASK_ID_' ) }}">
@@ -254,7 +255,7 @@ <h4 class="pull-right js-dataset-triggered" style="user-select: none;-moz-user-s
           {% else %}
             <a href="{{ url_for('Airflow.trigger', dag_id=dag.dag_id, origin=url_for(request.endpoint, dag_id=dag.dag_id, **request.args)) }}"
           {% endif %}
-              title="Trigger&nbsp;DAG"
+              onclick="return triggerDag(this, '{{ dag.dag_id }}')" title="Trigger&nbsp;DAG"
               aria-label="Trigger DAG"
               class="btn btn-default btn-icon-only{{ ' disabled' if not dag.can_trigger }} trigger-dropdown-btn">
               <span class="material-icons" aria-hidden="true">play_arrow</span>
@@ -289,5 +290,10 @@ <h4 class="pull-right js-dataset-triggered" style="user-select: none;-moz-user-s
       }
       return false;
     }
+
+    function triggerDag(link, dagId) {
+      postAsForm(link.href, {});
+      return false;
+    }
   </script>
 {% endblock %}
diff --git a/airflow/www/templates/airflow/dags.html b/airflow/www/templates/airflow/dags.html
index c2ccb03e5d4db..1ee168996c9e0 100644
--- a/airflow/www/templates/airflow/dags.html
+++ b/airflow/www/templates/airflow/dags.html
@@ -385,7 +385,7 @@ <h2>{{ page_title }}</h2>
                   </div>
                 {% else %}
                   <a href="{{ url_for('Airflow.trigger', dag_id=dag.dag_id, redirect_url=url_for(request.endpoint)) }}"
-                    title="Trigger&nbsp;DAG"
+                  onclick="return triggerDag(this, '{{ dag.dag_id }}')" title="Trigger&nbsp;DAG"
                     aria-label="Trigger DAG"
                     class="btn btn-sm btn-default btn-icon-only{{ ' disabled' if not dag.can_trigger }} trigger-dropdown-btn">
                     <span class="material-icons" aria-hidden="true">play_arrow</span>
@@ -483,5 +483,10 @@ <h2>{{ page_title }}</h2>
       }
       return false;
     }
+
+    function triggerDag(link, dagId) {
+      postAsForm(link.href, {});
+      return false;
+    }
   </script>
 {% endblock %}
diff --git a/airflow/www/views.py b/airflow/www/views.py
index 3e4ed75a5953c..f51fbb9e79c93 100644
--- a/airflow/www/views.py
+++ b/airflow/www/views.py
@@ -2047,7 +2047,9 @@ def trigger(self, dag_id: str, session: Session = NEW_SESSION):
             if isinstance(run_conf, dict) and any(run_conf)
         }
 
-        if request.method == "GET" and (ui_fields_defined or show_trigger_form_if_no_params):
+        if request.method == "GET" or (
+            not request_conf and (ui_fields_defined or show_trigger_form_if_no_params)
+        ):
             # Populate conf textarea with conf requests parameter, or dag.params
             default_conf = ""
 
@@ -3011,6 +3013,9 @@ def legacy_graph(self):
     def graph(self, dag_id: str, session: Session = NEW_SESSION):
         """Redirect to the replacement - grid + graph. Kept for backwards compatibility."""
         dag = get_airflow_app().dag_bag.get_dag(dag_id, session=session)
+        if not dag:
+            flash(f'DAG "{dag_id}" seems to be missing from DagBag.', "error")
+            return redirect(url_for("Airflow.index"))
         dt_nr_dr_data = get_date_time_num_runs_dag_runs_form_data(request, session, dag)
         dttm = dt_nr_dr_data["dttm"]
         dag_run = dag.get_dagrun(execution_date=dttm)
@@ -3527,13 +3532,13 @@ def grid_data(self):
         with create_session() as session:
             query = select(DagRun).where(DagRun.dag_id == dag.dag_id, DagRun.execution_date <= base_date)
 
-        run_type = request.args.get("run_type")
-        if run_type:
-            query = query.where(DagRun.run_type == run_type)
+        run_types = request.args.getlist("run_type")
+        if run_types:
+            query = query.where(DagRun.run_type.in_(run_types))
 
-        run_state = request.args.get("run_state")
-        if run_state:
-            query = query.where(DagRun.state == run_state)
+        run_states = request.args.getlist("run_state")
+        if run_states:
+            query = query.where(DagRun.state.in_(run_states))
 
         dag_runs = wwwutils.sorted_dag_runs(
             query, ordering=dag.timetable.run_ordering, limit=num_runs, session=session
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index bbcf525e77fab..3822d9da4b6fd 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -38,6 +38,7 @@
 from airflow_breeze.global_constants import (
     ALLOWED_DEBIAN_VERSIONS,
     ALLOWED_PLATFORMS,
+    ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS,
     APACHE_AIRFLOW_GITHUB_REPOSITORY,
     CURRENT_PYTHON_MAJOR_MINOR_VERSIONS,
     DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
@@ -70,6 +71,7 @@
     option_airflow_extras,
     option_airflow_site_directory,
     option_answer,
+    option_chicken_egg_providers,
     option_commit_sha,
     option_debug_resources,
     option_dry_run,
@@ -138,6 +140,7 @@
     run_compile_www_assets,
 )
 from airflow_breeze.utils.shared_options import get_dry_run, get_verbose
+from airflow_breeze.utils.versions import is_pre_release
 
 option_debug_release_management = click.option(
     "--debug",
@@ -684,21 +687,23 @@ def run_generate_constraints_in_parallel(
 @option_image_tag_for_running
 @option_debug_release_management
 @option_airflow_constraints_mode_ci
+@option_chicken_egg_providers
 @option_github_repository
 @option_verbose
 @option_dry_run
 @option_answer
 def generate_constraints(
+    airflow_constraints_mode: str,
+    debug: bool,
+    debug_resources: bool,
+    github_repository: str,
+    image_tag: str | None,
+    parallelism: int,
     python: str,
+    python_versions: str,
     run_in_parallel: bool,
-    parallelism: int,
     skip_cleanup: bool,
-    debug_resources: bool,
-    python_versions: str,
-    image_tag: str | None,
-    debug: bool,
-    airflow_constraints_mode: str,
-    github_repository: str,
+    chicken_egg_providers: str,
 ):
     perform_environment_checks()
     check_remote_ghcr_io_commands()
@@ -742,6 +747,7 @@ def generate_constraints(
                 python=python,
                 github_repository=github_repository,
                 airflow_constraints_mode=airflow_constraints_mode,
+                chicken_egg_providers=chicken_egg_providers,
             )
             for python in python_version_list
         ]
@@ -762,6 +768,7 @@ def generate_constraints(
             skip_image_upgrade_check=True,
             quiet=True,
             airflow_constraints_mode=airflow_constraints_mode,
+            chicken_egg_providers=chicken_egg_providers,
         )
         return_code, info = run_generate_constraints(
             shell_params=shell_params,
@@ -1195,6 +1202,18 @@ def add_back_references(
     start_generating_back_references(site_path, list(expand_all_provider_packages(doc_packages)))
 
 
+def _add_chicken_egg_providers_to_build_args(
+    python_build_args: dict[str, str], chicken_egg_providers: str, airflow_version: str
+):
+    if chicken_egg_providers and is_pre_release(airflow_version):
+        get_console().print(
+            f"[info]Adding chicken egg providers to build args as {airflow_version} is "
+            f"pre release and we have chicken-egg packages '{chicken_egg_providers}' defined[/]"
+        )
+        python_build_args["INSTALL_PACKAGES_FROM_CONTEXT"] = "true"
+        python_build_args["DOCKER_CONTEXT_FILES"] = "./docker-context-files"
+
+
 @release_management.command(
     name="release-prod-images", help="Release production images to DockerHub (needs DockerHub permissions)."
 )
@@ -1231,6 +1250,7 @@ def add_back_references(
     "rc/alpha/beta images are built.",
 )
 @option_commit_sha
+@option_chicken_egg_providers
 @option_verbose
 @option_dry_run
 def release_prod_images(
@@ -1241,10 +1261,11 @@ def release_prod_images(
     limit_python: str | None,
     commit_sha: str | None,
     skip_latest: bool,
+    chicken_egg_providers: str,
 ):
     perform_environment_checks()
     check_remote_ghcr_io_commands()
-    if not re.match(r"^\d*\.\d*\.\d*$", airflow_version):
+    if is_pre_release(airflow_version):
         get_console().print(
             f"[warning]Skipping latest image tagging as this is a pre-release version: {airflow_version}"
         )
@@ -1296,6 +1317,9 @@ def release_prod_images(
             get_console().print(f"[info]Building slim {airflow_version} image for Python {python}[/]")
             python_build_args = deepcopy(slim_build_args)
             slim_image_name = f"{dockerhub_repo}:slim-{airflow_version}-python{python}"
+            _add_chicken_egg_providers_to_build_args(
+                python_build_args, chicken_egg_providers, airflow_version
+            )
             docker_buildx_command = [
                 "docker",
                 "buildx",
@@ -1325,6 +1349,9 @@ def release_prod_images(
             }
             if commit_sha:
                 regular_build_args["COMMIT_SHA"] = commit_sha
+            _add_chicken_egg_providers_to_build_args(
+                regular_build_args, chicken_egg_providers, airflow_version
+            )
             docker_buildx_command = [
                 "docker",
                 "buildx",
@@ -1357,19 +1384,18 @@ def release_prod_images(
                     f"{dockerhub_repo}:{airflow_version}-python{python}",
                     f"{dockerhub_repo}:latest-python{python}",
                 )
-        if python == DEFAULT_PYTHON_MAJOR_MINOR_VERSION:
-            # only tag latest  "default" image when we build default python version
-            # otherwise if the non-default images complete before the default one, their jobs will fail
-            if slim_images:
-                alias_image(
-                    f"{dockerhub_repo}:slim-{airflow_version}",
-                    f"{dockerhub_repo}:slim-latest",
-                )
-            else:
-                alias_image(
-                    f"{dockerhub_repo}:{airflow_version}",
-                    f"{dockerhub_repo}:latest",
-                )
+            if python == ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[-1]:
+                # only tag latest "default" image when we build the latest allowed python version
+                if slim_images:
+                    alias_image(
+                        f"{dockerhub_repo}:slim-{airflow_version}",
+                        f"{dockerhub_repo}:slim-latest",
+                    )
+                else:
+                    alias_image(
+                        f"{dockerhub_repo}:{airflow_version}",
+                        f"{dockerhub_repo}:latest",
+                    )
 
 
 def is_package_in_dist(dist_files: list[str], package: str) -> bool:
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index e27ccc3dd6199..fb60e12463e9b 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -134,6 +134,7 @@
                 "--image-tag",
                 "--python",
                 "--airflow-constraints-mode",
+                "--chicken-egg-providers",
                 "--debug",
                 "--github-repository",
             ],
@@ -160,6 +161,7 @@
                 "--limit-platform",
                 "--skip-latest",
                 "--commit-sha",
+                "--chicken-egg-providers",
             ],
         }
     ],
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py
index 3b197ee8357df..874de94618b62 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -423,7 +423,6 @@ def get_airflow_extras():
     "async",
     "celery",
     "cncf.kubernetes",
-    "daskexecutor",
     "docker",
     "elasticsearch",
     "ftp",
diff --git a/dev/breeze/src/airflow_breeze/params/build_prod_params.py b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
index ed9a6b674106f..b880f2b0434d2 100644
--- a/dev/breeze/src/airflow_breeze/params/build_prod_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
@@ -191,7 +191,7 @@ def install_postgres_client(self) -> str:
 
     @property
     def docker_context_files(self) -> str:
-        return "docker-context-files"
+        return "./docker-context-files"
 
     @property
     def airflow_image_kubernetes(self) -> str:
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index a314075d29ddb..2ed8215f911fd 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -118,6 +118,7 @@ class ShellParams:
     builder: str = "autodetect"
     celery_broker: str = DEFAULT_CELERY_BROKER
     celery_flower: bool = False
+    chicken_egg_providers: str = ""
     collect_only: bool = False
     database_isolation: bool = False
     db_reset: bool = False
@@ -435,6 +436,7 @@ def env_variables_for_docker_commands(self) -> _Environ:
         _set_var(_env, "BREEZE", "true")
         _set_var(_env, "BREEZE_INIT_COMMAND", None, "")
         _set_var(_env, "CELERY_FLOWER", self.celery_flower)
+        _set_var(_env, "CHICKEN_EGG_PROVIDERS", self.chicken_egg_providers)
         _set_var(_env, "CI", None, "false")
         _set_var(_env, "CI_BUILD_ID", None, "0")
         _set_var(_env, "CI_EVENT_TYPE", None, "pull_request")
diff --git a/dev/breeze/src/airflow_breeze/pre_commit_ids.py b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
index 8c20452835318..cdb138f2e6fd1 100644
--- a/dev/breeze/src/airflow_breeze/pre_commit_ids.py
+++ b/dev/breeze/src/airflow_breeze/pre_commit_ids.py
@@ -88,6 +88,7 @@
     "end-of-file-fixer",
     "fix-encoding-pragma",
     "flynt",
+    "generate-airflow-diagrams",
     "generate-pypi-readme",
     "identity",
     "insert-license",
diff --git a/dev/breeze/src/airflow_breeze/utils/common_options.py b/dev/breeze/src/airflow_breeze/utils/common_options.py
index cf59df8bc09a3..d053a00514195 100644
--- a/dev/breeze/src/airflow_breeze/utils/common_options.py
+++ b/dev/breeze/src/airflow_breeze/utils/common_options.py
@@ -787,3 +787,11 @@ def _set_default_from_parent(ctx: click.core.Context, option: click.core.Option,
     is_flag=True,
     envvar="RESTART",
 )
+option_chicken_egg_providers = click.option(
+    "--chicken-egg-providers",
+    default="",
+    help="List of chicken-egg provider packages - "
+    "those that have airflow_version >= current_version and should "
+    "be installed in CI from locally built packages with >= current_version.dev0 ",
+    envvar="CHICKEN_EGG_PROVIDERS",
+)
diff --git a/dev/breeze/src/airflow_breeze/utils/packages.py b/dev/breeze/src/airflow_breeze/utils/packages.py
index 3d59643dbca3e..5518fdebd70ad 100644
--- a/dev/breeze/src/airflow_breeze/utils/packages.py
+++ b/dev/breeze/src/airflow_breeze/utils/packages.py
@@ -56,10 +56,6 @@
 # TODO: use single source of truth for those
 # for now we need to keep them in sync with the ones in setup.py
 PREINSTALLED_PROVIDERS = [
-    #   Until we cut off the 2.8.0 branch and bump current airflow version to 2.9.0, we should
-    #   Keep common.io commented out in order ot be able to generate PyPI constraints because
-    #   The version from PyPI has requirement of apache-airflow>=2.8.0
-    #   "common.io",
     "common.sql",
     "ftp",
     "http",
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index 0a751565ef9ae..eba3023a6c143 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -1019,3 +1019,8 @@ def mssql_parallelism(self) -> int:
     @cached_property
     def has_migrations(self) -> bool:
         return any([file.startswith("airflow/migrations/") for file in self._files])
+
+    @cached_property
+    def chicken_egg_providers(self) -> str:
+        """Space separated list of providers with chicken-egg problem and should be built from sources."""
+        return "common.io"
diff --git a/dev/breeze/src/airflow_breeze/utils/versions.py b/dev/breeze/src/airflow_breeze/utils/versions.py
index 88c5986f7d975..70dc6ad77d38b 100644
--- a/dev/breeze/src/airflow_breeze/utils/versions.py
+++ b/dev/breeze/src/airflow_breeze/utils/versions.py
@@ -34,3 +34,9 @@ def get_version_tag(version: str, provider_package_id: str, version_suffix: str
     if version_suffix is None:
         version_suffix = ""
     return f"providers-{provider_package_id.replace('.','-')}/{version}{version_suffix}"
+
+
+def is_pre_release(version: str) -> bool:
+    from packaging.version import Version
+
+    return Version(version).is_prerelease
diff --git a/dev/breeze/tests/test_packages.py b/dev/breeze/tests/test_packages.py
index e50d03d0ce5dc..1c239a044f439 100644
--- a/dev/breeze/tests/test_packages.py
+++ b/dev/breeze/tests/test_packages.py
@@ -109,17 +109,17 @@ def test_get_provider_requirements():
 
 def test_get_removed_providers():
     # Modify it every time we schedule provider for removal or remove it
-    assert [] == get_removed_provider_ids()
+    assert ["daskexecutor"] == get_removed_provider_ids()
 
 
 def test_get_suspended_provider_ids():
     # Modify it every time we suspend/resume provider
-    assert [] == get_suspended_provider_ids()
+    assert ["daskexecutor"] == get_suspended_provider_ids()
 
 
 def test_get_suspended_provider_folders():
     # Modify it every time we suspend/resume provider
-    assert [] == get_suspended_provider_folders()
+    assert ["daskexecutor"] == get_suspended_provider_folders()
 
 
 @pytest.mark.parametrize(
diff --git a/docker_tests/test_prod_image.py b/docker_tests/test_prod_image.py
index 2b83bd91799cd..c3da0f4dff855 100644
--- a/docker_tests/test_prod_image.py
+++ b/docker_tests/test_prod_image.py
@@ -122,7 +122,6 @@ def test_pip_dependencies_conflict(self):
         ],
         "celery": ["celery", "flower", "vine"],
         "cncf.kubernetes": ["kubernetes", "cryptography"],
-        "dask": ["cloudpickle", "distributed"],
         "docker": ["docker"],
         "elasticsearch": ["elasticsearch"],
         "google": [
diff --git a/docs/apache-airflow-providers-google/index.rst b/docs/apache-airflow-providers-google/index.rst
index d642d19ee25ce..b9defcd150d5f 100644
--- a/docs/apache-airflow-providers-google/index.rst
+++ b/docs/apache-airflow-providers-google/index.rst
@@ -116,7 +116,7 @@ PIP package                              Version required
 ``gcloud-aio-auth``                      ``>=4.0.0,<5.0.0``
 ``gcloud-aio-bigquery``                  ``>=6.1.2``
 ``gcloud-aio-storage``
-``gcsfs``                                ``>=2023.9.2``
+``gcsfs``                                ``>=2023.10.0``
 ``google-ads``                           ``>=22.1.0``
 ``google-api-core``                      ``>=2.11.0``
 ``google-api-python-client``             ``>=1.6.0``
diff --git a/docs/apache-airflow-providers-microsoft-azure/index.rst b/docs/apache-airflow-providers-microsoft-azure/index.rst
index 95a23f39573a6..cc1467e64fc46 100644
--- a/docs/apache-airflow-providers-microsoft-azure/index.rst
+++ b/docs/apache-airflow-providers-microsoft-azure/index.rst
@@ -106,7 +106,7 @@ The minimum Apache Airflow version supported by this provider package is ``2.5.0
 PIP package                       Version required
 ================================  ==================
 ``apache-airflow``                ``>=2.5.0``
-``adlfs``                         ``>=2023.9.2``
+``adlfs``                         ``>=2023.10.0``
 ``azure-batch``                   ``>=8.0.0``
 ``azure-cosmos``                  ``>=4.0.0``
 ``azure-mgmt-cosmosdb``
diff --git a/docs/apache-airflow/core-concepts/objectstorage.rst b/docs/apache-airflow/core-concepts/objectstorage.rst
index 046cb4852278c..d72a734293496 100644
--- a/docs/apache-airflow/core-concepts/objectstorage.rst
+++ b/docs/apache-airflow/core-concepts/objectstorage.rst
@@ -74,20 +74,22 @@ object you want to interact with. For example, to point to a bucket in s3, you w
 
     from airflow.io.path import ObjectStoragePath
 
-    base = ObjectStoragePath("s3://my-bucket/", conn_id="aws_default")  # conn_id is optional
+    base = ObjectStoragePath("s3://aws_default@my-bucket/")
 
+The username part of the URI is optional. It can alternatively be passed in as a separate keyword argument:
+
+.. code-block:: python
+
+    # Equivalent to the previous example.
+    base = ObjectStoragePath("s3://my-bucket/", conn_id="aws_default")
 
 Listing file-objects:
 
 .. code-block:: python
 
     @task
-    def list_files() -> list(ObjectStoragePath):
-        files = []
-        for f in base.iterdir():
-            if f.is_file():
-                files.append(f)
-
+    def list_files() -> list[ObjectStoragePath]:
+        files = [f for f in base.iterdir() if f.is_file()]
         return files
 
 
diff --git a/docs/apache-airflow/core-concepts/overview.rst b/docs/apache-airflow/core-concepts/overview.rst
index 547497b0cef68..ce8d1adfb9349 100644
--- a/docs/apache-airflow/core-concepts/overview.rst
+++ b/docs/apache-airflow/core-concepts/overview.rst
@@ -31,18 +31,37 @@ An Airflow installation generally consists of the following components:
 
 * An :doc:`executor <executor/index>`, which handles running tasks. In the default Airflow installation, this runs everything *inside* the scheduler, but most production-suitable executors actually push task execution out to *workers*.
 
+* A *triggerer*, which executes deferred tasks - executed in an async-io event loop.
+
 * A *webserver*, which presents a handy user interface to inspect, trigger and debug the behaviour of DAGs and tasks.
 
 * A folder of *DAG files*, read by the scheduler and executor (and any workers the executor has)
 
 * A *metadata database*, used by the scheduler, executor and webserver to store state.
 
-.. image:: ../img/arch-diag-basic.png
+
+Basic airflow architecture
+--------------------------
+
+This is the basic architecture of Airflow that you'll see in simple installations:
+
+.. image:: ../img/diagram_basic_airflow_architecture.png
 
 Most executors will generally also introduce other components to let them talk to their workers - like a task queue - but you can still think of the executor and its workers as a single logical component in Airflow overall, handling the actual task execution.
 
 Airflow itself is agnostic to what you're running - it will happily orchestrate and run anything, either with high-level support from one of our providers, or directly as a command using the shell or Python :doc:`operators`.
 
+Separate DAG processing architecture
+------------------------------------
+
+In a more complex installation where security and isolation are important, you'll also see the standalone **dag file processor** component that allows to separate scheduler from accessing DAG file. This is suitable if the
+deployment focus is on isolation between parsed tasks. While Airflow does not yet support full multi-tenant features, it can be used to make sure that DAG-author provided code is never executed in the context of the scheduler.
+
+.. image:: ../img/diagram_dag_processor_airflow_architecture.png
+
+You can read more about the different types of users and how they interact with Airflow and how the
+security model of Airflow access look like in the :doc:`/security/security_model`
+
 Workloads
 ---------
 
diff --git a/docs/apache-airflow/extra-packages-ref.rst b/docs/apache-airflow/extra-packages-ref.rst
index 32e6d892bca3b..80c285b5aab9b 100644
--- a/docs/apache-airflow/extra-packages-ref.rst
+++ b/docs/apache-airflow/extra-packages-ref.rst
@@ -247,8 +247,6 @@ Some of those enable Airflow to use executors to run tasks with them - other tha
 +---------------------+-----------------------------------------------------+-----------------------------------------------------------------+----------------------------------------------+
 | cncf.kubernetes     | ``pip install 'apache-airflow[cncf.kubernetes]'``   | Kubernetes client libraries, KubernetesPodOperator & friends    | KubernetesExecutor, LocalKubernetesExecutor  |
 +---------------------+-----------------------------------------------------+-----------------------------------------------------------------+----------------------------------------------+
-| daskexecutor        | ``pip install 'apache-airflow[daskexecutor]'``      | Dask libraries including ``distributed`` execution library      | DaskExecutor                                 |
-+---------------------+-----------------------------------------------------+-----------------------------------------------------------------+----------------------------------------------+
 | docker              | ``pip install 'apache-airflow[docker]'``            | Docker hooks and operators                                      |                                              |
 +---------------------+-----------------------------------------------------+-----------------------------------------------------------------+----------------------------------------------+
 | elasticsearch       | ``pip install 'apache-airflow[elasticsearch]'``     | Elasticsearch hooks and Log Handler                             |                                              |
@@ -392,8 +390,6 @@ so there is no replacement for ``crypto`` extra.
 +---------------------+-----------------------------+
 | crypto              |                             |
 +---------------------+-----------------------------+
-| dask                | daskexecutor                |
-+---------------------+-----------------------------+
 | druid               | apache.druid                |
 +---------------------+-----------------------------+
 | gcp                 | google                      |
diff --git a/docs/apache-airflow/howto/operator/python.rst b/docs/apache-airflow/howto/operator/python.rst
index 6cfb5a335d24a..d785b3cdb2a38 100644
--- a/docs/apache-airflow/howto/operator/python.rst
+++ b/docs/apache-airflow/howto/operator/python.rst
@@ -22,28 +22,55 @@
 PythonOperator
 ==============
 
-Use the ``@task`` decorator to execute Python callables.
+Use the :class:`~airflow.operators.python.PythonOperator` to execute Python callables.
 
 .. warning::
-    The ``@task`` decorator is recommended over the classic :class:`~airflow.operators.python.PythonOperator`
-    to execute Python callables.
+    The ``@task`` decorator is recommended over the classic ``PythonOperator`` to execute Python callables.
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_python]
-    :end-before: [END howto_operator_python]
+.. tab-set::
+
+    .. tab-item:: @task
+        :sync: taskflow
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python]
+            :end-before: [END howto_operator_python]
+
+    .. tab-item:: PythonOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python]
+            :end-before: [END howto_operator_python]
 
 Passing in arguments
 ^^^^^^^^^^^^^^^^^^^^
 
 Pass extra arguments to the ``@task`` decorated function as you would with a normal Python function.
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_python_kwargs]
-    :end-before: [END howto_operator_python_kwargs]
+.. tab-set::
+
+    .. tab-item:: @task
+        :sync: taskflow
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_kwargs]
+            :end-before: [END howto_operator_python_kwargs]
+
+    .. tab-item:: PythonOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_kwargs]
+            :end-before: [END howto_operator_python_kwargs]
 
 Templating
 ^^^^^^^^^^
@@ -55,42 +82,58 @@ argument.
 The ``templates_dict`` argument is templated, so each value in the dictionary
 is evaluated as a :ref:`Jinja template <concepts:jinja-templating>`.
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_python_render_sql]
-    :end-before: [END howto_operator_python_render_sql]
+.. tab-set::
+
+    .. tab-item:: @task
+        :sync: taskflow
 
+        .. exampleinclude:: /../../airflow/example_dags/example_python_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_render_sql]
+            :end-before: [END howto_operator_python_render_sql]
 
+    .. tab-item:: PythonOperator
+        :sync: operator
 
+        .. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_render_sql]
+            :end-before: [END howto_operator_python_render_sql]
 
 .. _howto/operator:PythonVirtualenvOperator:
 
 PythonVirtualenvOperator
 ========================
 
-Use the ``@task.virtualenv`` decorator to execute Python callables inside a new Python virtual environment.
-The ``virtualenv`` package needs to be installed in the environment that runs Airflow (as optional dependency ``pip install apache-airflow[virtualenv] --constraint ...``).
+Use the :class:`~airflow.operators.python.PythonVirtualenvOperator` decorator to execute Python callables
+inside a new Python virtual environment. The ``virtualenv`` package needs to be installed in the environment
+that runs Airflow (as optional dependency ``pip install apache-airflow[virtualenv] --constraint ...``).
 
 .. warning::
-    The ``@task.virtualenv`` decorator is recommended over the classic :class:`~airflow.operators.python.PythonVirtualenvOperator`
+    The ``@task.virtualenv`` decorator is recommended over the classic ``PythonVirtualenvOperator``
     to execute Python callables inside new Python virtual environments.
 
-TaskFlow example of using the PythonVirtualenvOperator:
+.. tab-set::
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_python_venv]
-    :end-before: [END howto_operator_python_venv]
+    .. tab-item:: @task.virtualenv
+        :sync: taskflow
 
-Classic example of using the PythonVirtualenvOperator:
+        .. exampleinclude:: /../../airflow/example_dags/example_python_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_venv]
+            :end-before: [END howto_operator_python_venv]
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_python_venv_classic]
-    :end-before: [END howto_operator_python_venv_classic]
+    .. tab-item:: PythonVirtualenvOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_python_venv]
+            :end-before: [END howto_operator_python_venv]
 
 Passing in arguments
 ^^^^^^^^^^^^^^^^^^^^
@@ -176,21 +219,29 @@ pre-defined environment. The virtualenv package should be preinstalled in the en
 In case ``dill`` is used, it has to be preinstalled in the environment (the same version that is installed
 in main Airflow environment).
 
-TaskFlow example of using the operator:
+.. warning::
+    The ``@task.external_python`` decorator is recommended over the classic ``ExternalPythonOperator``
+    to execute Python code in pre-defined Python environments.
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_external_python]
-    :end-before: [END howto_operator_external_python]
+.. tab-set::
 
-Classic example of using the operator:
+    .. tab-item:: @task.external_python
+        :sync: taskflow
 
-.. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_external_python_classic]
-    :end-before: [END howto_operator_external_python_classic]
+        .. exampleinclude:: /../../airflow/example_dags/example_python_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_external_python]
+            :end-before: [END howto_operator_external_python]
+
+    .. tab-item:: ExternalPythonOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_python_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_external_python]
+            :end-before: [END howto_operator_external_python]
 
 
 Passing in arguments
@@ -216,27 +267,32 @@ If you want the context related to datetime objects like ``data_interval_start``
 PythonBranchOperator
 ====================
 
-Use the ``@task.branch`` decorator to execute Python :ref:`branching <concepts:branching>` tasks.
+Use the :class:`~airflow.operators.python.PythonBranchOperator` to execute Python :ref:`branching <concepts:branching>`
+tasks.
 
 .. warning::
-    The ``@task.branch`` decorator is recommended over the classic :class:`~airflow.operators.python.PythonBranchOperator`
+    The ``@task.branch`` decorator is recommended over the classic ``PythonBranchOperator``
     to execute Python code.
 
-TaskFlow example of using the operator:
+.. tab-set::
+
+    .. tab-item:: @task.branch
+        :sync: taskflow
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_python]
-    :end-before: [END howto_operator_branch_python]
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_python]
+            :end-before: [END howto_operator_branch_python]
 
-Classic example of using the operator:
+    .. tab-item:: PythonBranchOperator
+        :sync: operator
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_python]
-    :end-before: [END howto_operator_branch_python]
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_python]
+            :end-before: [END howto_operator_branch_python]
 
 Argument passing and templating options are the same like with :ref:`howto/operator:PythonOperator`.
 
@@ -245,28 +301,32 @@ Argument passing and templating options are the same like with :ref:`howto/opera
 BranchPythonVirtualenvOperator
 ==============================
 
-Use the ``@task.branch_virtualenv`` decorator to execute Python :ref:`branching <concepts:branching>` tasks and is a hybrid of
-the branch decorator with execution in a virtual environment.
+Use the :class:`~airflow.operators.python.BranchPythonVirtualenvOperator` decorator to execute Python :ref:`branching <concepts:branching>`
+tasks and is a hybrid of the :class:`~airflow.operators.python.PythonBranchOperator` with execution in a virtual environment.
 
 .. warning::
     The ``@task.branch_virtualenv`` decorator is recommended over the classic
-    :class:`~airflow.operators.python.BranchPythonVirtualenvOperator` to execute Python code.
+    ``BranchPythonVirtualenvOperator`` to execute Python code.
 
-TaskFlow example of using the operator:
+.. tab-set::
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_virtualenv]
-    :end-before: [END howto_operator_branch_virtualenv]
+    .. tab-item:: @task.branch_virtualenv
+        :sync: taskflow
 
-Classic example of using the operator:
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_virtualenv]
+            :end-before: [END howto_operator_branch_virtualenv]
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_virtualenv]
-    :end-before: [END howto_operator_branch_virtualenv]
+    .. tab-item:: BranchPythonVirtualenvOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_virtualenv]
+            :end-before: [END howto_operator_branch_virtualenv]
 
 Argument passing and templating options are the same like with :ref:`howto/operator:PythonVirtualenvOperator`.
 
@@ -275,28 +335,33 @@ Argument passing and templating options are the same like with :ref:`howto/opera
 BranchExternalPythonOperator
 ============================
 
-Use the ``@task.branch_external_python`` decorator to execute Python :ref:`branching <concepts:branching>` tasks and is a hybrid of
-the branch decorator with execution in an external Python environment.
+Use the :class:`~airflow.operators.python.BranchExternalPythonOperator` to execute Python :ref:`branching <concepts:branching>`
+tasks and is a hybrid of the :class:`~airflow.operators.python.PythonBranchOperator` with execution in an
+external Python environment.
 
 .. warning::
     The ``@task.branch_external_python`` decorator is recommended over the classic
-    :class:`~airflow.operators.python.BranchExternalPythonOperator` to execute Python code.
+    ``BranchExternalPythonOperator`` to execute Python code.
+
+.. tab-set::
 
-TaskFlow example of using the operator:
+    .. tab-item:: @task.branch_external_python
+        :sync: taskflow
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_ext_py]
-    :end-before: [END howto_operator_branch_ext_py]
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_ext_py]
+            :end-before: [END howto_operator_branch_ext_py]
 
-Classic example of using the operator:
+    .. tab-item:: BranchExternalPythonOperator
+        :sync: operator
 
-.. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_branch_ext_py]
-    :end-before: [END howto_operator_branch_ext_py]
+        .. exampleinclude:: /../../airflow/example_dags/example_branch_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_branch_ext_py]
+            :end-before: [END howto_operator_branch_ext_py]
 
 Argument passing and templating options are the same like with :ref:`howto/operator:ExternalPythonOperator`.
 
@@ -305,26 +370,39 @@ Argument passing and templating options are the same like with :ref:`howto/opera
 ShortCircuitOperator
 ====================
 
-Use the ``@task.short_circuit`` decorator to control whether a pipeline continues
+Use the :class:`~airflow.operators.python.ShortCircuitOperator` to control whether a pipeline continues
 if a condition is satisfied or a truthy value is obtained.
 
+The evaluation of this condition and truthy value is done via the output of a callable. If the
+callable returns True or a truthy value, the pipeline is allowed to continue and an :ref:`XCom <concepts:xcom>`
+of the output will be pushed. If the output is False or a falsy value, the pipeline will be short-circuited
+based on the configured short-circuiting (more on this later). In the example below, the tasks that follow the
+"condition_is_true" task will execute while the tasks downstream of the "condition_is_false" task will be
+skipped.
+
 .. warning::
-    The ``@task.short_circuit`` decorator is recommended over the classic :class:`~airflow.operators.python.ShortCircuitOperator`
+    The ``@task.short_circuit`` decorator is recommended over the classic ``ShortCircuitOperator``
     to short-circuit pipelines via Python callables.
 
-The evaluation of this condition and truthy value
-is done via the output of the decorated function. If the decorated function returns True or a truthy value,
-the pipeline is allowed to continue and an :ref:`XCom <concepts:xcom>` of the output will be pushed. If the
-output is False or a falsy value, the pipeline will be short-circuited based on the configured
-short-circuiting (more on this later). In the example below, the tasks that follow the "condition_is_true"
-task will execute while the tasks downstream of the "condition_is_false" task will be skipped.
+.. tab-set::
+
+    .. tab-item:: @task.short_circuit
+        :sync: taskflow
 
+        .. exampleinclude:: /../../airflow/example_dags/example_short_circuit_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_short_circuit]
+            :end-before: [END howto_operator_short_circuit]
 
-.. exampleinclude:: /../../airflow/example_dags/example_short_circuit_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_short_circuit]
-    :end-before: [END howto_operator_short_circuit]
+    .. tab-item:: ShortCircuitOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_short_circuit_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_short_circuit]
+            :end-before: [END howto_operator_short_circuit]
 
 
 The "short-circuiting" can be configured to either respect or ignore the :ref:`trigger rule <concepts:trigger-rules>`
@@ -341,12 +419,25 @@ rules. This means while the tasks that follow the "short_circuit" task will be s
 since the decorated function returns False, "task_7" will still execute as its set to execute when upstream
 tasks have completed running regardless of status (i.e. the ``TriggerRule.ALL_DONE`` trigger rule).
 
-.. exampleinclude:: /../../airflow/example_dags/example_short_circuit_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START howto_operator_short_circuit_trigger_rules]
-    :end-before: [END howto_operator_short_circuit_trigger_rules]
+.. tab-set::
+
+    .. tab-item:: @task.short_circuit
+        :sync: taskflow
+
+        .. exampleinclude:: /../../airflow/example_dags/example_short_circuit_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_short_circuit_trigger_rules]
+            :end-before: [END howto_operator_short_circuit_trigger_rules]
 
+    .. tab-item:: ShortCircuitOperator
+        :sync: operator
+
+        .. exampleinclude:: /../../airflow/example_dags/example_short_circuit_operator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START howto_operator_short_circuit_trigger_rules]
+            :end-before: [END howto_operator_short_circuit_trigger_rules]
 
 Passing in arguments
 ^^^^^^^^^^^^^^^^^^^^
@@ -364,17 +455,29 @@ Jinja templating can be used in same way as described for the PythonOperator.
 PythonSensor
 ============
 
-Sensors can be used in two ways. One is to use the :class:`~airflow.sensors.python.PythonSensor` to use arbitrary callable for sensing. The callable
-should return True when it succeeds, False otherwise. The other uses the Taskflow API utilizing the :class:`~airflow.decorators.task.sensor` as a decorator on a function.
+The :class:`~airflow.sensors.python.PythonSensor` executes an arbitrary callable and waits for its return
+value to be True.
+
+.. warning::
+    The ``@task.sensor`` decorator is recommended over the classic ``PythonSensor``
+    to execute Python callables to check for True condition.
+
+.. tab-set::
+
+    .. tab-item:: @task.sensor
+        :sync: taskflow
+
+        .. exampleinclude:: /../../airflow/example_dags/example_sensor_decorator.py
+            :language: python
+            :dedent: 4
+            :start-after: [START wait_function]
+            :end-before: [END wait_function]
 
-.. exampleinclude:: /../../airflow/example_dags/example_sensors.py
-    :language: python
-    :dedent: 4
-    :start-after: [START example_python_sensors]
-    :end-before: [END example_python_sensors]
+    .. tab-item:: PythonSensor
+        :sync: operator
 
-.. exampleinclude:: /../../airflow/example_dags/example_sensor_decorator.py
-    :language: python
-    :dedent: 4
-    :start-after: [START wait_function]
-    :end-before: [END wait_function]
+        .. exampleinclude:: /../../airflow/example_dags/example_sensors.py
+            :language: python
+            :dedent: 4
+            :start-after: [START example_python_sensors]
+            :end-before: [END example_python_sensors]
diff --git a/docs/apache-airflow/img/airflow_erd.sha256 b/docs/apache-airflow/img/airflow_erd.sha256
index 301abf8a84311..ded2722d373cc 100644
--- a/docs/apache-airflow/img/airflow_erd.sha256
+++ b/docs/apache-airflow/img/airflow_erd.sha256
@@ -1 +1 @@
-8229a936107bee851d6a39c791b842b11f295ffa308b18106e45298a50871493
\ No newline at end of file
+a5677b0b603e8835f92da4b8b061ec268ce7257ef6b446f12593743ecf90710a
\ No newline at end of file
diff --git a/docs/apache-airflow/img/airflow_erd.svg b/docs/apache-airflow/img/airflow_erd.svg
index 91b4231b3e406..497ef76975f7d 100644
--- a/docs/apache-airflow/img/airflow_erd.svg
+++ b/docs/apache-airflow/img/airflow_erd.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: %3 Pages: 1 -->
-<svg width="1559pt" height="5142pt"
- viewBox="0.00 0.00 1559.00 5141.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 5137.5)">
+<svg width="1559pt" height="5167pt"
+ viewBox="0.00 0.00 1559.00 5166.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 5162.5)">
 <title>%3</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-5137.5 1555,-5137.5 1555,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-5162.5 1555,-5162.5 1555,4 -4,4"/>
 <!-- job -->
 <g id="node1" class="node">
 <title>job</title>
@@ -423,405 +423,408 @@
 <!-- import_error -->
 <g id="node13" class="node">
 <title>import_error</title>
-<polygon fill="none" stroke="black" points="91.5,-3321 91.5,-3349 292.5,-3349 292.5,-3321 91.5,-3321"/>
-<text text-anchor="start" x="134.5" y="-3332.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">import_error</text>
-<polygon fill="none" stroke="black" points="91.5,-3296 91.5,-3321 292.5,-3321 292.5,-3296 91.5,-3296"/>
-<text text-anchor="start" x="96.5" y="-3305.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="109.5" y="-3305.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="186.5" y="-3305.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="91.5,-3271 91.5,-3296 292.5,-3296 292.5,-3271 91.5,-3271"/>
-<text text-anchor="start" x="96.5" y="-3280.8" font-family="Helvetica,sans-Serif" font-size="14.00">filename</text>
-<text text-anchor="start" x="157.5" y="-3280.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1024)]</text>
-<polygon fill="none" stroke="black" points="91.5,-3246 91.5,-3271 292.5,-3271 292.5,-3246 91.5,-3246"/>
-<text text-anchor="start" x="96.5" y="-3255.8" font-family="Helvetica,sans-Serif" font-size="14.00">stacktrace</text>
-<text text-anchor="start" x="169.5" y="-3255.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
-<polygon fill="none" stroke="black" points="91.5,-3221 91.5,-3246 292.5,-3246 292.5,-3221 91.5,-3221"/>
-<text text-anchor="start" x="96.5" y="-3230.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="171.5" y="-3230.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="62.5,-3346 62.5,-3374 321.5,-3374 321.5,-3346 62.5,-3346"/>
+<text text-anchor="start" x="134.5" y="-3357.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">import_error</text>
+<polygon fill="none" stroke="black" points="62.5,-3321 62.5,-3346 321.5,-3346 321.5,-3321 62.5,-3321"/>
+<text text-anchor="start" x="67.5" y="-3330.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="80.5" y="-3330.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="157.5" y="-3330.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="62.5,-3296 62.5,-3321 321.5,-3321 321.5,-3296 62.5,-3296"/>
+<text text-anchor="start" x="67.5" y="-3305.8" font-family="Helvetica,sans-Serif" font-size="14.00">filename</text>
+<text text-anchor="start" x="128.5" y="-3305.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1024)]</text>
+<polygon fill="none" stroke="black" points="62.5,-3271 62.5,-3296 321.5,-3296 321.5,-3271 62.5,-3271"/>
+<text text-anchor="start" x="67.5" y="-3280.8" font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
+<text text-anchor="start" x="186.5" y="-3280.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<polygon fill="none" stroke="black" points="62.5,-3246 62.5,-3271 321.5,-3271 321.5,-3246 62.5,-3246"/>
+<text text-anchor="start" x="67.5" y="-3255.8" font-family="Helvetica,sans-Serif" font-size="14.00">stacktrace</text>
+<text text-anchor="start" x="140.5" y="-3255.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<polygon fill="none" stroke="black" points="62.5,-3221 62.5,-3246 321.5,-3246 321.5,-3221 62.5,-3221"/>
+<text text-anchor="start" x="67.5" y="-3230.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
+<text text-anchor="start" x="142.5" y="-3230.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 </g>
 <!-- sla_miss -->
 <g id="node14" class="node">
 <title>sla_miss</title>
-<polygon fill="none" stroke="black" points="48.5,-3550 48.5,-3578 335.5,-3578 335.5,-3550 48.5,-3550"/>
-<text text-anchor="start" x="154" y="-3561.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">sla_miss</text>
+<polygon fill="none" stroke="black" points="48.5,-3575 48.5,-3603 335.5,-3603 335.5,-3575 48.5,-3575"/>
+<text text-anchor="start" x="154" y="-3586.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">sla_miss</text>
+<polygon fill="none" stroke="black" points="48.5,-3550 48.5,-3575 335.5,-3575 335.5,-3550 48.5,-3550"/>
+<text text-anchor="start" x="53.5" y="-3559.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="99.5" y="-3559.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="220.5" y="-3559.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="48.5,-3525 48.5,-3550 335.5,-3550 335.5,-3525 48.5,-3525"/>
-<text text-anchor="start" x="53.5" y="-3534.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="99.5" y="-3534.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="220.5" y="-3534.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="53.5" y="-3534.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">execution_date</text>
+<text text-anchor="start" x="158.5" y="-3534.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="254.5" y="-3534.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="48.5,-3500 48.5,-3525 335.5,-3525 335.5,-3500 48.5,-3500"/>
-<text text-anchor="start" x="53.5" y="-3509.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">execution_date</text>
-<text text-anchor="start" x="158.5" y="-3509.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="254.5" y="-3509.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="53.5" y="-3509.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="102.5" y="-3509.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="223.5" y="-3509.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="48.5,-3475 48.5,-3500 335.5,-3500 335.5,-3475 48.5,-3475"/>
-<text text-anchor="start" x="53.5" y="-3484.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="102.5" y="-3484.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="223.5" y="-3484.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="53.5" y="-3484.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
+<text text-anchor="start" x="131.5" y="-3484.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
 <polygon fill="none" stroke="black" points="48.5,-3450 48.5,-3475 335.5,-3475 335.5,-3450 48.5,-3450"/>
-<text text-anchor="start" x="53.5" y="-3459.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
-<text text-anchor="start" x="131.5" y="-3459.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="53.5" y="-3459.8" font-family="Helvetica,sans-Serif" font-size="14.00">email_sent</text>
+<text text-anchor="start" x="128.5" y="-3459.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="48.5,-3425 48.5,-3450 335.5,-3450 335.5,-3425 48.5,-3425"/>
-<text text-anchor="start" x="53.5" y="-3434.8" font-family="Helvetica,sans-Serif" font-size="14.00">email_sent</text>
-<text text-anchor="start" x="128.5" y="-3434.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="53.5" y="-3434.8" font-family="Helvetica,sans-Serif" font-size="14.00">notification_sent</text>
+<text text-anchor="start" x="168.5" y="-3434.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="48.5,-3400 48.5,-3425 335.5,-3425 335.5,-3400 48.5,-3400"/>
-<text text-anchor="start" x="53.5" y="-3409.8" font-family="Helvetica,sans-Serif" font-size="14.00">notification_sent</text>
-<text text-anchor="start" x="168.5" y="-3409.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="48.5,-3375 48.5,-3400 335.5,-3400 335.5,-3375 48.5,-3375"/>
-<text text-anchor="start" x="53.5" y="-3384.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="128.5" y="-3384.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="53.5" y="-3409.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
+<text text-anchor="start" x="128.5" y="-3409.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 </g>
 <!-- variable -->
 <g id="node15" class="node">
 <title>variable</title>
-<polygon fill="none" stroke="black" points="100.5,-3729 100.5,-3757 283.5,-3757 283.5,-3729 100.5,-3729"/>
-<text text-anchor="start" x="155.5" y="-3740.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">variable</text>
+<polygon fill="none" stroke="black" points="100.5,-3754 100.5,-3782 283.5,-3782 283.5,-3754 100.5,-3754"/>
+<text text-anchor="start" x="155.5" y="-3765.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">variable</text>
+<polygon fill="none" stroke="black" points="100.5,-3729 100.5,-3754 283.5,-3754 283.5,-3729 100.5,-3729"/>
+<text text-anchor="start" x="105.5" y="-3738.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="118.5" y="-3738.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="195.5" y="-3738.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="100.5,-3704 100.5,-3729 283.5,-3729 283.5,-3704 100.5,-3704"/>
-<text text-anchor="start" x="105.5" y="-3713.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="118.5" y="-3713.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="195.5" y="-3713.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="105.5" y="-3713.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
+<text text-anchor="start" x="183.5" y="-3713.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
 <polygon fill="none" stroke="black" points="100.5,-3679 100.5,-3704 283.5,-3704 283.5,-3679 100.5,-3679"/>
-<text text-anchor="start" x="105.5" y="-3688.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
-<text text-anchor="start" x="183.5" y="-3688.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="105.5" y="-3688.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_encrypted</text>
+<text text-anchor="start" x="194.5" y="-3688.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="100.5,-3654 100.5,-3679 283.5,-3679 283.5,-3654 100.5,-3654"/>
-<text text-anchor="start" x="105.5" y="-3663.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_encrypted</text>
-<text text-anchor="start" x="194.5" y="-3663.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="105.5" y="-3663.8" font-family="Helvetica,sans-Serif" font-size="14.00">key</text>
+<text text-anchor="start" x="130.5" y="-3663.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
 <polygon fill="none" stroke="black" points="100.5,-3629 100.5,-3654 283.5,-3654 283.5,-3629 100.5,-3629"/>
-<text text-anchor="start" x="105.5" y="-3638.8" font-family="Helvetica,sans-Serif" font-size="14.00">key</text>
-<text text-anchor="start" x="130.5" y="-3638.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<polygon fill="none" stroke="black" points="100.5,-3604 100.5,-3629 283.5,-3629 283.5,-3604 100.5,-3604"/>
-<text text-anchor="start" x="105.5" y="-3613.8" font-family="Helvetica,sans-Serif" font-size="14.00">val</text>
-<text text-anchor="start" x="126.5" y="-3613.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="105.5" y="-3638.8" font-family="Helvetica,sans-Serif" font-size="14.00">val</text>
+<text text-anchor="start" x="126.5" y="-3638.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
 </g>
 <!-- serialized_dag -->
 <g id="node16" class="node">
 <title>serialized_dag</title>
-<polygon fill="none" stroke="black" points="55.5,-3984 55.5,-4012 327.5,-4012 327.5,-3984 55.5,-3984"/>
-<text text-anchor="start" x="128" y="-3995.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">serialized_dag</text>
+<polygon fill="none" stroke="black" points="55.5,-4009 55.5,-4037 327.5,-4037 327.5,-4009 55.5,-4009"/>
+<text text-anchor="start" x="128" y="-4020.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">serialized_dag</text>
+<polygon fill="none" stroke="black" points="55.5,-3984 55.5,-4009 327.5,-4009 327.5,-3984 55.5,-3984"/>
+<text text-anchor="start" x="60.5" y="-3993.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="106.5" y="-3993.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="227.5" y="-3993.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="55.5,-3959 55.5,-3984 327.5,-3984 327.5,-3959 55.5,-3959"/>
-<text text-anchor="start" x="60.5" y="-3968.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="106.5" y="-3968.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="227.5" y="-3968.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="60.5" y="-3968.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_hash</text>
+<text text-anchor="start" x="127.5" y="-3968.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
+<text text-anchor="start" x="239.5" y="-3968.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="55.5,-3934 55.5,-3959 327.5,-3959 327.5,-3934 55.5,-3934"/>
-<text text-anchor="start" x="60.5" y="-3943.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_hash</text>
-<text text-anchor="start" x="127.5" y="-3943.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
-<text text-anchor="start" x="239.5" y="-3943.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="60.5" y="-3943.8" font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
+<text text-anchor="start" x="91.5" y="-3943.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
 <polygon fill="none" stroke="black" points="55.5,-3909 55.5,-3934 327.5,-3934 327.5,-3909 55.5,-3909"/>
-<text text-anchor="start" x="60.5" y="-3918.8" font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
-<text text-anchor="start" x="91.5" y="-3918.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="60.5" y="-3918.8" font-family="Helvetica,sans-Serif" font-size="14.00">data_compressed</text>
+<text text-anchor="start" x="182.5" y="-3918.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
 <polygon fill="none" stroke="black" points="55.5,-3884 55.5,-3909 327.5,-3909 327.5,-3884 55.5,-3884"/>
-<text text-anchor="start" x="60.5" y="-3893.8" font-family="Helvetica,sans-Serif" font-size="14.00">data_compressed</text>
-<text text-anchor="start" x="182.5" y="-3893.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
+<text text-anchor="start" x="60.5" y="-3893.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
+<text text-anchor="start" x="101.5" y="-3893.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<text text-anchor="start" x="231.5" y="-3893.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="55.5,-3859 55.5,-3884 327.5,-3884 327.5,-3859 55.5,-3859"/>
-<text text-anchor="start" x="60.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
-<text text-anchor="start" x="101.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
-<text text-anchor="start" x="231.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="60.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc_hash</text>
+<text text-anchor="start" x="142.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BIGINT]</text>
+<text text-anchor="start" x="206.5" y="-3868.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="55.5,-3834 55.5,-3859 327.5,-3859 327.5,-3834 55.5,-3834"/>
-<text text-anchor="start" x="60.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc_hash</text>
-<text text-anchor="start" x="142.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BIGINT]</text>
-<text text-anchor="start" x="206.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="60.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_updated</text>
+<text text-anchor="start" x="150.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="246.5" y="-3843.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="55.5,-3809 55.5,-3834 327.5,-3834 327.5,-3809 55.5,-3809"/>
-<text text-anchor="start" x="60.5" y="-3818.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_updated</text>
-<text text-anchor="start" x="150.5" y="-3818.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="246.5" y="-3818.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="55.5,-3784 55.5,-3809 327.5,-3809 327.5,-3784 55.5,-3784"/>
-<text text-anchor="start" x="60.5" y="-3793.8" font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
-<text text-anchor="start" x="179.5" y="-3793.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<text text-anchor="start" x="60.5" y="-3818.8" font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
+<text text-anchor="start" x="179.5" y="-3818.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
 </g>
 <!-- dataset -->
 <g id="node17" class="node">
 <title>dataset</title>
-<polygon fill="none" stroke="black" points="61.5,-4868 61.5,-4896 322.5,-4896 322.5,-4868 61.5,-4868"/>
-<text text-anchor="start" x="158" y="-4879.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dataset</text>
+<polygon fill="none" stroke="black" points="61.5,-4893 61.5,-4921 322.5,-4921 322.5,-4893 61.5,-4893"/>
+<text text-anchor="start" x="158" y="-4904.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dataset</text>
+<polygon fill="none" stroke="black" points="61.5,-4868 61.5,-4893 322.5,-4893 322.5,-4868 61.5,-4868"/>
+<text text-anchor="start" x="66.5" y="-4877.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="79.5" y="-4877.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="156.5" y="-4877.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="61.5,-4843 61.5,-4868 322.5,-4868 322.5,-4843 61.5,-4843"/>
-<text text-anchor="start" x="66.5" y="-4852.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="79.5" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="156.5" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="66.5" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="139.5" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="235.5" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="61.5,-4818 61.5,-4843 322.5,-4843 322.5,-4818 61.5,-4818"/>
-<text text-anchor="start" x="66.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="139.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="235.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="66.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00">extra</text>
+<text text-anchor="start" x="103.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="154.5" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="61.5,-4793 61.5,-4818 322.5,-4818 322.5,-4793 61.5,-4793"/>
-<text text-anchor="start" x="66.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00">extra</text>
-<text text-anchor="start" x="103.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<text text-anchor="start" x="154.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="66.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_orphaned</text>
+<text text-anchor="start" x="151.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="235.5" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="61.5,-4768 61.5,-4793 322.5,-4793 322.5,-4768 61.5,-4768"/>
-<text text-anchor="start" x="66.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_orphaned</text>
-<text text-anchor="start" x="151.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="235.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="66.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="145.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="241.5" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="61.5,-4743 61.5,-4768 322.5,-4768 322.5,-4743 61.5,-4743"/>
-<text text-anchor="start" x="66.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="145.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="241.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="61.5,-4718 61.5,-4743 322.5,-4743 322.5,-4718 61.5,-4718"/>
-<text text-anchor="start" x="66.5" y="-4727.8" font-family="Helvetica,sans-Serif" font-size="14.00">uri</text>
-<text text-anchor="start" x="85.5" y="-4727.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(3000)]</text>
-<text text-anchor="start" x="215.5" y="-4727.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="66.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00">uri</text>
+<text text-anchor="start" x="85.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(3000)]</text>
+<text text-anchor="start" x="215.5" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag_schedule_dataset_reference -->
 <g id="node18" class="node">
 <title>dag_schedule_dataset_reference</title>
-<polygon fill="none" stroke="black" points="464,-4843 464,-4871 766,-4871 766,-4843 464,-4843"/>
-<text text-anchor="start" x="469" y="-4854.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_schedule_dataset_reference</text>
+<polygon fill="none" stroke="black" points="464,-4868 464,-4896 766,-4896 766,-4868 464,-4868"/>
+<text text-anchor="start" x="469" y="-4879.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_schedule_dataset_reference</text>
+<polygon fill="none" stroke="black" points="464,-4843 464,-4868 766,-4868 766,-4843 464,-4843"/>
+<text text-anchor="start" x="469" y="-4852.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="515" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="636" y="-4852.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="464,-4818 464,-4843 766,-4843 766,-4818 464,-4818"/>
-<text text-anchor="start" x="469" y="-4827.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="515" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="636" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="469" y="-4827.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
+<text text-anchor="start" x="541" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="618" y="-4827.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="464,-4793 464,-4818 766,-4818 766,-4793 464,-4793"/>
-<text text-anchor="start" x="469" y="-4802.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
-<text text-anchor="start" x="541" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="618" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="469" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="542" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="638" y="-4802.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="464,-4768 464,-4793 766,-4793 766,-4768 464,-4768"/>
-<text text-anchor="start" x="469" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="542" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="638" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="464,-4743 464,-4768 766,-4768 766,-4743 464,-4743"/>
-<text text-anchor="start" x="469" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="548" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="644" y="-4752.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="469" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="548" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="644" y="-4777.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dataset&#45;&#45;dag_schedule_dataset_reference -->
 <g id="edge6" class="edge">
 <title>dataset&#45;&#45;dag_schedule_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.22,-4807C370.33,-4807 414.46,-4807 455.73,-4807"/>
-<text text-anchor="start" x="445.73" y="-4795.8" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="330.22" y="-4795.8" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.22,-4832C370.33,-4832 414.46,-4832 455.73,-4832"/>
+<text text-anchor="start" x="445.73" y="-4820.8" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="330.22" y="-4820.8" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_outlet_dataset_reference -->
 <g id="node19" class="node">
 <title>task_outlet_dataset_reference</title>
-<polygon fill="none" stroke="black" points="475,-4688 475,-4716 756,-4716 756,-4688 475,-4688"/>
-<text text-anchor="start" x="480" y="-4699.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_outlet_dataset_reference</text>
+<polygon fill="none" stroke="black" points="475,-4713 475,-4741 756,-4741 756,-4713 475,-4713"/>
+<text text-anchor="start" x="480" y="-4724.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_outlet_dataset_reference</text>
+<polygon fill="none" stroke="black" points="475,-4688 475,-4713 756,-4713 756,-4688 475,-4688"/>
+<text text-anchor="start" x="480" y="-4697.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="526" y="-4697.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="647" y="-4697.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="475,-4663 475,-4688 756,-4688 756,-4663 475,-4663"/>
-<text text-anchor="start" x="480" y="-4672.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="526" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="647" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="480" y="-4672.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
+<text text-anchor="start" x="552" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="629" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="475,-4638 475,-4663 756,-4663 756,-4638 475,-4638"/>
-<text text-anchor="start" x="480" y="-4647.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
-<text text-anchor="start" x="552" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="629" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="480" y="-4647.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="529" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="650" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="475,-4613 475,-4638 756,-4638 756,-4613 475,-4613"/>
-<text text-anchor="start" x="480" y="-4622.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="529" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="650" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="480" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="553" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="649" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="475,-4588 475,-4613 756,-4613 756,-4588 475,-4588"/>
-<text text-anchor="start" x="480" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="553" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="649" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="475,-4563 475,-4588 756,-4588 756,-4563 475,-4563"/>
-<text text-anchor="start" x="480" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="559" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="655" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="480" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="559" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="655" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dataset&#45;&#45;task_outlet_dataset_reference -->
 <g id="edge7" class="edge">
 <title>dataset&#45;&#45;task_outlet_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.22,-4752.43C373.81,-4735.16 422.16,-4716.01 466.41,-4698.48"/>
-<text text-anchor="start" x="456.41" y="-4687.28" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="330.22" y="-4741.23" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.22,-4777.43C373.81,-4760.16 422.16,-4741.01 466.41,-4723.48"/>
+<text text-anchor="start" x="456.41" y="-4712.28" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="330.22" y="-4766.23" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dataset_dag_run_queue -->
 <g id="node20" class="node">
 <title>dataset_dag_run_queue</title>
-<polygon fill="none" stroke="black" points="465,-4509 465,-4537 766,-4537 766,-4509 465,-4509"/>
-<text text-anchor="start" x="510" y="-4520.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dataset_dag_run_queue</text>
+<polygon fill="none" stroke="black" points="465,-4534 465,-4562 766,-4562 766,-4534 465,-4534"/>
+<text text-anchor="start" x="510" y="-4545.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dataset_dag_run_queue</text>
+<polygon fill="none" stroke="black" points="465,-4509 465,-4534 766,-4534 766,-4509 465,-4509"/>
+<text text-anchor="start" x="470" y="-4518.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
+<text text-anchor="start" x="542" y="-4518.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="619" y="-4518.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="465,-4484 465,-4509 766,-4509 766,-4484 465,-4484"/>
-<text text-anchor="start" x="470" y="-4493.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dataset_id</text>
-<text text-anchor="start" x="542" y="-4493.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="619" y="-4493.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="470" y="-4493.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">target_dag_id</text>
+<text text-anchor="start" x="564" y="-4493.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="685" y="-4493.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="465,-4459 465,-4484 766,-4484 766,-4459 465,-4459"/>
-<text text-anchor="start" x="470" y="-4468.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">target_dag_id</text>
-<text text-anchor="start" x="564" y="-4468.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="685" y="-4468.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="465,-4434 465,-4459 766,-4459 766,-4434 465,-4434"/>
-<text text-anchor="start" x="470" y="-4443.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="543" y="-4443.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="639" y="-4443.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="470" y="-4468.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="543" y="-4468.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="639" y="-4468.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dataset&#45;&#45;dataset_dag_run_queue -->
 <g id="edge8" class="edge">
 <title>dataset&#45;&#45;dataset_dag_run_queue</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.19,-4747.23C349.39,-4735.09 367.74,-4721.03 383,-4705 435.23,-4650.15 401.06,-4603.14 456,-4551 459.44,-4547.73 463.07,-4544.62 466.85,-4541.66"/>
-<text text-anchor="start" x="456.85" y="-4545.46" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="330.19" y="-4751.03" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M330.19,-4772.23C349.39,-4760.09 367.74,-4746.03 383,-4730 435.23,-4675.15 401.06,-4628.14 456,-4576 459.44,-4572.73 463.07,-4569.62 466.85,-4566.66"/>
+<text text-anchor="start" x="456.85" y="-4570.46" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="330.19" y="-4776.03" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag -->
 <g id="node21" class="node">
 <title>dag</title>
-<polygon fill="none" stroke="black" points="8.5,-4663 8.5,-4691 375.5,-4691 375.5,-4663 8.5,-4663"/>
-<text text-anchor="start" x="175" y="-4674.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag</text>
+<polygon fill="none" stroke="black" points="8.5,-4688 8.5,-4716 375.5,-4716 375.5,-4688 8.5,-4688"/>
+<text text-anchor="start" x="175" y="-4699.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag</text>
+<polygon fill="none" stroke="black" points="8.5,-4663 8.5,-4688 375.5,-4688 375.5,-4663 8.5,-4663"/>
+<text text-anchor="start" x="13.5" y="-4672.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="59.5" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="180.5" y="-4672.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="8.5,-4638 8.5,-4663 375.5,-4663 375.5,-4638 8.5,-4638"/>
-<text text-anchor="start" x="13.5" y="-4647.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="59.5" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="180.5" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="13.5" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00">default_view</text>
+<text text-anchor="start" x="101.5" y="-4647.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(25)]</text>
 <polygon fill="none" stroke="black" points="8.5,-4613 8.5,-4638 375.5,-4638 375.5,-4613 8.5,-4613"/>
-<text text-anchor="start" x="13.5" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00">default_view</text>
-<text text-anchor="start" x="101.5" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(25)]</text>
+<text text-anchor="start" x="13.5" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
+<text text-anchor="start" x="91.5" y="-4622.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
 <polygon fill="none" stroke="black" points="8.5,-4588 8.5,-4613 375.5,-4613 375.5,-4588 8.5,-4588"/>
-<text text-anchor="start" x="13.5" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00">description</text>
-<text text-anchor="start" x="91.5" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="13.5" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
+<text text-anchor="start" x="54.5" y="-4597.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
 <polygon fill="none" stroke="black" points="8.5,-4563 8.5,-4588 375.5,-4588 375.5,-4563 8.5,-4563"/>
-<text text-anchor="start" x="13.5" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00">fileloc</text>
-<text text-anchor="start" x="54.5" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<text text-anchor="start" x="13.5" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00">has_import_errors</text>
+<text text-anchor="start" x="138.5" y="-4572.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="8.5,-4538 8.5,-4563 375.5,-4563 375.5,-4538 8.5,-4538"/>
-<text text-anchor="start" x="13.5" y="-4547.8" font-family="Helvetica,sans-Serif" font-size="14.00">has_import_errors</text>
-<text text-anchor="start" x="138.5" y="-4547.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="13.5" y="-4547.8" font-family="Helvetica,sans-Serif" font-size="14.00">has_task_concurrency_limits</text>
+<text text-anchor="start" x="210.5" y="-4547.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="294.5" y="-4547.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="8.5,-4513 8.5,-4538 375.5,-4538 375.5,-4513 8.5,-4513"/>
-<text text-anchor="start" x="13.5" y="-4522.8" font-family="Helvetica,sans-Serif" font-size="14.00">has_task_concurrency_limits</text>
-<text text-anchor="start" x="210.5" y="-4522.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<text text-anchor="start" x="294.5" y="-4522.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="13.5" y="-4522.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_active</text>
+<text text-anchor="start" x="73.5" y="-4522.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="8.5,-4488 8.5,-4513 375.5,-4513 375.5,-4488 8.5,-4488"/>
-<text text-anchor="start" x="13.5" y="-4497.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_active</text>
-<text text-anchor="start" x="73.5" y="-4497.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="13.5" y="-4497.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_paused</text>
+<text text-anchor="start" x="83.5" y="-4497.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="8.5,-4463 8.5,-4488 375.5,-4488 375.5,-4463 8.5,-4463"/>
-<text text-anchor="start" x="13.5" y="-4472.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_paused</text>
+<text text-anchor="start" x="13.5" y="-4472.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_subdag</text>
 <text text-anchor="start" x="83.5" y="-4472.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="8.5,-4438 8.5,-4463 375.5,-4463 375.5,-4438 8.5,-4438"/>
-<text text-anchor="start" x="13.5" y="-4447.8" font-family="Helvetica,sans-Serif" font-size="14.00">is_subdag</text>
-<text text-anchor="start" x="83.5" y="-4447.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
+<text text-anchor="start" x="13.5" y="-4447.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_expired</text>
+<text text-anchor="start" x="97.5" y="-4447.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4413 8.5,-4438 375.5,-4438 375.5,-4413 8.5,-4413"/>
-<text text-anchor="start" x="13.5" y="-4422.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_expired</text>
-<text text-anchor="start" x="97.5" y="-4422.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4422.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_parsed_time</text>
+<text text-anchor="start" x="131.5" y="-4422.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4388 8.5,-4413 375.5,-4413 375.5,-4388 8.5,-4388"/>
-<text text-anchor="start" x="13.5" y="-4397.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_parsed_time</text>
-<text text-anchor="start" x="131.5" y="-4397.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4397.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_pickled</text>
+<text text-anchor="start" x="95.5" y="-4397.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4363 8.5,-4388 375.5,-4388 375.5,-4363 8.5,-4363"/>
-<text text-anchor="start" x="13.5" y="-4372.8" font-family="Helvetica,sans-Serif" font-size="14.00">last_pickled</text>
-<text text-anchor="start" x="95.5" y="-4372.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4372.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_active_runs</text>
+<text text-anchor="start" x="130.5" y="-4372.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 <polygon fill="none" stroke="black" points="8.5,-4338 8.5,-4363 375.5,-4363 375.5,-4338 8.5,-4338"/>
-<text text-anchor="start" x="13.5" y="-4347.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_active_runs</text>
-<text text-anchor="start" x="130.5" y="-4347.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="13.5" y="-4347.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_active_tasks</text>
+<text text-anchor="start" x="135.5" y="-4347.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="212.5" y="-4347.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="8.5,-4313 8.5,-4338 375.5,-4338 375.5,-4313 8.5,-4313"/>
-<text text-anchor="start" x="13.5" y="-4322.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_active_tasks</text>
-<text text-anchor="start" x="135.5" y="-4322.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="212.5" y="-4322.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="13.5" y="-4322.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun</text>
+<text text-anchor="start" x="101.5" y="-4322.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4288 8.5,-4313 375.5,-4313 375.5,-4288 8.5,-4288"/>
-<text text-anchor="start" x="13.5" y="-4297.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun</text>
-<text text-anchor="start" x="101.5" y="-4297.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4297.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_create_after</text>
+<text text-anchor="start" x="190.5" y="-4297.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4263 8.5,-4288 375.5,-4288 375.5,-4263 8.5,-4263"/>
-<text text-anchor="start" x="13.5" y="-4272.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_create_after</text>
-<text text-anchor="start" x="190.5" y="-4272.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4272.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_data_interval_end</text>
+<text text-anchor="start" x="231.5" y="-4272.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4238 8.5,-4263 375.5,-4263 375.5,-4238 8.5,-4238"/>
-<text text-anchor="start" x="13.5" y="-4247.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_data_interval_end</text>
-<text text-anchor="start" x="231.5" y="-4247.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4247.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_data_interval_start</text>
+<text text-anchor="start" x="237.5" y="-4247.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="8.5,-4213 8.5,-4238 375.5,-4238 375.5,-4213 8.5,-4213"/>
-<text text-anchor="start" x="13.5" y="-4222.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_dagrun_data_interval_start</text>
-<text text-anchor="start" x="237.5" y="-4222.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="13.5" y="-4222.8" font-family="Helvetica,sans-Serif" font-size="14.00">owners</text>
+<text text-anchor="start" x="64.5" y="-4222.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
 <polygon fill="none" stroke="black" points="8.5,-4188 8.5,-4213 375.5,-4213 375.5,-4188 8.5,-4188"/>
-<text text-anchor="start" x="13.5" y="-4197.8" font-family="Helvetica,sans-Serif" font-size="14.00">owners</text>
-<text text-anchor="start" x="64.5" y="-4197.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<text text-anchor="start" x="13.5" y="-4197.8" font-family="Helvetica,sans-Serif" font-size="14.00">pickle_id</text>
+<text text-anchor="start" x="74.5" y="-4197.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 <polygon fill="none" stroke="black" points="8.5,-4163 8.5,-4188 375.5,-4188 375.5,-4163 8.5,-4163"/>
-<text text-anchor="start" x="13.5" y="-4172.8" font-family="Helvetica,sans-Serif" font-size="14.00">pickle_id</text>
-<text text-anchor="start" x="74.5" y="-4172.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="13.5" y="-4172.8" font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
+<text text-anchor="start" x="132.5" y="-4172.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
 <polygon fill="none" stroke="black" points="8.5,-4138 8.5,-4163 375.5,-4163 375.5,-4138 8.5,-4138"/>
-<text text-anchor="start" x="13.5" y="-4147.8" font-family="Helvetica,sans-Serif" font-size="14.00">processor_subdir</text>
-<text text-anchor="start" x="132.5" y="-4147.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(2000)]</text>
+<text text-anchor="start" x="13.5" y="-4147.8" font-family="Helvetica,sans-Serif" font-size="14.00">root_dag_id</text>
+<text text-anchor="start" x="93.5" y="-4147.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
 <polygon fill="none" stroke="black" points="8.5,-4113 8.5,-4138 375.5,-4138 375.5,-4113 8.5,-4113"/>
-<text text-anchor="start" x="13.5" y="-4122.8" font-family="Helvetica,sans-Serif" font-size="14.00">root_dag_id</text>
-<text text-anchor="start" x="93.5" y="-4122.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="13.5" y="-4122.8" font-family="Helvetica,sans-Serif" font-size="14.00">schedule_interval</text>
+<text text-anchor="start" x="135.5" y="-4122.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
 <polygon fill="none" stroke="black" points="8.5,-4088 8.5,-4113 375.5,-4113 375.5,-4088 8.5,-4088"/>
-<text text-anchor="start" x="13.5" y="-4097.8" font-family="Helvetica,sans-Serif" font-size="14.00">schedule_interval</text>
-<text text-anchor="start" x="135.5" y="-4097.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="13.5" y="-4097.8" font-family="Helvetica,sans-Serif" font-size="14.00">scheduler_lock</text>
+<text text-anchor="start" x="116.5" y="-4097.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
 <polygon fill="none" stroke="black" points="8.5,-4063 8.5,-4088 375.5,-4088 375.5,-4063 8.5,-4063"/>
-<text text-anchor="start" x="13.5" y="-4072.8" font-family="Helvetica,sans-Serif" font-size="14.00">scheduler_lock</text>
-<text text-anchor="start" x="116.5" y="-4072.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BOOLEAN]</text>
-<polygon fill="none" stroke="black" points="8.5,-4038 8.5,-4063 375.5,-4063 375.5,-4038 8.5,-4038"/>
-<text text-anchor="start" x="13.5" y="-4047.8" font-family="Helvetica,sans-Serif" font-size="14.00">timetable_description</text>
-<text text-anchor="start" x="163.5" y="-4047.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<text text-anchor="start" x="13.5" y="-4072.8" font-family="Helvetica,sans-Serif" font-size="14.00">timetable_description</text>
+<text text-anchor="start" x="163.5" y="-4072.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
 </g>
 <!-- dag&#45;&#45;dag_schedule_dataset_reference -->
 <g id="edge9" class="edge">
 <title>dag&#45;&#45;dag_schedule_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.19,-4658.08C406.06,-4683.98 430.43,-4708.49 456,-4730 459.62,-4733.05 463.38,-4736 467.25,-4738.88"/>
-<text text-anchor="start" x="457.25" y="-4727.68" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.19" y="-4646.88" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.19,-4683.08C406.06,-4708.98 430.43,-4733.49 456,-4755 459.62,-4758.05 463.38,-4761 467.25,-4763.88"/>
+<text text-anchor="start" x="457.25" y="-4752.68" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.19" y="-4671.88" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag&#45;&#45;task_outlet_dataset_reference -->
 <g id="edge10" class="edge">
 <title>dag&#45;&#45;task_outlet_dataset_reference</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.08,-4502.93C407.37,-4519.5 432.1,-4535.89 456,-4551 460.39,-4553.78 464.87,-4556.56 469.41,-4559.35"/>
-<text text-anchor="start" x="469.41" y="-4548.15" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.08" y="-4491.73" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.08,-4527.93C407.37,-4544.5 432.1,-4560.89 456,-4576 460.39,-4578.78 464.87,-4581.56 469.41,-4584.35"/>
+<text text-anchor="start" x="469.41" y="-4573.15" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.08" y="-4516.73" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag&#45;&#45;dataset_dag_run_queue -->
 <g id="edge11" class="edge">
 <title>dag&#45;&#45;dataset_dag_run_queue</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4419.75C407.63,-4426.76 432.4,-4433.87 456.22,-4440.7"/>
-<text text-anchor="start" x="446.22" y="-4429.5" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.21" y="-4408.55" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4444.75C407.63,-4451.76 432.4,-4458.87 456.22,-4465.7"/>
+<text text-anchor="start" x="446.22" y="-4454.5" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.21" y="-4433.55" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag_tag -->
 <g id="node22" class="node">
 <title>dag_tag</title>
-<polygon fill="none" stroke="black" points="489,-4380 489,-4408 742,-4408 742,-4380 489,-4380"/>
-<text text-anchor="start" x="580" y="-4391.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_tag</text>
+<polygon fill="none" stroke="black" points="489,-4405 489,-4433 742,-4433 742,-4405 489,-4405"/>
+<text text-anchor="start" x="580" y="-4416.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_tag</text>
+<polygon fill="none" stroke="black" points="489,-4380 489,-4405 742,-4405 742,-4380 489,-4380"/>
+<text text-anchor="start" x="494" y="-4389.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="540" y="-4389.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="661" y="-4389.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="489,-4355 489,-4380 742,-4380 742,-4355 489,-4355"/>
-<text text-anchor="start" x="494" y="-4364.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="540" y="-4364.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="661" y="-4364.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="489,-4330 489,-4355 742,-4355 742,-4330 489,-4330"/>
-<text text-anchor="start" x="494" y="-4339.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">name</text>
-<text text-anchor="start" x="534" y="-4339.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
-<text text-anchor="start" x="655" y="-4339.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="494" y="-4364.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">name</text>
+<text text-anchor="start" x="534" y="-4364.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(100)]</text>
+<text text-anchor="start" x="655" y="-4364.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag&#45;&#45;dag_tag -->
 <g id="edge12" class="edge">
 <title>dag&#45;&#45;dag_tag</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4366.81C416.02,-4367.12 449.48,-4367.44 480.38,-4367.73"/>
-<text text-anchor="start" x="470.38" y="-4356.53" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.21" y="-4355.61" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4391.81C416.02,-4392.12 449.48,-4392.44 480.38,-4392.73"/>
+<text text-anchor="start" x="470.38" y="-4381.53" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.21" y="-4380.61" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag_owner_attributes -->
 <g id="node23" class="node">
 <title>dag_owner_attributes</title>
-<polygon fill="none" stroke="black" points="489,-4275 489,-4303 742,-4303 742,-4275 489,-4275"/>
-<text text-anchor="start" x="517.5" y="-4286.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_owner_attributes</text>
+<polygon fill="none" stroke="black" points="489,-4300 489,-4328 742,-4328 742,-4300 489,-4300"/>
+<text text-anchor="start" x="517.5" y="-4311.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_owner_attributes</text>
+<polygon fill="none" stroke="black" points="489,-4275 489,-4300 742,-4300 742,-4275 489,-4275"/>
+<text text-anchor="start" x="494" y="-4284.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="540" y="-4284.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="661" y="-4284.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="489,-4250 489,-4275 742,-4275 742,-4250 489,-4250"/>
-<text text-anchor="start" x="494" y="-4259.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="540" y="-4259.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="661" y="-4259.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="494" y="-4259.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">owner</text>
+<text text-anchor="start" x="537" y="-4259.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(500)]</text>
+<text text-anchor="start" x="658" y="-4259.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="489,-4225 489,-4250 742,-4250 742,-4225 489,-4225"/>
-<text text-anchor="start" x="494" y="-4234.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">owner</text>
-<text text-anchor="start" x="537" y="-4234.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(500)]</text>
-<text text-anchor="start" x="658" y="-4234.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="489,-4200 489,-4225 742,-4225 742,-4200 489,-4200"/>
-<text text-anchor="start" x="494" y="-4209.8" font-family="Helvetica,sans-Serif" font-size="14.00">link</text>
-<text text-anchor="start" x="519" y="-4209.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(500)]</text>
-<text text-anchor="start" x="640" y="-4209.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="494" y="-4234.8" font-family="Helvetica,sans-Serif" font-size="14.00">link</text>
+<text text-anchor="start" x="519" y="-4234.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(500)]</text>
+<text text-anchor="start" x="640" y="-4234.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag&#45;&#45;dag_owner_attributes -->
 <g id="edge13" class="edge">
 <title>dag&#45;&#45;dag_owner_attributes</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4313.87C416.02,-4305.08 449.48,-4296.11 480.38,-4287.82"/>
-<text text-anchor="start" x="470.38" y="-4276.62" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.21" y="-4302.67" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.21,-4338.87C416.02,-4330.08 449.48,-4321.11 480.38,-4312.82"/>
+<text text-anchor="start" x="470.38" y="-4301.62" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.21" y="-4327.67" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag_warning -->
 <g id="node24" class="node">
 <title>dag_warning</title>
-<polygon fill="none" stroke="black" points="469,-4146 469,-4174 761,-4174 761,-4146 469,-4146"/>
-<text text-anchor="start" x="557.5" y="-4157.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_warning</text>
+<polygon fill="none" stroke="black" points="469,-4171 469,-4199 761,-4199 761,-4171 469,-4171"/>
+<text text-anchor="start" x="557.5" y="-4182.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_warning</text>
+<polygon fill="none" stroke="black" points="469,-4146 469,-4171 761,-4171 761,-4146 469,-4146"/>
+<text text-anchor="start" x="474" y="-4155.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="520" y="-4155.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="641" y="-4155.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="469,-4121 469,-4146 761,-4146 761,-4121 469,-4121"/>
-<text text-anchor="start" x="474" y="-4130.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="520" y="-4130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="641" y="-4130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="474" y="-4130.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">warning_type</text>
+<text text-anchor="start" x="568" y="-4130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(50)]</text>
+<text text-anchor="start" x="680" y="-4130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="469,-4096 469,-4121 761,-4121 761,-4096 469,-4096"/>
-<text text-anchor="start" x="474" y="-4105.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">warning_type</text>
-<text text-anchor="start" x="568" y="-4105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(50)]</text>
-<text text-anchor="start" x="680" y="-4105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="474" y="-4105.8" font-family="Helvetica,sans-Serif" font-size="14.00">message</text>
+<text text-anchor="start" x="537" y="-4105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
+<text text-anchor="start" x="587" y="-4105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="469,-4071 469,-4096 761,-4096 761,-4071 469,-4071"/>
-<text text-anchor="start" x="474" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00">message</text>
-<text text-anchor="start" x="537" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TEXT]</text>
-<text text-anchor="start" x="587" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="469,-4046 469,-4071 761,-4071 761,-4046 469,-4046"/>
-<text text-anchor="start" x="474" y="-4055.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="549" y="-4055.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="645" y="-4055.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="474" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
+<text text-anchor="start" x="549" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="645" y="-4080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag&#45;&#45;dag_warning -->
 <g id="edge14" class="edge">
 <title>dag&#45;&#45;dag_warning</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.09,-4232.68C407.33,-4217.13 432.04,-4201.88 456,-4188 461.69,-4184.7 467.54,-4181.41 473.48,-4178.14"/>
-<text text-anchor="start" x="463.48" y="-4181.94" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="383.09" y="-4221.48" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M383.09,-4257.68C407.33,-4242.13 432.04,-4226.88 456,-4213 461.69,-4209.7 467.54,-4206.41 473.48,-4203.14"/>
+<text text-anchor="start" x="463.48" y="-4206.94" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="383.09" y="-4246.48" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- log_template -->
 <g id="node25" class="node">
@@ -1353,14 +1356,14 @@
 <g id="edge43" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
 <path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-802.98C1196.72,-798 1228.55,-792.59 1258.36,-787.29"/>
-<text text-anchor="start" x="1248.36" y="-791.09" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1227.36" y="-791.09" font-family="Times,serif" font-size="14.00">0..N</text>
 <text text-anchor="start" x="1166.1" y="-806.78" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;xcom -->
 <g id="edge44" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
 <path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-816.29C1196.72,-811.66 1228.55,-806.13 1258.36,-800.24"/>
-<text text-anchor="start" x="1227.36" y="-804.04" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1248.36" y="-804.04" font-family="Times,serif" font-size="14.00">1</text>
 <text text-anchor="start" x="1166.1" y="-820.09" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- rendered_task_instance_fields -->
@@ -1420,52 +1423,8 @@
 <text text-anchor="start" x="1279.53" y="-625.89" font-family="Times,serif" font-size="14.00">1</text>
 <text text-anchor="start" x="1166.31" y="-702.92" font-family="Times,serif" font-size="14.00">1</text>
 </g>
-<!-- ab_role -->
-<g id="node30" class="node">
-<title>ab_role</title>
-<polygon fill="none" stroke="black" points="496,-2186 496,-2214 734,-2214 734,-2186 496,-2186"/>
-<text text-anchor="start" x="582" y="-2197.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_role</text>
-<polygon fill="none" stroke="black" points="496,-2161 496,-2186 734,-2186 734,-2161 496,-2161"/>
-<text text-anchor="start" x="501" y="-2170.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="514" y="-2170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="591" y="-2170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="496,-2136 496,-2161 734,-2161 734,-2136 496,-2136"/>
-<text text-anchor="start" x="501" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
-<text text-anchor="start" x="541" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(64)]</text>
-<text text-anchor="start" x="653" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-</g>
-<!-- ab_role&#45;&#45;ab_user_role -->
-<g id="edge22" class="edge">
-<title>ab_role&#45;&#45;ab_user_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.13,-2135.43C752.99,-2131.44 763.74,-2127.27 774,-2123 819.91,-2103.88 869.21,-2079.34 910.47,-2057.6"/>
-<text text-anchor="start" x="879.47" y="-2046.4" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="742.13" y="-2124.23" font-family="Times,serif" font-size="14.00">{0,1}</text>
-</g>
-<!-- ab_permission_view_role -->
-<g id="node31" class="node">
-<title>ab_permission_view_role</title>
-<polygon fill="none" stroke="black" points="890.5,-2256 890.5,-2284 1123.5,-2284 1123.5,-2256 890.5,-2256"/>
-<text text-anchor="start" x="895.5" y="-2267.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission_view_role</text>
-<polygon fill="none" stroke="black" points="890.5,-2231 890.5,-2256 1123.5,-2256 1123.5,-2231 890.5,-2231"/>
-<text text-anchor="start" x="895.5" y="-2240.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="908.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="985.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="890.5,-2206 890.5,-2231 1123.5,-2231 1123.5,-2206 890.5,-2206"/>
-<text text-anchor="start" x="895.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
-<text text-anchor="start" x="1029.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="890.5,-2181 890.5,-2206 1123.5,-2206 1123.5,-2181 890.5,-2181"/>
-<text text-anchor="start" x="895.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
-<text text-anchor="start" x="941.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-</g>
-<!-- ab_role&#45;&#45;ab_permission_view_role -->
-<g id="edge23" class="edge">
-<title>ab_role&#45;&#45;ab_permission_view_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.19,-2193.79C786.96,-2200.46 837.28,-2207.95 881.84,-2214.59"/>
-<text text-anchor="start" x="850.84" y="-2203.39" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="742.19" y="-2182.59" font-family="Times,serif" font-size="14.00">{0,1}</text>
-</g>
 <!-- ab_permission -->
-<g id="node32" class="node">
+<g id="node30" class="node">
 <title>ab_permission</title>
 <polygon fill="none" stroke="black" points="68.5,-2251 68.5,-2279 315.5,-2279 315.5,-2251 68.5,-2251"/>
 <text text-anchor="start" x="127" y="-2262.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission</text>
@@ -1479,7 +1438,7 @@
 <text text-anchor="start" x="234.5" y="-2210.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- ab_permission_view -->
-<g id="node33" class="node">
+<g id="node31" class="node">
 <title>ab_permission_view</title>
 <polygon fill="none" stroke="black" points="521,-2315 521,-2343 710,-2343 710,-2315 521,-2315"/>
 <text text-anchor="start" x="526" y="-2326.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission_view</text>
@@ -1495,21 +1454,37 @@
 <text text-anchor="start" x="624" y="-2249.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 </g>
 <!-- ab_permission&#45;&#45;ab_permission_view -->
-<g id="edge24" class="edge">
+<g id="edge22" class="edge">
 <title>ab_permission&#45;&#45;ab_permission_view</title>
 <path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M323.27,-2256.13C384.18,-2263.65 455.56,-2272.45 512.35,-2279.46"/>
 <text text-anchor="start" x="481.35" y="-2268.26" font-family="Times,serif" font-size="14.00">0..N</text>
 <text text-anchor="start" x="323.27" y="-2244.93" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
+<!-- ab_permission_view_role -->
+<g id="node32" class="node">
+<title>ab_permission_view_role</title>
+<polygon fill="none" stroke="black" points="890.5,-2256 890.5,-2284 1123.5,-2284 1123.5,-2256 890.5,-2256"/>
+<text text-anchor="start" x="895.5" y="-2267.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission_view_role</text>
+<polygon fill="none" stroke="black" points="890.5,-2231 890.5,-2256 1123.5,-2256 1123.5,-2231 890.5,-2231"/>
+<text text-anchor="start" x="895.5" y="-2240.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="908.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="985.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="890.5,-2206 890.5,-2231 1123.5,-2231 1123.5,-2206 890.5,-2206"/>
+<text text-anchor="start" x="895.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
+<text text-anchor="start" x="1029.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="890.5,-2181 890.5,-2206 1123.5,-2206 1123.5,-2181 890.5,-2181"/>
+<text text-anchor="start" x="895.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
+<text text-anchor="start" x="941.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+</g>
 <!-- ab_permission_view&#45;&#45;ab_permission_view_role -->
-<g id="edge25" class="edge">
+<g id="edge23" class="edge">
 <title>ab_permission_view&#45;&#45;ab_permission_view_role</title>
 <path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M717.57,-2276.61C767.84,-2269 828.94,-2259.74 881.9,-2251.72"/>
 <text text-anchor="start" x="850.9" y="-2240.52" font-family="Times,serif" font-size="14.00">0..N</text>
 <text text-anchor="start" x="717.57" y="-2265.41" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- ab_view_menu -->
-<g id="node34" class="node">
+<g id="node33" class="node">
 <title>ab_view_menu</title>
 <polygon fill="none" stroke="black" points="68.5,-2355 68.5,-2383 315.5,-2383 315.5,-2355 68.5,-2355"/>
 <text text-anchor="start" x="127" y="-2366.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_view_menu</text>
@@ -1523,12 +1498,40 @@
 <text text-anchor="start" x="234.5" y="-2314.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- ab_view_menu&#45;&#45;ab_permission_view -->
-<g id="edge26" class="edge">
+<g id="edge24" class="edge">
 <title>ab_view_menu&#45;&#45;ab_permission_view</title>
 <path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M323.27,-2327.87C384.18,-2320.35 455.56,-2311.55 512.35,-2304.54"/>
 <text text-anchor="start" x="481.35" y="-2293.34" font-family="Times,serif" font-size="14.00">0..N</text>
 <text text-anchor="start" x="323.27" y="-2316.67" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
+<!-- ab_role -->
+<g id="node34" class="node">
+<title>ab_role</title>
+<polygon fill="none" stroke="black" points="496,-2186 496,-2214 734,-2214 734,-2186 496,-2186"/>
+<text text-anchor="start" x="582" y="-2197.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_role</text>
+<polygon fill="none" stroke="black" points="496,-2161 496,-2186 734,-2186 734,-2161 496,-2161"/>
+<text text-anchor="start" x="501" y="-2170.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="514" y="-2170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="591" y="-2170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="496,-2136 496,-2161 734,-2161 734,-2136 496,-2136"/>
+<text text-anchor="start" x="501" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00">name</text>
+<text text-anchor="start" x="541" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(64)]</text>
+<text text-anchor="start" x="653" y="-2145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+</g>
+<!-- ab_role&#45;&#45;ab_user_role -->
+<g id="edge25" class="edge">
+<title>ab_role&#45;&#45;ab_user_role</title>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.13,-2135.43C752.99,-2131.44 763.74,-2127.27 774,-2123 819.91,-2103.88 869.21,-2079.34 910.47,-2057.6"/>
+<text text-anchor="start" x="879.47" y="-2046.4" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="742.13" y="-2124.23" font-family="Times,serif" font-size="14.00">{0,1}</text>
+</g>
+<!-- ab_role&#45;&#45;ab_permission_view_role -->
+<g id="edge26" class="edge">
+<title>ab_role&#45;&#45;ab_permission_view_role</title>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.19,-2193.79C786.96,-2200.46 837.28,-2207.95 881.84,-2214.59"/>
+<text text-anchor="start" x="850.84" y="-2203.39" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="742.19" y="-2182.59" font-family="Times,serif" font-size="14.00">{0,1}</text>
+</g>
 <!-- dataset_event -->
 <g id="node35" class="node">
 <title>dataset_event</title>
@@ -1605,31 +1608,31 @@
 <!-- session -->
 <g id="node41" class="node">
 <title>session</title>
-<polygon fill="none" stroke="black" points="90.5,-5022 90.5,-5050 293.5,-5050 293.5,-5022 90.5,-5022"/>
-<text text-anchor="start" x="158" y="-5033.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">session</text>
+<polygon fill="none" stroke="black" points="90.5,-5047 90.5,-5075 293.5,-5075 293.5,-5047 90.5,-5047"/>
+<text text-anchor="start" x="158" y="-5058.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">session</text>
+<polygon fill="none" stroke="black" points="90.5,-5022 90.5,-5047 293.5,-5047 293.5,-5022 90.5,-5022"/>
+<text text-anchor="start" x="95.5" y="-5031.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="108.5" y="-5031.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="185.5" y="-5031.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 <polygon fill="none" stroke="black" points="90.5,-4997 90.5,-5022 293.5,-5022 293.5,-4997 90.5,-4997"/>
-<text text-anchor="start" x="95.5" y="-5006.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="108.5" y="-5006.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="185.5" y="-5006.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<text text-anchor="start" x="95.5" y="-5006.8" font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
+<text text-anchor="start" x="126.5" y="-5006.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
 <polygon fill="none" stroke="black" points="90.5,-4972 90.5,-4997 293.5,-4997 293.5,-4972 90.5,-4972"/>
-<text text-anchor="start" x="95.5" y="-4981.8" font-family="Helvetica,sans-Serif" font-size="14.00">data</text>
-<text text-anchor="start" x="126.5" y="-4981.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
+<text text-anchor="start" x="95.5" y="-4981.8" font-family="Helvetica,sans-Serif" font-size="14.00">expiry</text>
+<text text-anchor="start" x="139.5" y="-4981.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 <polygon fill="none" stroke="black" points="90.5,-4947 90.5,-4972 293.5,-4972 293.5,-4947 90.5,-4947"/>
-<text text-anchor="start" x="95.5" y="-4956.8" font-family="Helvetica,sans-Serif" font-size="14.00">expiry</text>
-<text text-anchor="start" x="139.5" y="-4956.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="90.5,-4922 90.5,-4947 293.5,-4947 293.5,-4922 90.5,-4922"/>
-<text text-anchor="start" x="95.5" y="-4931.8" font-family="Helvetica,sans-Serif" font-size="14.00">session_id</text>
-<text text-anchor="start" x="167.5" y="-4931.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
+<text text-anchor="start" x="95.5" y="-4956.8" font-family="Helvetica,sans-Serif" font-size="14.00">session_id</text>
+<text text-anchor="start" x="167.5" y="-4956.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(255)]</text>
 </g>
 <!-- alembic_version -->
 <g id="node42" class="node">
 <title>alembic_version</title>
-<polygon fill="none" stroke="black" points="47.5,-5101 47.5,-5129 335.5,-5129 335.5,-5101 47.5,-5101"/>
-<text text-anchor="start" x="119" y="-5112.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">alembic_version</text>
-<polygon fill="none" stroke="black" points="47.5,-5076 47.5,-5101 335.5,-5101 335.5,-5076 47.5,-5076"/>
-<text text-anchor="start" x="52.5" y="-5085.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">version_num</text>
-<text text-anchor="start" x="142.5" y="-5085.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
-<text text-anchor="start" x="254.5" y="-5085.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="47.5,-5126 47.5,-5154 335.5,-5154 335.5,-5126 47.5,-5126"/>
+<text text-anchor="start" x="119" y="-5137.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">alembic_version</text>
+<polygon fill="none" stroke="black" points="47.5,-5101 47.5,-5126 335.5,-5126 335.5,-5101 47.5,-5101"/>
+<text text-anchor="start" x="52.5" y="-5110.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">version_num</text>
+<text text-anchor="start" x="142.5" y="-5110.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(32)]</text>
+<text text-anchor="start" x="254.5" y="-5110.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 </g>
 </svg>
diff --git a/docs/apache-airflow/img/arch-diag-basic.png b/docs/apache-airflow/img/arch-diag-basic.png
deleted file mode 100755
index 1adde8f079e08..0000000000000
Binary files a/docs/apache-airflow/img/arch-diag-basic.png and /dev/null differ
diff --git a/docs/apache-airflow/img/diagram_basic_airflow_architecture.png b/docs/apache-airflow/img/diagram_basic_airflow_architecture.png
new file mode 100644
index 0000000000000..feae0a63bb1d6
Binary files /dev/null and b/docs/apache-airflow/img/diagram_basic_airflow_architecture.png differ
diff --git a/docs/apache-airflow/img/diagram_dag_processor_airflow_architecture.png b/docs/apache-airflow/img/diagram_dag_processor_airflow_architecture.png
new file mode 100644
index 0000000000000..8a2d48df19741
Binary files /dev/null and b/docs/apache-airflow/img/diagram_dag_processor_airflow_architecture.png differ
diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst
index c3c1da4f47562..19c24074bbaa4 100644
--- a/docs/apache-airflow/installation/supported-versions.rst
+++ b/docs/apache-airflow/installation/supported-versions.rst
@@ -61,7 +61,7 @@ They are based on the official release schedule of Python and Kubernetes, nicely
 2. The "oldest" supported version of Python/Kubernetes is the default one. "Default" is only meaningful
    in terms of "smoke tests" in CI PRs which are run using this default version and default reference
    image available in DockerHub. Currently the ``apache/airflow:latest`` and ``apache/airflow:2.5.2`` images
-   are Python 3.8 images, however, in the first MINOR/MAJOR release of Airflow released after 14.19.2023,
+   are Python 3.8 images, however, in the first MINOR/MAJOR release of Airflow released after 14.09.2023,
    they will become Python 3.9 images.
 
 3. We support a new version of Python/Kubernetes in main after they are officially released, as soon as we
diff --git a/docs/apache-airflow/migrations-ref.rst b/docs/apache-airflow/migrations-ref.rst
index 72f467f6fbc57..2d54b5d9969f8 100644
--- a/docs/apache-airflow/migrations-ref.rst
+++ b/docs/apache-airflow/migrations-ref.rst
@@ -39,7 +39,9 @@ Here's the list of all the Database Migrations that are executed via when you ru
 +---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
 | Revision ID                     | Revises ID        | Airflow Version   | Description                                                  |
 +=================================+===================+===================+==============================================================+
-| ``bd5dfbe21f88`` (head)         | ``f7bf2a57d0a6``  | ``2.8.0``         | Make connection login/password TEXT                          |
+| ``10b52ebd31f7`` (head)         | ``bd5dfbe21f88``  | ``2.8.0``         | Add processor_subdir to ImportError.                         |
++---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
+| ``bd5dfbe21f88``                | ``f7bf2a57d0a6``  | ``2.8.0``         | Make connection login/password TEXT                          |
 +---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
 | ``f7bf2a57d0a6``                | ``375a816bbbf4``  | ``2.8.0``         | Add owner_display_name to (Audit) Log table                  |
 +---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
diff --git a/docs/apache-airflow/security/security_model.rst b/docs/apache-airflow/security/security_model.rst
index 4b426ea041b14..6200fff8f0aa3 100644
--- a/docs/apache-airflow/security/security_model.rst
+++ b/docs/apache-airflow/security/security_model.rst
@@ -29,33 +29,59 @@ security reports are handled by the security team of Airflow, head to
 Airflow security model - user types
 -----------------------------------
 
-The Airflow security model involves different types of users with
-varying access and capabilities:
-
-1. **Deployment Managers**: They have the highest level of access and
-   control. They install and configure Airflow, and make decisions about
-   technologies and permissions. They can potentially delete the entire
-   installation and have access to all credentials. Deployment Managers
-   can also decide to keep audits, backups and copies of information
-   outside of Airflow, which are not covered by Airflow's security
-   model.
-
-2. **DAG Authors**: They can upload, modify, and delete DAG files. The
-   code in DAG files is executed on workers and in the DAG File Processor. Note
-   that in the simple deployment configuration, parsing DAGs is executed as
-   a subprocess of the Scheduler process, but with Standalone DAG File Processor
-   deployment managers might separate parsing DAGs from the Scheduler process.
-   Therefore, DAG authors can create and change code executed on workers
-   and the DAG File Processor and potentially access the credentials that the DAG
-   code uses to access external systems. DAG Authors have full access
-   to the metadata database and internal audit logs.
-
-3. **Authenticated UI users**: They have access to the UI and API. See below
-   for more details on the capabilities authenticated UI users may have.
-
-4. **Non-authenticated UI users**: Airflow doesn't support
-   unauthenticated users by default. If allowed, potential vulnerabilities
-   must be assessed and addressed by the Deployment Manager.
+The Airflow security model involves different types of users with varying access and capabilities:
+
+While - in smaller installations - all the actions related to Airflow can be performed by a single user,
+in larger installations it is apparent that there different responsibilities, roles and
+capabilities that need to be separated.
+
+This is why Airflow has the following user types:
+
+* Deployment Managers - overall responsible for the Airflow installation, security and configuration
+* Authenticated UI users - users that can access Airflow UI and API and interact with it
+* DAG Authors - responsible for creating DAGs and submitting them to Airflow
+
+You can see more on how the user types influence Airflow's architecture in :doc:`/core-concepts/overview`,
+including, seeing the diagrams of less and more complex deployments.
+
+
+
+
+Deployment Managers
+...................
+
+They have the highest level of access and
+control. They install and configure Airflow, and make decisions about
+technologies and permissions. They can potentially delete the entire
+installation and have access to all credentials. Deployment Managers
+can also decide to keep audits, backups and copies of information
+outside of Airflow, which are not covered by Airflow's security
+model.
+
+DAG Authors
+...........
+
+They can upload, modify, and delete DAG files. The
+code in DAG files is executed on workers and in the DAG File Processor. Note
+that in the simple deployment configuration, parsing DAGs is executed as
+a subprocess of the Scheduler process, but with Standalone DAG File Processor
+deployment managers might separate parsing DAGs from the Scheduler process.
+Therefore, DAG authors can create and change code executed on workers
+and the DAG File Processor and potentially access the credentials that the DAG
+code uses to access external systems. DAG Authors have full access
+to the metadata database and internal audit logs.
+
+Authenticated UI users
+.......................
+
+They have access to the UI and API. See below for more details on the capabilities
+authenticated UI users may have.
+
+Non-authenticated UI users
+..........................
+
+Airflow doesn't support unauthenticated users by default. If allowed, potential vulnerabilities
+must be assessed and addressed by the Deployment Manager.
 
 Capabilities of authenticated UI users
 --------------------------------------
@@ -67,40 +93,134 @@ scoped as tightly as a single DAG, for example, or as broad as Admin.
 Below are four general categories to help conceptualize some of the
 capabilities authenticated users may have:
 
-1. **Admin users**: They manage and grant permissions to other users,
-   with full access to all UI capabilities. They can potentially execute
-   code on workers by configuring connections and need to be trusted not
-   to abuse these privileges. They have access to sensitive credentials
-   and can modify them. By default, they don't have access to
-   system-level configuration. They should be trusted not to misuse
-   sensitive information accessible through connection configuration.
-   They also have the ability to create a Webserver Denial of Service
-   situation and should be trusted not to misuse this capability.
-
-2. **Operations users**: The primary difference between an operator and admin
-   if the ability to manage and grant permissions to other users - only admins
-   are able to do this. Otherwise assume they have the same access as an admin.
-
-3. **Connection configuration users**: They configure connections and
-   potentially execute code on workers during DAG execution. Trust is
-   required to prevent misuse of these privileges. They have full access
-   to sensitive credentials stored in connections and can modify them.
-   Access to sensitive information through connection configuration
-   should be trusted not to be abused. They also have the ability to
-   create a Webserver Denial of Service situation and should be trusted
-   not to misuse this capability.
-
-4. **Audit log users**: They can view audit events for the whole Airflow installation.
-
-5. **Normal Users**: They can view and interact with the UI and API.
-   They are able to view and edit DAGs, task instances, and DAG runs, and view task logs.
+Admin users
+...........
+
+They manage and grant permissions to other users,
+with full access to all UI capabilities. They can potentially execute
+code on workers by configuring connections and need to be trusted not
+to abuse these privileges. They have access to sensitive credentials
+and can modify them. By default, they don't have access to
+system-level configuration. They should be trusted not to misuse
+sensitive information accessible through connection configuration.
+They also have the ability to create a Webserver Denial of Service
+situation and should be trusted not to misuse this capability.
+
+Operations users
+................
+
+The primary difference between an operator and admin is the ability to manage and grant permissions
+to other users - only admins are able to do this. Otherwise assume they have the same access as an admin.
+
+Connection configuration users
+..............................
+
+They configure connections and potentially execute code on workers during DAG execution. Trust is
+required to prevent misuse of these privileges. They have full access
+to sensitive credentials stored in connections and can modify them.
+Access to sensitive information through connection configuration
+should be trusted not to be abused. They also have the ability to
+create a Webserver Denial of Service situation and should be trusted
+not to misuse this capability.
+
+Audit log users
+...............
+
+They can view audit events for the whole Airflow installation.
+
+Regular users
+.............
+
+They can view and interact with the UI and API. They are able to view and edit DAGs,
+task instances, and DAG runs, and view task logs.
 
 For more information on the capabilities of authenticated UI users, see :doc:`/security/access-control`.
 
+Capabilities of DAG Authors
+---------------------------
+
+DAG authors are able to submit code - via Python files placed in the DAGS_FOLDER - that will be executed
+in a number of circumstances. The code to execute is neither verified, checked nor sand-boxed by Airflow
+(that would be very difficult if not impossible to do), so effectively DAG authors can execute arbitrary
+code on the workers (part of Celery Workers for Celery Executor, local processes run by scheduler in case
+of Local Executor, Task Kubernetes POD in case of Kubernetes Executor), in the DAG File Processor
+(which can be either executed as standalone process or can be part of the Scheduler) and in the Triggerer.
+
+There are several consequences of this model chosen by Airflow, that deployment managers need to be aware of:
+
+Local executor and built-in DAG File Processor
+..............................................
+
+In case of Local Executor and DAG File Processor running as part of the Scheduler, DAG authors can execute
+arbitrary code on the machine where scheduler is running. This means that they can affect the scheduler
+process itself, and potentially affect the whole Airflow installation - including modifying cluster-wide
+policies and changing Airflow configuration. If you are running Airflow with one of those settings,
+the Deployment Manager must trust the DAG authors not to abuse this capability.
+
+Celery Executor
+...............
+
+In case of Celery Executor, DAG authors can execute arbitrary code on the Celery Workers. This means that
+they can potentially influence all the tasks executed on the same worker. If you are running Airflow with
+Celery Executor, the Deployment Manager must trust the DAG authors not to abuse this capability and unless
+Deployment Manager separates task execution by queues by Cluster Policies, they should assume, there is no
+isolation between tasks.
+
+Kubernetes Executor
+...................
+
+In case of Kubernetes Executor, DAG authors can execute arbitrary code on the Kubernetes POD they run. Each
+task is executed in a separate POD, so there is already isolation between tasks as generally speaking
+Kubernetes provides isolation between PODs.
+
+Triggerer
+.........
+
+In case of Triggerer, DAG authors can execute arbitrary code in Triggerer. Currently there are no
+enforcement mechanisms that would allow to isolate tasks that are using deferrable functionality from
+each other and arbitrary code from various tasks can be executed in the same process/machine. Deployment
+Manager must trust that DAG authors will not abuse this capability.
+
+DAG files not needed for Scheduler and Webserver
+................................................
+
+The Deployment Manager might isolate the code execution provided by DAG authors - particularly in
+Scheduler and Webserver by making sure that the Scheduler and Webserver don't even
+have access to the DAG Files (that requires standalone DAG File Processor to be deployed). Generally
+speaking - no DAG author provided code should ever be executed in the Scheduler or Webserver process.
+
+Allowing DAG authors to execute selected code in Scheduler and Webserver
+........................................................................
+
+There are a number of functionalities that allow the DAG author to use pre-registered custom code to be
+executed in scheduler or webserver process - for example they can choose custom Timetables, UI plugins,
+Connection UI Fields, Operator extra links, macros, listeners - all of those functionalities allow the
+DAG author to choose the code that will be executed in the scheduler or webserver process. However this
+should not be arbitrary code that DAG author can add in DAG folder. All those functionalities are
+only available via ``plugins`` and ``providers`` mechanisms where the code that is executed can only be
+provided by installed packages (or in case of plugins it can also be added to PLUGINS folder where DAG
+authors should not have write access to). PLUGINS FOLDER is a legacy mechanism coming from Airflow 1.10
+- but we recommend using entrypoint mechanism that allows the Deployment Manager to - effectively -
+choose and register the code that will be executed in those contexts. DAG Author has no access to
+install or modify packages installed in Webserver and Scheduler, and this is the way to prevent
+the DAG Author to execute arbitrary code in those processes.
+
+The Deployment Manager might decide to introduce additional control mechanisms to prevent DAG authors from
+executing arbitrary code. This is all fully in hands of the Deployment Manager and it is discussed in the
+following chapter.
+
 Responsibilities of Deployment Managers
 ---------------------------------------
 
-Deployment Managers are responsible for deploying airflow and make it accessible to the users
+As a Deployment Manager, you should be aware of the capabilities of DAG authors and make sure that
+you trust them not to abuse the capabilities they have. You should also make sure that you have
+properly configured the Airflow installation to prevent DAG authors from executing arbitrary code
+in the Scheduler and Webserver processes.
+
+Deploying and protecting Airflow installation
+.............................................
+
+Deployment Managers are also responsible for deploying airflow and make it accessible to the users
 in the way that follows best practices of secure deployment applicable to the organization where
 Airflow is deployed. This includes but is not limited to:
 
@@ -112,37 +232,43 @@ Airflow is deployed. This includes but is not limited to:
 * any kind of detection of unusual activity and protection against it
 * choosing the right session backend and configuring it properly including timeouts for the session
 
+Limiting DAG Author capabilities
+.................................
+
+The Deployment Manager might also use additional mechanisms to prevent DAG authors from executing
+arbitrary code - for example they might introduce tooling around DAG submission that would allow
+to review the code before it is deployed, statically-check it and add other ways to prevent malicious
+code to be submitted. The way how submitting code to DAG folder is done and protected is completely
+up to the Deployment Manager - Airflow does not provide any tooling or mechanisms around it and it
+expects that the Deployment Manager will provide the tooling to protect access to the DAG folder and
+make sure that only trusted code is submitted there.
+
 Airflow does not implement any of those feature natively, and delegates it to the deployment managers
 to deploy all the necessary infrastructure to protect the deployment - as external infrastructure components.
 
-Deployment Managers also determine access levels and must understand the potential
-damage users can cause. Some Deployment Managers may further limit
-access through fine-grained privileges for the **Authenticated UI
-users**. However, these limitations are outside the basic Airflow's
-security model and are at the discretion of Deployment Managers.
-Examples of fine-grained access control include (but are not limited
-to):
-
--  Limiting login permissions: Restricting the accounts that users can
-   log in with, allowing only specific accounts or roles belonging to
-   access the Airflow system.
-
--  Access restrictions to views or DAGs: Controlling user access to
-   certain views or specific DAGs, ensuring that users can only view or
-   interact with authorized components.
-
--  Implementing static code analysis and code review: Introducing
-   processes such as static code analysis and code review as part of the
-   DAG submission pipeline. This helps enforce code quality standards,
-   security checks, and adherence to best practices before DAGs are
-   deployed.
-
-These examples showcase ways in which Deployment Managers can refine and
-limit user privileges within Airflow, providing tighter control and
-ensuring that users have access only to the necessary components and
-functionalities based on their roles and responsibilities. However,
-fine-grained access control does not provide full isolation and
-separation of access to allow isolation of different user groups in a
-multi-tenant fashion yet. In future versions of Airflow, some
-fine-grained access control features could become part of the Airflow security
-model, as the Airflow community is working on a multi-tenant model currently.
+Limiting access for authenticated UI users
+...........................................
+
+Deployment Managers also determine access levels and must understand the potential damage users can cause.
+Some Deployment Managers may further limit access through fine-grained privileges for the **Authenticated UI
+users**. However, these limitations are outside the basic Airflow's security model and are at the
+discretion of Deployment Managers.
+
+Examples of fine-grained access control include (but are not limited to):
+
+*  Limiting login permissions: Restricting the accounts that users can log in with, allowing only specific
+   accounts or roles belonging to access the Airflow system.
+
+*  Access restrictions to views or DAGs: Controlling user access to certain views or specific DAGs,
+   ensuring that users can only view or interact with authorized components.
+
+Future: multi-tenancy isolation
+...............................
+
+These examples showcase ways in which Deployment Managers can refine and limit user privileges within Airflow,
+providing tighter control and ensuring that users have access only to the necessary components and
+functionalities based on their roles and responsibilities. However, fine-grained access control does not
+provide full isolation and separation of access to allow isolation of different user groups in a
+multi-tenant fashion yet. In future versions of Airflow, some fine-grained access control features could
+become part of the Airflow security model, as the Airflow community is working on a multi-tenant model
+currently.
diff --git a/docs/apache-airflow/tutorial/objectstorage.rst b/docs/apache-airflow/tutorial/objectstorage.rst
index 89ffe0e8f95d6..610450b931986 100644
--- a/docs/apache-airflow/tutorial/objectstorage.rst
+++ b/docs/apache-airflow/tutorial/objectstorage.rst
@@ -32,7 +32,7 @@ analytical database. You can do this by running ``pip install duckdb``. The tuto
 makes use of S3 Object Storage. This requires that the amazon provider is installed
 including ``s3fs`` by running ``pip install apache-airflow-providers-amazon[s3fs]``.
 If you would like to use a different storage provider, you can do so by changing the
-url in the ``create_object_storage_path`` function to the appropriate url for your
+URL in the ``create_object_storage_path`` function to the appropriate URL for your
 provider, for example by replacing ``s3://`` with ``gs://`` for Google Cloud Storage.
 You will also need the right provider to be installed then. Finally, you will need
 ``pandas``, which can be installed by running ``pip install pandas``.
@@ -49,9 +49,19 @@ It is the fundamental building block of the Object Storage API.
     :start-after: [START create_object_storage_path]
     :end-before: [END create_object_storage_path]
 
-The ObjectStoragePath constructor can take an optional connection id. If supplied
-it will use the connection to obtain the right credentials to access the backend.
-Otherwise it will revert to the default for that backend.
+The username part of the URL given to ObjectStoragePath should be a connection ID.
+The specified connection will be used to obtain the right credentials to access
+the backend. If it is omitted, the default connection for the backend will be used.
+
+The connection ID can alternatively be passed in with a keyword argument:
+
+.. code-block:: python
+
+    ObjectStoragePath("s3://airflow-tutorial-data/", conn_id="aws_default")
+
+This is useful when reusing a URL defined for another purpose (e.g. Dataset),
+which generally does not contain a username part. The explicit keyword argument
+takes precedence over the URL's username value if both are specified.
 
 It is safe to instantiate an ObjectStoragePath at the root of your DAG. Connections
 will not be created until the path is used. This means that you can create the
diff --git a/docs/conf.py b/docs/conf.py
index e832e1e012580..f66e016ee94b5 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -151,6 +151,7 @@
     "sphinx_airflow_theme",
     "redirects",
     "substitution_extensions",
+    "sphinx_design",
 ]
 if PACKAGE_NAME == "apache-airflow":
     extensions.extend(
@@ -317,6 +318,9 @@ def _get_rst_filepath_from_path(filepath: pathlib.Path):
     html_static_path = [f"{PACKAGE_NAME}/static"]
 else:
     html_static_path = []
+
+html_static_path.append("sphinx_design/static/")  # Style overrides for the sphinx-design extension.
+
 # A list of JavaScript filename. The entry must be a filename string or a
 # tuple containing the filename string and the attributes dictionary. The
 # filename must be relative to the html_static_path, or a full URI with
@@ -344,6 +348,8 @@ def _get_rst_filepath_from_path(filepath: pathlib.Path):
     # Substitute in links
     manual_substitutions_in_generated_html = ["build.html"]
 
+html_css_files = ["custom.css"]
+
 # -- Theme configuration -------------------------------------------------------
 # Custom sidebar templates, maps document names to template names.
 html_sidebars = {
diff --git a/docs/docker-stack/build-arg-ref.rst b/docs/docker-stack/build-arg-ref.rst
index e1f566be8d051..3e492e00f92cd 100644
--- a/docs/docker-stack/build-arg-ref.rst
+++ b/docs/docker-stack/build-arg-ref.rst
@@ -85,7 +85,6 @@ List of default extras in the production Dockerfile:
 * async
 * celery
 * cncf.kubernetes
-* daskexecutor
 * docker
 * elasticsearch
 * ftp
diff --git a/docs/docker-stack/changelog.rst b/docs/docker-stack/changelog.rst
index ad71d49221a52..6e77799779362 100644
--- a/docs/docker-stack/changelog.rst
+++ b/docs/docker-stack/changelog.rst
@@ -47,6 +47,14 @@ Airflow 2.8
      working with ``Debian Bookworm``. While all reference images of Airflow 2.8.0 are built on ``Debian Bookworm``,
      it is still possible to build deprecated custom ``Debian Bullseye`` based image in 2.8.0 following the
 
+   * The "latest" image (i.e. default Airflow image when ``apache/airflow`` is used or
+     ``apache/airflow:slim-latest``) uses now the newest supported Python version. Previously it was using
+     the "default" Python version which was Python 3.8 as of Airflow 2.7. With Airflow reference images
+     released for Airflow 2.8.0, the images are going to use Python 3.11 as this is the latest supported
+     version for Airflow 2.8 line. Users can use Python 3.8 by using ``apache/airflow:2.8.0-python3.8`` and
+     ``apache/airflow:slim-2.8.0-python-3.8`` images respectively so while the change is potentially
+     breaking, it is very easy to switch to the previous behaviour.
+
 
 Airflow 2.7
 ~~~~~~~~~~~
diff --git a/docs/integration-logos/aws/Amazon-Verified-Permissions.png b/docs/integration-logos/aws/Amazon-Verified-Permissions.png
new file mode 100644
index 0000000000000..a68a7a3b6a6d4
Binary files /dev/null and b/docs/integration-logos/aws/Amazon-Verified-Permissions.png differ
diff --git a/docs/sphinx_design/static/custom.css b/docs/sphinx_design/static/custom.css
new file mode 100644
index 0000000000000..b1cf49f37d486
--- /dev/null
+++ b/docs/sphinx_design/static/custom.css
@@ -0,0 +1,33 @@
+/*!
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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 file contains style overrides for the sphinx-design extension.
+
+ The original defaults can be found here:
+    https://sphinx-design.readthedocs.io/en/alabaster-theme/css_variables.html
+ */
+
+:root {
+    --sd-color-tabs-label-active: #017cee;
+    --sd-color-tabs-label-hover: #68d1ff;
+    --sd-color-tabs-underline-active: #017cee;
+    --sd-color-tabs-underline-hover: #68d1ff;
+    --sd-color-tabs-underline: transparent;
+}
diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json
index 89ae8735bca13..e6405cfe77bdc 100644
--- a/generated/provider_dependencies.json
+++ b/generated/provider_dependencies.json
@@ -295,16 +295,6 @@
     ],
     "excluded-python-versions": []
   },
-  "daskexecutor": {
-    "deps": [
-      "apache-airflow>=2.5.0",
-      "cloudpickle>=1.4.1",
-      "dask>=2.9.0,!=2022.10.1,!=2023.5.0",
-      "distributed>=2.11.1,!=2023.5.0"
-    ],
-    "cross-providers-deps": [],
-    "excluded-python-versions": []
-  },
   "databricks": {
     "deps": [
       "aiohttp>=3.6.3, <4",
@@ -425,7 +415,7 @@
       "gcloud-aio-auth>=4.0.0,<5.0.0",
       "gcloud-aio-bigquery>=6.1.2",
       "gcloud-aio-storage",
-      "gcsfs>=2023.9.2",
+      "gcsfs>=2023.10.0",
       "google-ads>=22.1.0",
       "google-api-core>=2.11.0",
       "google-api-python-client>=1.6.0",
@@ -567,7 +557,7 @@
   "microsoft.azure": {
     "deps": [
       "adal>=1.2.7",
-      "adlfs>=2023.9.2",
+      "adlfs>=2023.10.0",
       "apache-airflow>=2.5.0",
       "azure-batch>=8.0.0",
       "azure-cosmos>=4.0.0",
@@ -600,7 +590,7 @@
     "deps": [
       "apache-airflow-providers-common-sql>=1.3.1",
       "apache-airflow>=2.5.0",
-      "pymssql>=2.1.5"
+      "pymssql>=2.1.8"
     ],
     "cross-providers-deps": [
       "common.sql"
diff --git a/images/breeze/output_build-docs.svg b/images/breeze/output_build-docs.svg
index 4099e6b44a650..059722159d7a5 100644
--- a/images/breeze/output_build-docs.svg
+++ b/images/breeze/output_build-docs.svg
@@ -164,9 +164,9 @@
 </text><text class="breeze-build-docs-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">amazon</text><text class="breeze-build-docs-r1" x="85.4" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="122" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="195.2" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="207.4" y="117.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-4)">beam</text><text class="breeze-build-docs-r1" x="256.2" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="292.8" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="366" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="378.2" y="117.6" textLength="109.8" clip-path="url(#breeze-build-docs-line-4)">cassandra</text><text class="breeze-build-docs-r1" x="488" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="524.6" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="597.8" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="610" y="117.6" textLength="61" clip-path="url(#breeze-build-docs-line-4)">drill</text><text class="breeze-build-docs-r1" x="671" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="707.6" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="780.8" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="793" y="117.6" textLength="61" clip-path="url(#breeze-build-docs-line-4)">druid</text><text class="breeze-build-docs-r1" x="854" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="890.6" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="963.8" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="976" y="117.6" textLength="61" clip-path="url(#breeze-build-docs-line-4)">flink</text><text class="breeze-build-docs-r1" x="1037" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1073.6" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="1146.8" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="1159" y="117.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-4)">hdfs</text><text class="breeze-build-docs-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">apache</text><text class="breeze-build-docs-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">.</text><text class="breeze-build-docs-r4" x="1329.8" y="117.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-4)">hive</text><text class="breeze-build-docs-r1" x="1378.6" y="117.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-4)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">
 </text><text class="breeze-build-docs-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="97.6" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">impala</text><text class="breeze-build-docs-r1" x="170.8" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="207.4" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="280.6" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="292.8" y="142" textLength="61" clip-path="url(#breeze-build-docs-line-5)">kafka</text><text class="breeze-build-docs-r1" x="353.8" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="390.4" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="463.6" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="475.8" y="142" textLength="61" clip-path="url(#breeze-build-docs-line-5)">kylin</text><text class="breeze-build-docs-r1" x="536.8" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="573.4" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="646.6" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="658.8" y="142" textLength="48.8" clip-path="url(#breeze-build-docs-line-5)">livy</text><text class="breeze-build-docs-r1" x="707.6" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="744.2" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="817.4" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="829.6" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">pig</text><text class="breeze-build-docs-r1" x="866.2" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="902.8" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="976" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="988.2" y="142" textLength="61" clip-path="url(#breeze-build-docs-line-5)">pinot</text><text class="breeze-build-docs-r1" x="1049.2" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1085.8" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="1159" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="1171.2" y="142" textLength="61" clip-path="url(#breeze-build-docs-line-5)">spark</text><text class="breeze-build-docs-r1" x="1232.2" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1268.8" y="142" textLength="73.2" clip-path="url(#breeze-build-docs-line-5)">apache</text><text class="breeze-build-docs-r1" x="1342" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">.</text><text class="breeze-build-docs-r4" x="1354.2" y="142" textLength="61" clip-path="url(#breeze-build-docs-line-5)">sqoop</text><text class="breeze-build-docs-r1" x="1415.2" y="142" textLength="36.6" clip-path="url(#breeze-build-docs-line-5)">&#160;|&#160;</text><text class="breeze-build-docs-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-build-docs-line-5)">
 </text><text class="breeze-build-docs-r4" x="12.2" y="166.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-6)">apprise</text><text class="breeze-build-docs-r1" x="97.6" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="134.2" y="166.4" textLength="97.6" clip-path="url(#breeze-build-docs-line-6)">arangodb</text><text class="breeze-build-docs-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="268.4" y="166.4" textLength="61" clip-path="url(#breeze-build-docs-line-6)">asana</text><text class="breeze-build-docs-r1" x="329.4" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="366" y="166.4" textLength="109.8" clip-path="url(#breeze-build-docs-line-6)">atlassian</text><text class="breeze-build-docs-r1" x="475.8" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">.</text><text class="breeze-build-docs-r4" x="488" y="166.4" textLength="48.8" clip-path="url(#breeze-build-docs-line-6)">jira</text><text class="breeze-build-docs-r1" x="536.8" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="573.4" y="166.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-6)">celery</text><text class="breeze-build-docs-r1" x="646.6" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="683.2" y="166.4" textLength="97.6" clip-path="url(#breeze-build-docs-line-6)">cloudant</text><text class="breeze-build-docs-r1" x="780.8" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="817.4" y="166.4" textLength="48.8" clip-path="url(#breeze-build-docs-line-6)">cncf</text><text class="breeze-build-docs-r1" x="866.2" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">.</text><text class="breeze-build-docs-r4" x="878.4" y="166.4" textLength="122" clip-path="url(#breeze-build-docs-line-6)">kubernetes</text><text class="breeze-build-docs-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1037" y="166.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-6)">cohere</text><text class="breeze-build-docs-r1" x="1110.2" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1146.8" y="166.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-6)">common</text><text class="breeze-build-docs-r1" x="1220" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">.</text><text class="breeze-build-docs-r4" x="1232.2" y="166.4" textLength="24.4" clip-path="url(#breeze-build-docs-line-6)">io</text><text class="breeze-build-docs-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-6)">common</text><text class="breeze-build-docs-r1" x="1366.4" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">.</text><text class="breeze-build-docs-r4" x="1378.6" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">sql</text><text class="breeze-build-docs-r1" x="1415.2" y="166.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-6)">&#160;|&#160;</text><text class="breeze-build-docs-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">
-</text><text class="breeze-build-docs-r4" x="12.2" y="190.8" textLength="146.4" clip-path="url(#breeze-build-docs-line-7)">daskexecutor</text><text class="breeze-build-docs-r1" x="158.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="195.2" y="190.8" textLength="122" clip-path="url(#breeze-build-docs-line-7)">databricks</text><text class="breeze-build-docs-r1" x="317.2" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="353.8" y="190.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-7)">datadog</text><text class="breeze-build-docs-r1" x="439.2" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="475.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">dbt</text><text class="breeze-build-docs-r1" x="512.4" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">.</text><text class="breeze-build-docs-r4" x="524.6" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-line-7)">cloud</text><text class="breeze-build-docs-r1" x="585.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="622.2" y="190.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-7)">dingding</text><text class="breeze-build-docs-r1" x="719.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="756.4" y="190.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-7)">discord</text><text class="breeze-build-docs-r1" x="841.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="878.4" y="190.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-7)">docker</text><text class="breeze-build-docs-r1" x="951.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="988.2" y="190.8" textLength="158.6" clip-path="url(#breeze-build-docs-line-7)">elasticsearch</text><text class="breeze-build-docs-r1" x="1146.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1183.4" y="190.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-7)">exasol</text><text class="breeze-build-docs-r1" x="1256.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1293.2" y="190.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-7)">facebook</text><text class="breeze-build-docs-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">
-</text><text class="breeze-build-docs-r4" x="12.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">ftp</text><text class="breeze-build-docs-r1" x="48.8" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="85.4" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8)">github</text><text class="breeze-build-docs-r1" x="158.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="195.2" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8)">google</text><text class="breeze-build-docs-r1" x="268.4" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="305" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">grpc</text><text class="breeze-build-docs-r1" x="353.8" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="390.4" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">hashicorp</text><text class="breeze-build-docs-r1" x="500.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="536.8" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">http</text><text class="breeze-build-docs-r1" x="585.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="622.2" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">imap</text><text class="breeze-build-docs-r1" x="671" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="707.6" y="215.2" textLength="97.6" clip-path="url(#breeze-build-docs-line-8)">influxdb</text><text class="breeze-build-docs-r1" x="805.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="841.8" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">jdbc</text><text class="breeze-build-docs-r1" x="890.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="927.2" y="215.2" textLength="85.4" clip-path="url(#breeze-build-docs-line-8)">jenkins</text><text class="breeze-build-docs-r1" x="1012.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1049.2" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">microsoft</text><text class="breeze-build-docs-r1" x="1159" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">.</text><text class="breeze-build-docs-r4" x="1171.2" y="215.2" textLength="61" clip-path="url(#breeze-build-docs-line-8)">azure</text><text class="breeze-build-docs-r1" x="1232.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1268.8" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">microsoft</text><text class="breeze-build-docs-r1" x="1378.6" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">.</text><text class="breeze-build-docs-r4" x="1390.8" y="215.2" textLength="61" clip-path="url(#breeze-build-docs-line-8)">mssql</text><text class="breeze-build-docs-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">
-</text><text class="breeze-build-docs-r1" x="12.2" y="239.6" textLength="24.4" clip-path="url(#breeze-build-docs-line-9)">|&#160;</text><text class="breeze-build-docs-r4" x="36.6" y="239.6" textLength="109.8" clip-path="url(#breeze-build-docs-line-9)">microsoft</text><text class="breeze-build-docs-r1" x="146.4" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">.</text><text class="breeze-build-docs-r4" x="158.6" y="239.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-9)">psrp</text><text class="breeze-build-docs-r1" x="207.4" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="244" y="239.6" textLength="109.8" clip-path="url(#breeze-build-docs-line-9)">microsoft</text><text class="breeze-build-docs-r1" x="353.8" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">.</text><text class="breeze-build-docs-r4" x="366" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">winrm</text><text class="breeze-build-docs-r1" x="427" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="463.6" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">mongo</text><text class="breeze-build-docs-r1" x="524.6" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="561.2" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">mysql</text><text class="breeze-build-docs-r1" x="622.2" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="658.8" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">neo4j</text><text class="breeze-build-docs-r1" x="719.8" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="756.4" y="239.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-9)">odbc</text><text class="breeze-build-docs-r1" x="805.2" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="841.8" y="239.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-9)">openai</text><text class="breeze-build-docs-r1" x="915" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="951.6" y="239.6" textLength="97.6" clip-path="url(#breeze-build-docs-line-9)">openfaas</text><text class="breeze-build-docs-r1" x="1049.2" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1085.8" y="239.6" textLength="134.2" clip-path="url(#breeze-build-docs-line-9)">openlineage</text><text class="breeze-build-docs-r1" x="1220" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1256.6" y="239.6" textLength="122" clip-path="url(#breeze-build-docs-line-9)">opensearch</text><text class="breeze-build-docs-r1" x="1378.6" y="239.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">
+</text><text class="breeze-build-docs-r4" x="12.2" y="190.8" textLength="122" clip-path="url(#breeze-build-docs-line-7)">databricks</text><text class="breeze-build-docs-r1" x="134.2" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="170.8" y="190.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-7)">datadog</text><text class="breeze-build-docs-r1" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">dbt</text><text class="breeze-build-docs-r1" x="329.4" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">.</text><text class="breeze-build-docs-r4" x="341.6" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-line-7)">cloud</text><text class="breeze-build-docs-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="439.2" y="190.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-7)">dingding</text><text class="breeze-build-docs-r1" x="536.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="573.4" y="190.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-7)">discord</text><text class="breeze-build-docs-r1" x="658.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="695.4" y="190.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-7)">docker</text><text class="breeze-build-docs-r1" x="768.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="805.2" y="190.8" textLength="158.6" clip-path="url(#breeze-build-docs-line-7)">elasticsearch</text><text class="breeze-build-docs-r1" x="963.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1000.4" y="190.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-7)">exasol</text><text class="breeze-build-docs-r1" x="1073.6" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1110.2" y="190.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-7)">facebook</text><text class="breeze-build-docs-r1" x="1207.8" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">ftp</text><text class="breeze-build-docs-r1" x="1281" y="190.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1317.6" y="190.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-7)">github</text><text class="breeze-build-docs-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">
+</text><text class="breeze-build-docs-r4" x="12.2" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8)">google</text><text class="breeze-build-docs-r1" x="85.4" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="122" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">grpc</text><text class="breeze-build-docs-r1" x="170.8" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="207.4" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">hashicorp</text><text class="breeze-build-docs-r1" x="317.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="353.8" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">http</text><text class="breeze-build-docs-r1" x="402.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="439.2" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">imap</text><text class="breeze-build-docs-r1" x="488" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="524.6" y="215.2" textLength="97.6" clip-path="url(#breeze-build-docs-line-8)">influxdb</text><text class="breeze-build-docs-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="658.8" y="215.2" textLength="48.8" clip-path="url(#breeze-build-docs-line-8)">jdbc</text><text class="breeze-build-docs-r1" x="707.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="744.2" y="215.2" textLength="85.4" clip-path="url(#breeze-build-docs-line-8)">jenkins</text><text class="breeze-build-docs-r1" x="829.6" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="866.2" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">microsoft</text><text class="breeze-build-docs-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">.</text><text class="breeze-build-docs-r4" x="988.2" y="215.2" textLength="61" clip-path="url(#breeze-build-docs-line-8)">azure</text><text class="breeze-build-docs-r1" x="1049.2" y="215.2" textLength="36.6" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1085.8" y="215.2" textLength="109.8" clip-path="url(#breeze-build-docs-line-8)">microsoft</text><text class="breeze-build-docs-r1" x="1195.6" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">.</text><text class="breeze-build-docs-r4" x="1207.8" y="215.2" textLength="61" clip-path="url(#breeze-build-docs-line-8)">mssql</text><text class="breeze-build-docs-r1" x="1268.8" y="215.2" textLength="183" clip-path="url(#breeze-build-docs-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">
+</text><text class="breeze-build-docs-r4" x="12.2" y="239.6" textLength="109.8" clip-path="url(#breeze-build-docs-line-9)">microsoft</text><text class="breeze-build-docs-r1" x="122" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">.</text><text class="breeze-build-docs-r4" x="134.2" y="239.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-9)">psrp</text><text class="breeze-build-docs-r1" x="183" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="219.6" y="239.6" textLength="109.8" clip-path="url(#breeze-build-docs-line-9)">microsoft</text><text class="breeze-build-docs-r1" x="329.4" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">.</text><text class="breeze-build-docs-r4" x="341.6" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">winrm</text><text class="breeze-build-docs-r1" x="402.6" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="439.2" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">mongo</text><text class="breeze-build-docs-r1" x="500.2" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="536.8" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">mysql</text><text class="breeze-build-docs-r1" x="597.8" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="634.4" y="239.6" textLength="61" clip-path="url(#breeze-build-docs-line-9)">neo4j</text><text class="breeze-build-docs-r1" x="695.4" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="732" y="239.6" textLength="48.8" clip-path="url(#breeze-build-docs-line-9)">odbc</text><text class="breeze-build-docs-r1" x="780.8" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="817.4" y="239.6" textLength="73.2" clip-path="url(#breeze-build-docs-line-9)">openai</text><text class="breeze-build-docs-r1" x="890.6" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="927.2" y="239.6" textLength="97.6" clip-path="url(#breeze-build-docs-line-9)">openfaas</text><text class="breeze-build-docs-r1" x="1024.8" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1061.4" y="239.6" textLength="134.2" clip-path="url(#breeze-build-docs-line-9)">openlineage</text><text class="breeze-build-docs-r1" x="1195.6" y="239.6" textLength="36.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1232.2" y="239.6" textLength="122" clip-path="url(#breeze-build-docs-line-9)">opensearch</text><text class="breeze-build-docs-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-build-docs-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">
 </text><text class="breeze-build-docs-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-build-docs-line-10)">opsgenie</text><text class="breeze-build-docs-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-build-docs-line-10)">oracle</text><text class="breeze-build-docs-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="256.2" y="264" textLength="109.8" clip-path="url(#breeze-build-docs-line-10)">pagerduty</text><text class="breeze-build-docs-r1" x="366" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="402.6" y="264" textLength="109.8" clip-path="url(#breeze-build-docs-line-10)">papermill</text><text class="breeze-build-docs-r1" x="512.4" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="549" y="264" textLength="97.6" clip-path="url(#breeze-build-docs-line-10)">pgvector</text><text class="breeze-build-docs-r1" x="646.6" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="683.2" y="264" textLength="97.6" clip-path="url(#breeze-build-docs-line-10)">pinecone</text><text class="breeze-build-docs-r1" x="780.8" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="817.4" y="264" textLength="73.2" clip-path="url(#breeze-build-docs-line-10)">plexus</text><text class="breeze-build-docs-r1" x="890.6" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="927.2" y="264" textLength="97.6" clip-path="url(#breeze-build-docs-line-10)">postgres</text><text class="breeze-build-docs-r1" x="1024.8" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1061.4" y="264" textLength="73.2" clip-path="url(#breeze-build-docs-line-10)">presto</text><text class="breeze-build-docs-r1" x="1134.6" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1171.2" y="264" textLength="61" clip-path="url(#breeze-build-docs-line-10)">redis</text><text class="breeze-build-docs-r1" x="1232.2" y="264" textLength="36.6" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1268.8" y="264" textLength="122" clip-path="url(#breeze-build-docs-line-10)">salesforce</text><text class="breeze-build-docs-r1" x="1390.8" y="264" textLength="61" clip-path="url(#breeze-build-docs-line-10)">&#160;|&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-build-docs-line-10)">
 </text><text class="breeze-build-docs-r4" x="12.2" y="288.4" textLength="61" clip-path="url(#breeze-build-docs-line-11)">samba</text><text class="breeze-build-docs-r1" x="73.2" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="109.8" y="288.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-11)">segment</text><text class="breeze-build-docs-r1" x="195.2" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="231.8" y="288.4" textLength="97.6" clip-path="url(#breeze-build-docs-line-11)">sendgrid</text><text class="breeze-build-docs-r1" x="329.4" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="366" y="288.4" textLength="48.8" clip-path="url(#breeze-build-docs-line-11)">sftp</text><text class="breeze-build-docs-r1" x="414.8" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="451.4" y="288.4" textLength="134.2" clip-path="url(#breeze-build-docs-line-11)">singularity</text><text class="breeze-build-docs-r1" x="585.6" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="622.2" y="288.4" textLength="61" clip-path="url(#breeze-build-docs-line-11)">slack</text><text class="breeze-build-docs-r1" x="683.2" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="719.8" y="288.4" textLength="48.8" clip-path="url(#breeze-build-docs-line-11)">smtp</text><text class="breeze-build-docs-r1" x="768.6" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="805.2" y="288.4" textLength="109.8" clip-path="url(#breeze-build-docs-line-11)">snowflake</text><text class="breeze-build-docs-r1" x="915" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="951.6" y="288.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-11)">sqlite</text><text class="breeze-build-docs-r1" x="1024.8" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1061.4" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">ssh</text><text class="breeze-build-docs-r1" x="1098" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1134.6" y="288.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-11)">tableau</text><text class="breeze-build-docs-r1" x="1220" y="288.4" textLength="36.6" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="1256.6" y="288.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-11)">tabular</text><text class="breeze-build-docs-r1" x="1342" y="288.4" textLength="109.8" clip-path="url(#breeze-build-docs-line-11)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-11)">
 </text><text class="breeze-build-docs-r4" x="12.2" y="312.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-12)">telegram</text><text class="breeze-build-docs-r1" x="109.8" y="312.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-12)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="146.4" y="312.8" textLength="61" clip-path="url(#breeze-build-docs-line-12)">trino</text><text class="breeze-build-docs-r1" x="207.4" y="312.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-12)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="244" y="312.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-12)">vertica</text><text class="breeze-build-docs-r1" x="329.4" y="312.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-12)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="366" y="312.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-12)">weaviate</text><text class="breeze-build-docs-r1" x="463.6" y="312.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-12)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="500.2" y="312.8" textLength="73.2" clip-path="url(#breeze-build-docs-line-12)">yandex</text><text class="breeze-build-docs-r1" x="573.4" y="312.8" textLength="36.6" clip-path="url(#breeze-build-docs-line-12)">&#160;|&#160;</text><text class="breeze-build-docs-r4" x="610" y="312.8" textLength="85.4" clip-path="url(#breeze-build-docs-line-12)">zendesk</text><text class="breeze-build-docs-r1" x="695.4" y="312.8" textLength="756.4" clip-path="url(#breeze-build-docs-line-12)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-build-docs-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-12)">
diff --git a/images/breeze/output_build-docs.txt b/images/breeze/output_build-docs.txt
index 006717fa6b6be..25770d1e753fc 100644
--- a/images/breeze/output_build-docs.txt
+++ b/images/breeze/output_build-docs.txt
@@ -1 +1 @@
-dcaf95e8f043c0a3d749d51bded676bd
+dbdadc0d2c0982706c94770fb6907dfe
diff --git a/images/breeze/output_prod-image_build.svg b/images/breeze/output_prod-image_build.svg
index 729eafed98491..285d5e796921b 100644
--- a/images/breeze/output_prod-image_build.svg
+++ b/images/breeze/output_prod-image_build.svg
@@ -420,7 +420,7 @@
 </text><text class="breeze-prod-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1337.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-54)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1337.6" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-54)">-extras</text><text class="breeze-prod-image-build-r1" x="463.6" y="1337.6" textLength="976" clip-path="url(#breeze-prod-image-build-line-54)">Extras&#160;to&#160;install&#160;by&#160;default.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">
 </text><text class="breeze-prod-image-build-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="1362" textLength="976" clip-path="url(#breeze-prod-image-build-line-55)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">
 </text><text class="breeze-prod-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1386.4" textLength="976" clip-path="url(#breeze-prod-image-build-line-56)">[default:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1410.8" textLength="976" clip-path="url(#breeze-prod-image-build-line-57)">aiobotocore,amazon,async,celery,cncf.kubernetes,daskexecutor,docker,elasticsear…</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1410.8" textLength="976" clip-path="url(#breeze-prod-image-build-line-57)">aiobotocore,amazon,async,celery,cncf.kubernetes,docker,elasticsearch,ftp,google…</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">
 </text><text class="breeze-prod-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1435.2" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-58)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1435.2" textLength="183" clip-path="url(#breeze-prod-image-build-line-58)">-airflow-extras</text><text class="breeze-prod-image-build-r1" x="463.6" y="1435.2" textLength="768.6" clip-path="url(#breeze-prod-image-build-line-58)">Additional&#160;extra&#160;package&#160;while&#160;installing&#160;Airflow&#160;in&#160;the&#160;image.</text><text class="breeze-prod-image-build-r7" x="1244.4" y="1435.2" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-58)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">
 </text><text class="breeze-prod-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1459.6" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-59)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1459.6" textLength="146.4" clip-path="url(#breeze-prod-image-build-line-59)">-python-deps</text><text class="breeze-prod-image-build-r1" x="463.6" y="1459.6" textLength="768.6" clip-path="url(#breeze-prod-image-build-line-59)">Additional&#160;python&#160;dependencies&#160;to&#160;use&#160;when&#160;building&#160;the&#160;images.</text><text class="breeze-prod-image-build-r7" x="1244.4" y="1459.6" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-59)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">
 </text><text class="breeze-prod-image-build-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1484" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-60)">-dev</text><text class="breeze-prod-image-build-r4" x="85.4" y="1484" textLength="109.8" clip-path="url(#breeze-prod-image-build-line-60)">-apt-deps</text><text class="breeze-prod-image-build-r1" x="463.6" y="1484" textLength="646.6" clip-path="url(#breeze-prod-image-build-line-60)">Apt&#160;dev&#160;dependencies&#160;to&#160;use&#160;when&#160;building&#160;the&#160;images.</text><text class="breeze-prod-image-build-r7" x="1122.4" y="1484" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-60)">(TEXT)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">
diff --git a/images/breeze/output_prod-image_build.txt b/images/breeze/output_prod-image_build.txt
index 5ef5d86aad2d2..61596caee263f 100644
--- a/images/breeze/output_prod-image_build.txt
+++ b/images/breeze/output_prod-image_build.txt
@@ -1 +1 @@
-1a2cec141b5b0b9ecd704e484ac5b4e3
+b785cd0d829e9695c44cc48955bc131a
diff --git a/images/breeze/output_release-management_add-back-references.svg b/images/breeze/output_release-management_add-back-references.svg
index 8afb771e042af..aa4b6de2a4bcf 100644
--- a/images/breeze/output_release-management_add-back-references.svg
+++ b/images/breeze/output_release-management_add-back-references.svg
@@ -135,9 +135,9 @@
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">amazon</text><text class="breeze-release-management-add-back-references-r1" x="85.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="122" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="195.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="207.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-4)">beam</text><text class="breeze-release-management-add-back-references-r1" x="256.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="292.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="366" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="378.2" y="117.6" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-4)">cassandra</text><text class="breeze-release-management-add-back-references-r1" x="488" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="524.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="597.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="610" y="117.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-4)">drill</text><text class="breeze-release-management-add-back-references-r1" x="671" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="707.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="780.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="793" y="117.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-4)">druid</text><text class="breeze-release-management-add-back-references-r1" x="854" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="890.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="963.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="976" y="117.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-4)">flink</text><text class="breeze-release-management-add-back-references-r1" x="1037" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1073.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="1146.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="1159" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-4)">hdfs</text><text class="breeze-release-management-add-back-references-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">apache</text><text class="breeze-release-management-add-back-references-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">.</text><text class="breeze-release-management-add-back-references-r4" x="1329.8" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-4)">hive</text><text class="breeze-release-management-add-back-references-r1" x="1378.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-4)">
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="97.6" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">impala</text><text class="breeze-release-management-add-back-references-r1" x="170.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="207.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="280.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="292.8" y="142" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-5)">kafka</text><text class="breeze-release-management-add-back-references-r1" x="353.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="390.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="463.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="475.8" y="142" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-5)">kylin</text><text class="breeze-release-management-add-back-references-r1" x="536.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="573.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="646.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="658.8" y="142" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-5)">livy</text><text class="breeze-release-management-add-back-references-r1" x="707.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="744.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="817.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="829.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">pig</text><text class="breeze-release-management-add-back-references-r1" x="866.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="902.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="976" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="988.2" y="142" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-5)">pinot</text><text class="breeze-release-management-add-back-references-r1" x="1049.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1085.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="1159" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="1171.2" y="142" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-5)">spark</text><text class="breeze-release-management-add-back-references-r1" x="1232.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1268.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">apache</text><text class="breeze-release-management-add-back-references-r1" x="1342" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">.</text><text class="breeze-release-management-add-back-references-r4" x="1354.2" y="142" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-5)">sqoop</text><text class="breeze-release-management-add-back-references-r1" x="1415.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-5)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-5)">
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-6)">apprise</text><text class="breeze-release-management-add-back-references-r1" x="97.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="134.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">arangodb</text><text class="breeze-release-management-add-back-references-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="268.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-6)">asana</text><text class="breeze-release-management-add-back-references-r1" x="329.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="366" y="166.4" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-6)">atlassian</text><text class="breeze-release-management-add-back-references-r1" x="475.8" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">.</text><text class="breeze-release-management-add-back-references-r4" x="488" y="166.4" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-6)">jira</text><text class="breeze-release-management-add-back-references-r1" x="536.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="573.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">celery</text><text class="breeze-release-management-add-back-references-r1" x="646.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="683.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">cloudant</text><text class="breeze-release-management-add-back-references-r1" x="780.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="817.4" y="166.4" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-6)">cncf</text><text class="breeze-release-management-add-back-references-r1" x="866.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">.</text><text class="breeze-release-management-add-back-references-r4" x="878.4" y="166.4" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-6)">kubernetes</text><text class="breeze-release-management-add-back-references-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1037" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">cohere</text><text class="breeze-release-management-add-back-references-r1" x="1110.2" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1146.8" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">common</text><text class="breeze-release-management-add-back-references-r1" x="1220" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">.</text><text class="breeze-release-management-add-back-references-r4" x="1232.2" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-add-back-references-line-6)">io</text><text class="breeze-release-management-add-back-references-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">common</text><text class="breeze-release-management-add-back-references-r1" x="1366.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">.</text><text class="breeze-release-management-add-back-references-r4" x="1378.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">sql</text><text class="breeze-release-management-add-back-references-r1" x="1415.2" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-6)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-6)">
-</text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="190.8" textLength="146.4" clip-path="url(#breeze-release-management-add-back-references-line-7)">daskexecutor</text><text class="breeze-release-management-add-back-references-r1" x="158.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="195.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-7)">databricks</text><text class="breeze-release-management-add-back-references-r1" x="317.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="353.8" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-7)">datadog</text><text class="breeze-release-management-add-back-references-r1" x="439.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="475.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">dbt</text><text class="breeze-release-management-add-back-references-r1" x="512.4" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">.</text><text class="breeze-release-management-add-back-references-r4" x="524.6" y="190.8" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-7)">cloud</text><text class="breeze-release-management-add-back-references-r1" x="585.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="622.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">dingding</text><text class="breeze-release-management-add-back-references-r1" x="719.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="756.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-7)">discord</text><text class="breeze-release-management-add-back-references-r1" x="841.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="878.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">docker</text><text class="breeze-release-management-add-back-references-r1" x="951.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="988.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">elasticsearch</text><text class="breeze-release-management-add-back-references-r1" x="1146.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1183.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">exasol</text><text class="breeze-release-management-add-back-references-r1" x="1256.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1293.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">facebook</text><text class="breeze-release-management-add-back-references-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">
-</text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">ftp</text><text class="breeze-release-management-add-back-references-r1" x="48.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="85.4" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">github</text><text class="breeze-release-management-add-back-references-r1" x="158.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="195.2" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">google</text><text class="breeze-release-management-add-back-references-r1" x="268.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="305" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">grpc</text><text class="breeze-release-management-add-back-references-r1" x="353.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="390.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">hashicorp</text><text class="breeze-release-management-add-back-references-r1" x="500.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="536.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">http</text><text class="breeze-release-management-add-back-references-r1" x="585.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="622.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">imap</text><text class="breeze-release-management-add-back-references-r1" x="671" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="707.6" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">influxdb</text><text class="breeze-release-management-add-back-references-r1" x="805.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="841.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">jdbc</text><text class="breeze-release-management-add-back-references-r1" x="890.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="927.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-8)">jenkins</text><text class="breeze-release-management-add-back-references-r1" x="1012.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1049.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="1159" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">.</text><text class="breeze-release-management-add-back-references-r4" x="1171.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-8)">azure</text><text class="breeze-release-management-add-back-references-r1" x="1232.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1268.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="1378.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">.</text><text class="breeze-release-management-add-back-references-r4" x="1390.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-8)">mssql</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">
-</text><text class="breeze-release-management-add-back-references-r1" x="12.2" y="239.6" textLength="24.4" clip-path="url(#breeze-release-management-add-back-references-line-9)">|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="36.6" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="146.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">.</text><text class="breeze-release-management-add-back-references-r4" x="158.6" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">psrp</text><text class="breeze-release-management-add-back-references-r1" x="207.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="244" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="353.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">.</text><text class="breeze-release-management-add-back-references-r4" x="366" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">winrm</text><text class="breeze-release-management-add-back-references-r1" x="427" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="463.6" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">mongo</text><text class="breeze-release-management-add-back-references-r1" x="524.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="561.2" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">mysql</text><text class="breeze-release-management-add-back-references-r1" x="622.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="658.8" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">neo4j</text><text class="breeze-release-management-add-back-references-r1" x="719.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="756.4" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">odbc</text><text class="breeze-release-management-add-back-references-r1" x="805.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="841.8" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">openai</text><text class="breeze-release-management-add-back-references-r1" x="915" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="951.6" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">openfaas</text><text class="breeze-release-management-add-back-references-r1" x="1049.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1085.8" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">openlineage</text><text class="breeze-release-management-add-back-references-r1" x="1220" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1256.6" y="239.6" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-9)">opensearch</text><text class="breeze-release-management-add-back-references-r1" x="1378.6" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">
+</text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-7)">databricks</text><text class="breeze-release-management-add-back-references-r1" x="134.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="170.8" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-7)">datadog</text><text class="breeze-release-management-add-back-references-r1" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">dbt</text><text class="breeze-release-management-add-back-references-r1" x="329.4" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">.</text><text class="breeze-release-management-add-back-references-r4" x="341.6" y="190.8" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-7)">cloud</text><text class="breeze-release-management-add-back-references-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="439.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">dingding</text><text class="breeze-release-management-add-back-references-r1" x="536.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="573.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-7)">discord</text><text class="breeze-release-management-add-back-references-r1" x="658.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="695.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">docker</text><text class="breeze-release-management-add-back-references-r1" x="768.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="805.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">elasticsearch</text><text class="breeze-release-management-add-back-references-r1" x="963.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1000.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">exasol</text><text class="breeze-release-management-add-back-references-r1" x="1073.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1110.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">facebook</text><text class="breeze-release-management-add-back-references-r1" x="1207.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">ftp</text><text class="breeze-release-management-add-back-references-r1" x="1281" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1317.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">github</text><text class="breeze-release-management-add-back-references-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-7)">
+</text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">google</text><text class="breeze-release-management-add-back-references-r1" x="85.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="122" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">grpc</text><text class="breeze-release-management-add-back-references-r1" x="170.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="207.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">hashicorp</text><text class="breeze-release-management-add-back-references-r1" x="317.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="353.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">http</text><text class="breeze-release-management-add-back-references-r1" x="402.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="439.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">imap</text><text class="breeze-release-management-add-back-references-r1" x="488" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="524.6" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">influxdb</text><text class="breeze-release-management-add-back-references-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="658.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">jdbc</text><text class="breeze-release-management-add-back-references-r1" x="707.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="744.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-8)">jenkins</text><text class="breeze-release-management-add-back-references-r1" x="829.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="866.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">.</text><text class="breeze-release-management-add-back-references-r4" x="988.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-8)">azure</text><text class="breeze-release-management-add-back-references-r1" x="1049.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1085.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-8)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="1195.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">.</text><text class="breeze-release-management-add-back-references-r4" x="1207.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-8)">mssql</text><text class="breeze-release-management-add-back-references-r1" x="1268.8" y="215.2" textLength="183" clip-path="url(#breeze-release-management-add-back-references-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-8)">
+</text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="122" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">.</text><text class="breeze-release-management-add-back-references-r4" x="134.2" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">psrp</text><text class="breeze-release-management-add-back-references-r1" x="183" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="219.6" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">microsoft</text><text class="breeze-release-management-add-back-references-r1" x="329.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">.</text><text class="breeze-release-management-add-back-references-r4" x="341.6" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">winrm</text><text class="breeze-release-management-add-back-references-r1" x="402.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="439.2" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">mongo</text><text class="breeze-release-management-add-back-references-r1" x="500.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="536.8" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">mysql</text><text class="breeze-release-management-add-back-references-r1" x="597.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="634.4" y="239.6" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-9)">neo4j</text><text class="breeze-release-management-add-back-references-r1" x="695.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="732" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-9)">odbc</text><text class="breeze-release-management-add-back-references-r1" x="780.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="817.4" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">openai</text><text class="breeze-release-management-add-back-references-r1" x="890.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="927.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">openfaas</text><text class="breeze-release-management-add-back-references-r1" x="1024.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1061.4" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">openlineage</text><text class="breeze-release-management-add-back-references-r1" x="1195.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1232.2" y="239.6" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-9)">opensearch</text><text class="breeze-release-management-add-back-references-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-9)">
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">opsgenie</text><text class="breeze-release-management-add-back-references-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-10)">oracle</text><text class="breeze-release-management-add-back-references-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="256.2" y="264" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-10)">pagerduty</text><text class="breeze-release-management-add-back-references-r1" x="366" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="402.6" y="264" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-10)">papermill</text><text class="breeze-release-management-add-back-references-r1" x="512.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="549" y="264" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">pgvector</text><text class="breeze-release-management-add-back-references-r1" x="646.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="683.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">pinecone</text><text class="breeze-release-management-add-back-references-r1" x="780.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="817.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-10)">plexus</text><text class="breeze-release-management-add-back-references-r1" x="890.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="927.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">postgres</text><text class="breeze-release-management-add-back-references-r1" x="1024.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1061.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-10)">presto</text><text class="breeze-release-management-add-back-references-r1" x="1134.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1171.2" y="264" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-10)">redis</text><text class="breeze-release-management-add-back-references-r1" x="1232.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1268.8" y="264" textLength="122" clip-path="url(#breeze-release-management-add-back-references-line-10)">salesforce</text><text class="breeze-release-management-add-back-references-r1" x="1390.8" y="264" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-10)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-10)">
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="288.4" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-11)">samba</text><text class="breeze-release-management-add-back-references-r1" x="73.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="109.8" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-11)">segment</text><text class="breeze-release-management-add-back-references-r1" x="195.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="231.8" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">sendgrid</text><text class="breeze-release-management-add-back-references-r1" x="329.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="366" y="288.4" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-11)">sftp</text><text class="breeze-release-management-add-back-references-r1" x="414.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="451.4" y="288.4" textLength="134.2" clip-path="url(#breeze-release-management-add-back-references-line-11)">singularity</text><text class="breeze-release-management-add-back-references-r1" x="585.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="622.2" y="288.4" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-11)">slack</text><text class="breeze-release-management-add-back-references-r1" x="683.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="719.8" y="288.4" textLength="48.8" clip-path="url(#breeze-release-management-add-back-references-line-11)">smtp</text><text class="breeze-release-management-add-back-references-r1" x="768.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="805.2" y="288.4" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-11)">snowflake</text><text class="breeze-release-management-add-back-references-r1" x="915" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="951.6" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-11)">sqlite</text><text class="breeze-release-management-add-back-references-r1" x="1024.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1061.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">ssh</text><text class="breeze-release-management-add-back-references-r1" x="1098" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1134.6" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-11)">tableau</text><text class="breeze-release-management-add-back-references-r1" x="1220" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="1256.6" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-11)">tabular</text><text class="breeze-release-management-add-back-references-r1" x="1342" y="288.4" textLength="109.8" clip-path="url(#breeze-release-management-add-back-references-line-11)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-11)">
 </text><text class="breeze-release-management-add-back-references-r4" x="12.2" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">telegram</text><text class="breeze-release-management-add-back-references-r1" x="109.8" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="146.4" y="312.8" textLength="61" clip-path="url(#breeze-release-management-add-back-references-line-12)">trino</text><text class="breeze-release-management-add-back-references-r1" x="207.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="244" y="312.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-12)">vertica</text><text class="breeze-release-management-add-back-references-r1" x="329.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="366" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">weaviate</text><text class="breeze-release-management-add-back-references-r1" x="463.6" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="500.2" y="312.8" textLength="73.2" clip-path="url(#breeze-release-management-add-back-references-line-12)">yandex</text><text class="breeze-release-management-add-back-references-r1" x="573.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-add-back-references-line-12)">&#160;|&#160;</text><text class="breeze-release-management-add-back-references-r4" x="610" y="312.8" textLength="85.4" clip-path="url(#breeze-release-management-add-back-references-line-12)">zendesk</text><text class="breeze-release-management-add-back-references-r1" x="695.4" y="312.8" textLength="756.4" clip-path="url(#breeze-release-management-add-back-references-line-12)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-add-back-references-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-add-back-references-line-12)">
diff --git a/images/breeze/output_release-management_add-back-references.txt b/images/breeze/output_release-management_add-back-references.txt
index 320feca995d8f..cb51800d8d48c 100644
--- a/images/breeze/output_release-management_add-back-references.txt
+++ b/images/breeze/output_release-management_add-back-references.txt
@@ -1 +1 @@
-c4dbbc3c8c6454d7854e6b24d334bfbf
+519e8c43e0da3ab8a53c7c085d45b3e6
diff --git a/images/breeze/output_release-management_generate-constraints.svg b/images/breeze/output_release-management_generate-constraints.svg
index 9801441959831..0fd9c471c2201 100644
--- a/images/breeze/output_release-management_generate-constraints.svg
+++ b/images/breeze/output_release-management_generate-constraints.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 855.1999999999999" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 952.8" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-generate-constraints-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="804.1999999999999" />
+      <rect x="0" y="0" width="1463.0" height="901.8" />
     </clipPath>
     <clipPath id="breeze-release-management-generate-constraints-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -141,9 +141,21 @@
 <clipPath id="breeze-release-management-generate-constraints-line-31">
     <rect x="0" y="757.9" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-release-management-generate-constraints-line-32">
+    <rect x="0" y="782.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-generate-constraints-line-33">
+    <rect x="0" y="806.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-generate-constraints-line-34">
+    <rect x="0" y="831.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-generate-constraints-line-35">
+    <rect x="0" y="855.5" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="853.2" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;generate-constraints</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="950.8" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;generate-constraints</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -168,24 +180,28 @@
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-12)">-airflow</text><text class="breeze-release-management-generate-constraints-r4" x="134.2" y="312.8" textLength="207.4" clip-path="url(#breeze-release-management-generate-constraints-line-12)">-constraints-mode</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="312.8" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">Mode&#160;of&#160;constraints&#160;for&#160;CI&#160;image&#160;building.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-12)">
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="337.2" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-13)">
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">│</text><text class="breeze-release-management-generate-constraints-r5" x="414.8" y="361.6" textLength="866.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-14)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="386" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-debug</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="386" textLength="878.4" clip-path="url(#breeze-release-management-generate-constraints-line-15)">Drop&#160;user&#160;in&#160;shell&#160;instead&#160;of&#160;running&#160;the&#160;command.&#160;Useful&#160;for&#160;debugging.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="410.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-16)">-github</text><text class="breeze-release-management-generate-constraints-r4" x="122" y="410.4" textLength="134.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">-repository</text><text class="breeze-release-management-generate-constraints-r7" x="366" y="410.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-16)">-g</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="410.4" textLength="585.6" clip-path="url(#breeze-release-management-generate-constraints-line-16)">GitHub&#160;repository&#160;used&#160;to&#160;pull,&#160;push&#160;run&#160;images.</text><text class="breeze-release-management-generate-constraints-r6" x="1012.6" y="410.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">(TEXT)</text><text class="breeze-release-management-generate-constraints-r5" x="1098" y="410.4" textLength="305" clip-path="url(#breeze-release-management-generate-constraints-line-16)">[default:&#160;apache/airflow]</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="434.8" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="459.2" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-18)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="459.2" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-18)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="244" y="459.2" textLength="1195.6" clip-path="url(#breeze-release-management-generate-constraints-line-18)">──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-generate-constraints-r5" x="1439.6" y="459.2" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-18)">─╮</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="483.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-run</text><text class="breeze-release-management-generate-constraints-r4" x="85.4" y="483.6" textLength="146.4" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-in-parallel</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="483.6" textLength="854" clip-path="url(#breeze-release-management-generate-constraints-line-19)">Run&#160;the&#160;operation&#160;in&#160;parallel&#160;on&#160;all&#160;or&#160;selected&#160;subset&#160;of&#160;parameters.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="508" textLength="146.4" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-parallelism</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="508" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-20)">Maximum&#160;number&#160;of&#160;processes&#160;to&#160;use&#160;while&#160;running&#160;the&#160;operation&#160;in&#160;parallel.</text><text class="breeze-release-management-generate-constraints-r6" x="1207.8" y="508" textLength="183" clip-path="url(#breeze-release-management-generate-constraints-line-20)">(INTEGER&#160;RANGE)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="532.4" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-21)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="556.8" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-22)">-python</text><text class="breeze-release-management-generate-constraints-r4" x="122" y="556.8" textLength="109.8" clip-path="url(#breeze-release-management-generate-constraints-line-22)">-versions</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="556.8" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-22)">Space&#160;separated&#160;list&#160;of&#160;python&#160;versions&#160;used&#160;for&#160;build&#160;with&#160;multiple&#160;versions.</text><text class="breeze-release-management-generate-constraints-r6" x="1244.4" y="556.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">(TEXT)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="581.2" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-23)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="605.6" textLength="61" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-skip</text><text class="breeze-release-management-generate-constraints-r4" x="97.6" y="605.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-cleanup</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="605.6" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-24)">Skip&#160;cleanup&#160;of&#160;temporary&#160;files&#160;created&#160;during&#160;parallel&#160;run.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="630" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">-debug</text><text class="breeze-release-management-generate-constraints-r4" x="109.8" y="630" textLength="122" clip-path="url(#breeze-release-management-generate-constraints-line-25)">-resources</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="630" textLength="768.6" clip-path="url(#breeze-release-management-generate-constraints-line-25)">Whether&#160;to&#160;show&#160;resource&#160;information&#160;while&#160;running&#160;in&#160;parallel.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-27)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="678.8" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="678.8" textLength="1220" clip-path="url(#breeze-release-management-generate-constraints-line-27)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-generate-constraints-r5" x="1439.6" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-27)">─╮</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-verbose</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-v</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="703.2" textLength="585.6" clip-path="url(#breeze-release-management-generate-constraints-line-28)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="727.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-dry</text><text class="breeze-release-management-generate-constraints-r4" x="85.4" y="727.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-run</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="727.6" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-D</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="727.6" textLength="719.8" clip-path="url(#breeze-release-management-generate-constraints-line-29)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="752" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-30)">-answer</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="752" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-30)">-a</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="752" textLength="317.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">Force&#160;answer&#160;to&#160;questions.</text><text class="breeze-release-management-generate-constraints-r6" x="536.8" y="752" textLength="353.8" clip-path="url(#breeze-release-management-generate-constraints-line-30)">(y&#160;|&#160;n&#160;|&#160;q&#160;|&#160;yes&#160;|&#160;no&#160;|&#160;quit)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="776.4" textLength="61" clip-path="url(#breeze-release-management-generate-constraints-line-31)">-help</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">-h</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="776.4" textLength="329.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="386" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-chicken</text><text class="breeze-release-management-generate-constraints-r4" x="134.2" y="386" textLength="170.8" clip-path="url(#breeze-release-management-generate-constraints-line-15)">-egg-providers</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="386" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-15)">List&#160;of&#160;chicken-egg&#160;provider&#160;packages&#160;-&#160;those&#160;that&#160;have&#160;airflow_version&#160;&gt;=&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-15)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="410.4" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-16)">current_version&#160;and&#160;should&#160;be&#160;installed&#160;in&#160;CI&#160;from&#160;locally&#160;built&#160;packages&#160;with&#160;&gt;=&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="434.8" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-17)">current_version.dev0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="459.2" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-18)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="483.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-debug</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="483.6" textLength="878.4" clip-path="url(#breeze-release-management-generate-constraints-line-19)">Drop&#160;user&#160;in&#160;shell&#160;instead&#160;of&#160;running&#160;the&#160;command.&#160;Useful&#160;for&#160;debugging.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="508" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-github</text><text class="breeze-release-management-generate-constraints-r4" x="122" y="508" textLength="134.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-repository</text><text class="breeze-release-management-generate-constraints-r7" x="366" y="508" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-g</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="508" textLength="585.6" clip-path="url(#breeze-release-management-generate-constraints-line-20)">GitHub&#160;repository&#160;used&#160;to&#160;pull,&#160;push&#160;run&#160;images.</text><text class="breeze-release-management-generate-constraints-r6" x="1012.6" y="508" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">(TEXT)</text><text class="breeze-release-management-generate-constraints-r5" x="1098" y="508" textLength="305" clip-path="url(#breeze-release-management-generate-constraints-line-20)">[default:&#160;apache/airflow]</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-22)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="556.8" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-22)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="244" y="556.8" textLength="1195.6" clip-path="url(#breeze-release-management-generate-constraints-line-22)">──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-generate-constraints-r5" x="1439.6" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-22)">─╮</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="581.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-run</text><text class="breeze-release-management-generate-constraints-r4" x="85.4" y="581.2" textLength="146.4" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-in-parallel</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="581.2" textLength="854" clip-path="url(#breeze-release-management-generate-constraints-line-23)">Run&#160;the&#160;operation&#160;in&#160;parallel&#160;on&#160;all&#160;or&#160;selected&#160;subset&#160;of&#160;parameters.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="605.6" textLength="146.4" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-parallelism</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="605.6" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-24)">Maximum&#160;number&#160;of&#160;processes&#160;to&#160;use&#160;while&#160;running&#160;the&#160;operation&#160;in&#160;parallel.</text><text class="breeze-release-management-generate-constraints-r6" x="1207.8" y="605.6" textLength="183" clip-path="url(#breeze-release-management-generate-constraints-line-24)">(INTEGER&#160;RANGE)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="630" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-25)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-26)">-python</text><text class="breeze-release-management-generate-constraints-r4" x="122" y="654.4" textLength="109.8" clip-path="url(#breeze-release-management-generate-constraints-line-26)">-versions</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="654.4" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-26)">Space&#160;separated&#160;list&#160;of&#160;python&#160;versions&#160;used&#160;for&#160;build&#160;with&#160;multiple&#160;versions.</text><text class="breeze-release-management-generate-constraints-r6" x="1244.4" y="654.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">(TEXT)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="678.8" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-27)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="61" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-skip</text><text class="breeze-release-management-generate-constraints-r4" x="97.6" y="703.2" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-cleanup</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="703.2" textLength="732" clip-path="url(#breeze-release-management-generate-constraints-line-28)">Skip&#160;cleanup&#160;of&#160;temporary&#160;files&#160;created&#160;during&#160;parallel&#160;run.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="727.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-debug</text><text class="breeze-release-management-generate-constraints-r4" x="109.8" y="727.6" textLength="122" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-resources</text><text class="breeze-release-management-generate-constraints-r1" x="280.6" y="727.6" textLength="768.6" clip-path="url(#breeze-release-management-generate-constraints-line-29)">Whether&#160;to&#160;show&#160;resource&#160;information&#160;while&#160;running&#160;in&#160;parallel.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="776.4" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="776.4" textLength="1220" clip-path="url(#breeze-release-management-generate-constraints-line-31)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-generate-constraints-r5" x="1439.6" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">─╮</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-verbose</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="800.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-v</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="800.8" textLength="585.6" clip-path="url(#breeze-release-management-generate-constraints-line-32)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="825.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-dry</text><text class="breeze-release-management-generate-constraints-r4" x="85.4" y="825.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-run</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="825.2" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-D</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="825.2" textLength="719.8" clip-path="url(#breeze-release-management-generate-constraints-line-33)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="849.6" textLength="85.4" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-answer</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="849.6" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-a</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="849.6" textLength="317.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">Force&#160;answer&#160;to&#160;questions.</text><text class="breeze-release-management-generate-constraints-r6" x="536.8" y="849.6" textLength="353.8" clip-path="url(#breeze-release-management-generate-constraints-line-34)">(y&#160;|&#160;n&#160;|&#160;q&#160;|&#160;yes&#160;|&#160;no&#160;|&#160;quit)</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="874" textLength="61" clip-path="url(#breeze-release-management-generate-constraints-line-35)">-help</text><text class="breeze-release-management-generate-constraints-r7" x="158.6" y="874" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-35)">-h</text><text class="breeze-release-management-generate-constraints-r1" x="207.4" y="874" textLength="329.4" clip-path="url(#breeze-release-management-generate-constraints-line-35)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-release-management-generate-constraints-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">│</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-36)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_generate-constraints.txt b/images/breeze/output_release-management_generate-constraints.txt
index c714ab26a1298..4ac25d8890ab7 100644
--- a/images/breeze/output_release-management_generate-constraints.txt
+++ b/images/breeze/output_release-management_generate-constraints.txt
@@ -1 +1 @@
-01aef235b11e59ed7f10c970a5cdaba7
+a2ba8a1912a7e9eca347cc616e717dba
diff --git a/images/breeze/output_release-management_generate-issue-content-providers.svg b/images/breeze/output_release-management_generate-issue-content-providers.svg
index 82bdd1415ab52..7d3275d699e8b 100644
--- a/images/breeze/output_release-management_generate-issue-content-providers.svg
+++ b/images/breeze/output_release-management_generate-issue-content-providers.svg
@@ -144,9 +144,9 @@
 </text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">[</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">OPTIONS</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="109.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">]&#160;[</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="146.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">airbyte</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="231.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="268.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">alibaba</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="353.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="390.4" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">amazon</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="463.6" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="500.2" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="573.4" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="585.6" y="93.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">beam</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="634.4" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="671" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="744.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="756.4" y="93.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">cassandra</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="866.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="902.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="988.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">drill</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1049.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1085.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1159" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1171.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">druid</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1232.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1268.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1342" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1354.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">flink</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1415.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">
 </text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="97.6" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">hdfs</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="146.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="183" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="256.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="268.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">hive</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="317.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="353.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="427" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="439.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">impala</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="512.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="549" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="622.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="634.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">kafka</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="695.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="732" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="805.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="817.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">kylin</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="878.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="915" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="988.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1000.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">livy</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1049.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1085.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1159" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1171.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">pig</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1329.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">pinot</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1390.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">
 </text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="97.6" y="142" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">spark</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="158.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="195.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">apache</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="268.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="280.6" y="142" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">sqoop</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="341.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="378.2" y="142" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">apprise</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="463.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="500.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">arangodb</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="597.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="634.4" y="142" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">asana</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="695.4" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="732" y="142" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">atlassian</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="841.8" y="142" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="854" y="142" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">jira</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="902.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="939.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">celery</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1012.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1049.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">cloudant</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1146.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1183.4" y="142" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">cncf</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1232.2" y="142" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1244.4" y="142" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">kubernetes</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1366.4" y="142" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-5)">
-</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">cohere</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">common</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">io</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">common</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">sql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="427" y="166.4" textLength="146.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">daskexecutor</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="573.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="610" y="166.4" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">databricks</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="732" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="768.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">datadog</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="854" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="890.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">dbt</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="927.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="939.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">cloud</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1037" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">dingding</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1134.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1171.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">discord</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">docker</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1366.4" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">
-</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">elasticsearch</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="170.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="207.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">exasol</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="280.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="317.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">facebook</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="414.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="451.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">ftp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="488" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="524.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">github</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="634.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">google</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="707.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="744.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">grpc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="793" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="829.6" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">hashicorp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="939.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="976" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">http</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1024.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1061.4" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">imap</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1110.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1146.8" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">influxdb</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1281" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">jdbc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1329.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1366.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">jenkins</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">
-</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="215.2" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="36.6" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="146.4" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="158.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">azure</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="219.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="256.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="366" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="378.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mssql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="439.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="475.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="585.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="597.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">psrp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="646.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="683.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="793" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="805.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">winrm</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="866.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="902.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mongo</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="963.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1000.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mysql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1061.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1098" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">neo4j</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1159" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1195.6" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">odbc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1244.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1281" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">openai</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1354.2" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">cohere</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">common</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">io</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">common</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">sql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="427" y="166.4" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">databricks</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="549" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="585.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">datadog</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="671" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="707.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">dbt</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="744.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="756.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">cloud</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="817.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="854" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">dingding</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="951.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="988.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">discord</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1073.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1110.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">docker</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1183.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1220" y="166.4" textLength="158.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">elasticsearch</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1378.6" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-6)">
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">exasol</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="122" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">facebook</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="219.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">ftp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="329.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">github</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="439.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">google</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="512.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="549" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">grpc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="634.4" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">hashicorp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="744.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="780.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">http</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="829.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="866.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">imap</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="915" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="951.6" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">influxdb</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1049.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1085.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">jdbc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1134.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1171.2" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">jenkins</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1256.6" y="190.8" textLength="195.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-7)">
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="122" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="134.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">azure</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="195.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="231.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="341.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="353.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mssql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="414.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="451.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="561.2" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="573.4" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">psrp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="658.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">microsoft</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="768.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">.</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="780.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">winrm</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="841.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="878.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mongo</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="939.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="976" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">mysql</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1037" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1073.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">neo4j</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1134.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1171.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">odbc</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1220" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1256.6" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">openai</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1329.8" y="215.2" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-8)">
 </text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">openfaas</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="109.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="146.4" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">openlineage</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="280.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="317.2" y="239.6" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">opensearch</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="439.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="475.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">opsgenie</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="573.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="610" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">oracle</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="683.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="719.8" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">pagerduty</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="829.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="866.2" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">papermill</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="976" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1012.6" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">pgvector</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1110.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1146.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">pinecone</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1244.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1281" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">plexus</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-9)">
 </text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">postgres</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">presto</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="256.2" y="264" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">redis</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="317.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="353.8" y="264" textLength="122" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">salesforce</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="475.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="512.4" y="264" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">samba</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="573.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="610" y="264" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">segment</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="695.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="732" y="264" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">sendgrid</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="829.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="866.2" y="264" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">sftp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="915" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="951.6" y="264" textLength="134.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">singularity</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1085.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1122.4" y="264" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">slack</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1183.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1220" y="264" textLength="48.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">smtp</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1268.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1305.4" y="264" textLength="109.8" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">snowflake</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1415.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-10)">
 </text><text class="breeze-release-management-generate-issue-content-providers-r4" x="12.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">sqlite</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="85.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="122" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">ssh</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="158.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="195.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">tableau</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="280.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="317.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">tabular</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="402.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="439.2" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">telegram</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="536.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="573.4" y="288.4" textLength="61" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">trino</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="634.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="671" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">vertica</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="756.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="793" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">weaviate</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="890.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="927.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">yandex</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1000.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">&#160;|&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="1037" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">zendesk</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1122.4" y="288.4" textLength="329.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-11)">
diff --git a/images/breeze/output_release-management_generate-issue-content-providers.txt b/images/breeze/output_release-management_generate-issue-content-providers.txt
index 8fa8593198d2d..c58ca6264595b 100644
--- a/images/breeze/output_release-management_generate-issue-content-providers.txt
+++ b/images/breeze/output_release-management_generate-issue-content-providers.txt
@@ -1 +1 @@
-1911db9825e2e2841b60ca3107b8750c
+877aaa8edeed6d6ff399a23e196cc793
diff --git a/images/breeze/output_release-management_prepare-provider-documentation.svg b/images/breeze/output_release-management_prepare-provider-documentation.svg
index 387d280e19620..af313a2914928 100644
--- a/images/breeze/output_release-management_prepare-provider-documentation.svg
+++ b/images/breeze/output_release-management_prepare-provider-documentation.svg
@@ -171,9 +171,9 @@
 </text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">[</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">OPTIONS</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="109.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">]&#160;[</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="146.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">airbyte</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="231.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="268.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">alibaba</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="353.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="390.4" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">amazon</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="463.6" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="500.2" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="573.4" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="585.6" y="93.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">beam</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="634.4" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="671" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="744.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="756.4" y="93.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">cassandra</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="866.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="902.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="988.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">drill</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1049.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1085.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1159" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1171.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">druid</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1232.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1268.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1342" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1354.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">flink</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1415.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">
 </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="97.6" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">hdfs</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="146.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="183" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="256.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="268.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">hive</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="317.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="353.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="427" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="439.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">impala</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="512.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="549" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="622.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="634.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">kafka</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="695.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="732" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="805.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="817.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">kylin</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="878.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="915" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="988.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1000.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">livy</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1049.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1085.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1159" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1171.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">pig</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1329.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">pinot</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1390.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">
 </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="97.6" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">spark</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="158.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="195.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">apache</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="268.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="280.6" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">sqoop</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="341.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="378.2" y="142" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">apprise</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="463.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="500.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">arangodb</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="597.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="634.4" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">asana</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="695.4" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="732" y="142" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">atlassian</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="841.8" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="854" y="142" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">jira</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="902.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="939.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">celery</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1012.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1049.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">cloudant</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1146.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1183.4" y="142" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">cncf</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1232.2" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1244.4" y="142" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">kubernetes</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1366.4" y="142" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-5)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">cohere</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">common</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">io</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">common</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">sql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="427" y="166.4" textLength="146.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">daskexecutor</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="573.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="610" y="166.4" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">databricks</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="732" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="768.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">datadog</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="854" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="890.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">dbt</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="927.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="939.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">cloud</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1037" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">dingding</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1134.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1171.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">discord</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">docker</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1366.4" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">elasticsearch</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="170.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="207.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">exasol</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="280.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="317.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">facebook</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="414.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="451.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">ftp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="488" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="524.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">github</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="634.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">google</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="707.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="744.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">grpc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="793" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="829.6" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">hashicorp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="939.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="976" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">http</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1024.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1061.4" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">imap</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1110.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1146.8" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">influxdb</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1281" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">jdbc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1329.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1366.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">jenkins</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="215.2" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="146.4" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="158.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">azure</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="219.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="256.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="366" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="378.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mssql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="439.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="475.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="585.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="597.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">psrp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="646.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="683.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="793" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="805.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">winrm</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="866.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="902.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mongo</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="963.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1000.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mysql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1061.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1098" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">neo4j</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1159" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1195.6" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">odbc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1244.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1281" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">openai</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1354.2" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">cohere</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">common</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">io</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">common</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">sql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="427" y="166.4" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">databricks</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="549" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="585.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">datadog</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="671" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="707.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">dbt</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="744.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="756.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">cloud</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="817.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="854" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">dingding</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="951.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="988.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">discord</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1073.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1110.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">docker</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1183.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1220" y="166.4" textLength="158.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">elasticsearch</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1378.6" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-6)">
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">exasol</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="122" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">facebook</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="219.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">ftp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="329.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">github</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="439.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">google</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="512.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="549" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">grpc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="634.4" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">hashicorp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="744.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="780.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">http</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="829.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="866.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">imap</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="915" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="951.6" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">influxdb</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1049.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1085.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">jdbc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1134.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1171.2" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">jenkins</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1256.6" y="190.8" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-7)">
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="122" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="134.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">azure</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="195.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="231.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="341.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="353.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mssql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="414.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="451.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="561.2" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="573.4" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">psrp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="658.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="768.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">.</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="780.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">winrm</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="841.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="878.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mongo</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="939.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="976" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">mysql</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1037" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1073.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">neo4j</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1134.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1171.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">odbc</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1220" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1256.6" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">openai</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1329.8" y="215.2" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-8)">
 </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">openfaas</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="109.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="146.4" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">openlineage</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="280.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="317.2" y="239.6" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">opensearch</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="439.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="475.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">opsgenie</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="573.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="610" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">oracle</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="683.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="719.8" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">pagerduty</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="829.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="866.2" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">papermill</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="976" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1012.6" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">pgvector</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1110.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1146.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">pinecone</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1244.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1281" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">plexus</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-9)">
 </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">postgres</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">presto</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="256.2" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">redis</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="317.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="353.8" y="264" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">salesforce</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="475.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="512.4" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">samba</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="573.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="610" y="264" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">segment</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="695.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="732" y="264" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">sendgrid</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="829.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="866.2" y="264" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">sftp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="915" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="951.6" y="264" textLength="134.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">singularity</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1085.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1122.4" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">slack</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1183.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1220" y="264" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">smtp</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1268.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1305.4" y="264" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">snowflake</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1415.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-10)">
 </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="12.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">sqlite</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="85.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="122" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">ssh</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="158.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="195.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">tableau</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="280.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="317.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">tabular</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="402.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="439.2" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">telegram</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="536.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="573.4" y="288.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">trino</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="634.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="671" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">vertica</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="756.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="793" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">weaviate</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="890.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="927.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">yandex</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1000.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="1037" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">zendesk</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1122.4" y="288.4" textLength="329.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-11)">
diff --git a/images/breeze/output_release-management_prepare-provider-documentation.txt b/images/breeze/output_release-management_prepare-provider-documentation.txt
index 2c5d11739fa85..13cd24b585851 100644
--- a/images/breeze/output_release-management_prepare-provider-documentation.txt
+++ b/images/breeze/output_release-management_prepare-provider-documentation.txt
@@ -1 +1 @@
-f759632b06268bcce49eb96cf22b02aa
+77ba80f1bfba0e8a172acafe776b704b
diff --git a/images/breeze/output_release-management_prepare-provider-packages.svg b/images/breeze/output_release-management_prepare-provider-packages.svg
index 9bdb76be04754..79ee0ea6ce93c 100644
--- a/images/breeze/output_release-management_prepare-provider-packages.svg
+++ b/images/breeze/output_release-management_prepare-provider-packages.svg
@@ -156,9 +156,9 @@
 </text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">[</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">OPTIONS</text><text class="breeze-release-management-prepare-provider-packages-r1" x="109.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">]&#160;[</text><text class="breeze-release-management-prepare-provider-packages-r4" x="146.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">airbyte</text><text class="breeze-release-management-prepare-provider-packages-r1" x="231.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="268.4" y="93.2" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">alibaba</text><text class="breeze-release-management-prepare-provider-packages-r1" x="353.8" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="390.4" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">amazon</text><text class="breeze-release-management-prepare-provider-packages-r1" x="463.6" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="500.2" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="573.4" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="585.6" y="93.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">beam</text><text class="breeze-release-management-prepare-provider-packages-r1" x="634.4" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="671" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="744.2" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="756.4" y="93.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">cassandra</text><text class="breeze-release-management-prepare-provider-packages-r1" x="866.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="902.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="988.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">drill</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1049.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1085.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1159" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1171.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">druid</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1232.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1268.8" y="93.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1342" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1354.2" y="93.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">flink</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1415.2" y="93.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">
 </text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="97.6" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">hdfs</text><text class="breeze-release-management-prepare-provider-packages-r1" x="146.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="183" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="256.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="268.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">hive</text><text class="breeze-release-management-prepare-provider-packages-r1" x="317.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="353.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="427" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="439.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">impala</text><text class="breeze-release-management-prepare-provider-packages-r1" x="512.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="549" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="622.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="634.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">kafka</text><text class="breeze-release-management-prepare-provider-packages-r1" x="695.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="732" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="805.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="817.4" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">kylin</text><text class="breeze-release-management-prepare-provider-packages-r1" x="878.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="915" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="988.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1000.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">livy</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1049.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1085.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1159" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1171.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">pig</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1329.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">pinot</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1390.8" y="117.6" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">
 </text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="97.6" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">spark</text><text class="breeze-release-management-prepare-provider-packages-r1" x="158.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="195.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">apache</text><text class="breeze-release-management-prepare-provider-packages-r1" x="268.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="280.6" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">sqoop</text><text class="breeze-release-management-prepare-provider-packages-r1" x="341.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="378.2" y="142" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">apprise</text><text class="breeze-release-management-prepare-provider-packages-r1" x="463.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="500.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">arangodb</text><text class="breeze-release-management-prepare-provider-packages-r1" x="597.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="634.4" y="142" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">asana</text><text class="breeze-release-management-prepare-provider-packages-r1" x="695.4" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="732" y="142" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">atlassian</text><text class="breeze-release-management-prepare-provider-packages-r1" x="841.8" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="854" y="142" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">jira</text><text class="breeze-release-management-prepare-provider-packages-r1" x="902.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="939.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">celery</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1012.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1049.2" y="142" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">cloudant</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1146.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1183.4" y="142" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">cncf</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1232.2" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1244.4" y="142" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">kubernetes</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1366.4" y="142" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-5)">
-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">cohere</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">common</text><text class="breeze-release-management-prepare-provider-packages-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">io</text><text class="breeze-release-management-prepare-provider-packages-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">common</text><text class="breeze-release-management-prepare-provider-packages-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">sql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="427" y="166.4" textLength="146.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">daskexecutor</text><text class="breeze-release-management-prepare-provider-packages-r1" x="573.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="610" y="166.4" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">databricks</text><text class="breeze-release-management-prepare-provider-packages-r1" x="732" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="768.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">datadog</text><text class="breeze-release-management-prepare-provider-packages-r1" x="854" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="890.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">dbt</text><text class="breeze-release-management-prepare-provider-packages-r1" x="927.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="939.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">cloud</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1037" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">dingding</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1134.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1171.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">discord</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">docker</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1366.4" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">
-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">elasticsearch</text><text class="breeze-release-management-prepare-provider-packages-r1" x="170.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="207.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">exasol</text><text class="breeze-release-management-prepare-provider-packages-r1" x="280.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="317.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">facebook</text><text class="breeze-release-management-prepare-provider-packages-r1" x="414.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="451.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">ftp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="488" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="524.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">github</text><text class="breeze-release-management-prepare-provider-packages-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="634.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">google</text><text class="breeze-release-management-prepare-provider-packages-r1" x="707.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="744.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">grpc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="793" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="829.6" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">hashicorp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="939.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="976" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">http</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1024.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1061.4" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">imap</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1110.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1146.8" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">influxdb</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1281" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">jdbc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1329.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1366.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">jenkins</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">
-</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="215.2" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="146.4" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="158.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">azure</text><text class="breeze-release-management-prepare-provider-packages-r1" x="219.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="256.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="366" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="378.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mssql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="439.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="475.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="585.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="597.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">psrp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="646.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="683.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="793" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="805.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">winrm</text><text class="breeze-release-management-prepare-provider-packages-r1" x="866.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="902.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mongo</text><text class="breeze-release-management-prepare-provider-packages-r1" x="963.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1000.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mysql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1061.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1098" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">neo4j</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1159" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1195.6" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">odbc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1244.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1281" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">openai</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1354.2" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">cohere</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="122" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">common</text><text class="breeze-release-management-prepare-provider-packages-r1" x="195.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="207.4" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">io</text><text class="breeze-release-management-prepare-provider-packages-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="268.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">common</text><text class="breeze-release-management-prepare-provider-packages-r1" x="341.6" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="353.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">sql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="390.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="427" y="166.4" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">databricks</text><text class="breeze-release-management-prepare-provider-packages-r1" x="549" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="585.6" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">datadog</text><text class="breeze-release-management-prepare-provider-packages-r1" x="671" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="707.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">dbt</text><text class="breeze-release-management-prepare-provider-packages-r1" x="744.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="756.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">cloud</text><text class="breeze-release-management-prepare-provider-packages-r1" x="817.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="854" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">dingding</text><text class="breeze-release-management-prepare-provider-packages-r1" x="951.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="988.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">discord</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1073.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1110.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">docker</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1183.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1220" y="166.4" textLength="158.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">elasticsearch</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1378.6" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-6)">
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">exasol</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="122" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">facebook</text><text class="breeze-release-management-prepare-provider-packages-r1" x="219.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">ftp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="329.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">github</text><text class="breeze-release-management-prepare-provider-packages-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="439.2" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">google</text><text class="breeze-release-management-prepare-provider-packages-r1" x="512.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="549" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">grpc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="597.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="634.4" y="190.8" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">hashicorp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="744.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="780.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">http</text><text class="breeze-release-management-prepare-provider-packages-r1" x="829.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="866.2" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">imap</text><text class="breeze-release-management-prepare-provider-packages-r1" x="915" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="951.6" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">influxdb</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1049.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1085.8" y="190.8" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">jdbc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1134.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1171.2" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">jenkins</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1256.6" y="190.8" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-7)">
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="122" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="134.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">azure</text><text class="breeze-release-management-prepare-provider-packages-r1" x="195.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="231.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="341.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="353.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mssql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="414.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="451.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="561.2" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="573.4" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">psrp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="658.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">microsoft</text><text class="breeze-release-management-prepare-provider-packages-r1" x="768.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">.</text><text class="breeze-release-management-prepare-provider-packages-r4" x="780.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">winrm</text><text class="breeze-release-management-prepare-provider-packages-r1" x="841.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="878.4" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mongo</text><text class="breeze-release-management-prepare-provider-packages-r1" x="939.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="976" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">mysql</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1037" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1073.6" y="215.2" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">neo4j</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1134.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1171.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">odbc</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1220" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1256.6" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">openai</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1329.8" y="215.2" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-8)">
 </text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">openfaas</text><text class="breeze-release-management-prepare-provider-packages-r1" x="109.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="146.4" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">openlineage</text><text class="breeze-release-management-prepare-provider-packages-r1" x="280.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="317.2" y="239.6" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">opensearch</text><text class="breeze-release-management-prepare-provider-packages-r1" x="439.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="475.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">opsgenie</text><text class="breeze-release-management-prepare-provider-packages-r1" x="573.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="610" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">oracle</text><text class="breeze-release-management-prepare-provider-packages-r1" x="683.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="719.8" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">pagerduty</text><text class="breeze-release-management-prepare-provider-packages-r1" x="829.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="866.2" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">papermill</text><text class="breeze-release-management-prepare-provider-packages-r1" x="976" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1012.6" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">pgvector</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1110.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1146.8" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">pinecone</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1244.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1281" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">plexus</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-9)">
 </text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">postgres</text><text class="breeze-release-management-prepare-provider-packages-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">presto</text><text class="breeze-release-management-prepare-provider-packages-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="256.2" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">redis</text><text class="breeze-release-management-prepare-provider-packages-r1" x="317.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="353.8" y="264" textLength="122" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">salesforce</text><text class="breeze-release-management-prepare-provider-packages-r1" x="475.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="512.4" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">samba</text><text class="breeze-release-management-prepare-provider-packages-r1" x="573.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="610" y="264" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">segment</text><text class="breeze-release-management-prepare-provider-packages-r1" x="695.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="732" y="264" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">sendgrid</text><text class="breeze-release-management-prepare-provider-packages-r1" x="829.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="866.2" y="264" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">sftp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="915" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="951.6" y="264" textLength="134.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">singularity</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1085.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1122.4" y="264" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">slack</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1183.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1220" y="264" textLength="48.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">smtp</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1268.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1305.4" y="264" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">snowflake</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1415.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-10)">
 </text><text class="breeze-release-management-prepare-provider-packages-r4" x="12.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">sqlite</text><text class="breeze-release-management-prepare-provider-packages-r1" x="85.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="122" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">ssh</text><text class="breeze-release-management-prepare-provider-packages-r1" x="158.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="195.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">tableau</text><text class="breeze-release-management-prepare-provider-packages-r1" x="280.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="317.2" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">tabular</text><text class="breeze-release-management-prepare-provider-packages-r1" x="402.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="439.2" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">telegram</text><text class="breeze-release-management-prepare-provider-packages-r1" x="536.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="573.4" y="288.4" textLength="61" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">trino</text><text class="breeze-release-management-prepare-provider-packages-r1" x="634.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="671" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">vertica</text><text class="breeze-release-management-prepare-provider-packages-r1" x="756.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="793" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">weaviate</text><text class="breeze-release-management-prepare-provider-packages-r1" x="890.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="927.2" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">yandex</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1000.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">&#160;|&#160;</text><text class="breeze-release-management-prepare-provider-packages-r4" x="1037" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">zendesk</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1122.4" y="288.4" textLength="329.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-prepare-provider-packages-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-11)">
diff --git a/images/breeze/output_release-management_prepare-provider-packages.txt b/images/breeze/output_release-management_prepare-provider-packages.txt
index 872a3881ba848..40c645548b9a5 100644
--- a/images/breeze/output_release-management_prepare-provider-packages.txt
+++ b/images/breeze/output_release-management_prepare-provider-packages.txt
@@ -1 +1 @@
-1b7d25cb5f379cee89c5345c60be1992
+edc5ad15da0ee4deb563dbda86f6551a
diff --git a/images/breeze/output_release-management_publish-docs.svg b/images/breeze/output_release-management_publish-docs.svg
index 833cb02b6c3ce..a549aac840665 100644
--- a/images/breeze/output_release-management_publish-docs.svg
+++ b/images/breeze/output_release-management_publish-docs.svg
@@ -181,9 +181,9 @@
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">amazon</text><text class="breeze-release-management-publish-docs-r1" x="85.4" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="122" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="195.2" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="207.4" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-4)">beam</text><text class="breeze-release-management-publish-docs-r1" x="256.2" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="292.8" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="366" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="378.2" y="117.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-4)">cassandra</text><text class="breeze-release-management-publish-docs-r1" x="488" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="524.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="597.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="610" y="117.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-4)">drill</text><text class="breeze-release-management-publish-docs-r1" x="671" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="707.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="780.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="793" y="117.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-4)">druid</text><text class="breeze-release-management-publish-docs-r1" x="854" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="890.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="963.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="976" y="117.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-4)">flink</text><text class="breeze-release-management-publish-docs-r1" x="1037" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1073.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="1146.8" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="1159" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-4)">hdfs</text><text class="breeze-release-management-publish-docs-r1" x="1207.8" y="117.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1244.4" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">apache</text><text class="breeze-release-management-publish-docs-r1" x="1317.6" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">.</text><text class="breeze-release-management-publish-docs-r4" x="1329.8" y="117.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-4)">hive</text><text class="breeze-release-management-publish-docs-r1" x="1378.6" y="117.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-4)">
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="85.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="97.6" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">impala</text><text class="breeze-release-management-publish-docs-r1" x="170.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="207.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="280.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="292.8" y="142" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-5)">kafka</text><text class="breeze-release-management-publish-docs-r1" x="353.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="390.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="463.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="475.8" y="142" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-5)">kylin</text><text class="breeze-release-management-publish-docs-r1" x="536.8" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="573.4" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="646.6" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="658.8" y="142" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-5)">livy</text><text class="breeze-release-management-publish-docs-r1" x="707.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="744.2" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="817.4" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="829.6" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">pig</text><text class="breeze-release-management-publish-docs-r1" x="866.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="902.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="976" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="988.2" y="142" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-5)">pinot</text><text class="breeze-release-management-publish-docs-r1" x="1049.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1085.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="1159" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="1171.2" y="142" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-5)">spark</text><text class="breeze-release-management-publish-docs-r1" x="1232.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1268.8" y="142" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">apache</text><text class="breeze-release-management-publish-docs-r1" x="1342" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">.</text><text class="breeze-release-management-publish-docs-r4" x="1354.2" y="142" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-5)">sqoop</text><text class="breeze-release-management-publish-docs-r1" x="1415.2" y="142" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-5)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-5)">
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="166.4" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-6)">apprise</text><text class="breeze-release-management-publish-docs-r1" x="97.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="134.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">arangodb</text><text class="breeze-release-management-publish-docs-r1" x="231.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="268.4" y="166.4" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-6)">asana</text><text class="breeze-release-management-publish-docs-r1" x="329.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="366" y="166.4" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-6)">atlassian</text><text class="breeze-release-management-publish-docs-r1" x="475.8" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">.</text><text class="breeze-release-management-publish-docs-r4" x="488" y="166.4" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-6)">jira</text><text class="breeze-release-management-publish-docs-r1" x="536.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="573.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">celery</text><text class="breeze-release-management-publish-docs-r1" x="646.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="683.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">cloudant</text><text class="breeze-release-management-publish-docs-r1" x="780.8" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="817.4" y="166.4" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-6)">cncf</text><text class="breeze-release-management-publish-docs-r1" x="866.2" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">.</text><text class="breeze-release-management-publish-docs-r4" x="878.4" y="166.4" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-6)">kubernetes</text><text class="breeze-release-management-publish-docs-r1" x="1000.4" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1037" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">cohere</text><text class="breeze-release-management-publish-docs-r1" x="1110.2" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1146.8" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">common</text><text class="breeze-release-management-publish-docs-r1" x="1220" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">.</text><text class="breeze-release-management-publish-docs-r4" x="1232.2" y="166.4" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-6)">io</text><text class="breeze-release-management-publish-docs-r1" x="1256.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1293.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">common</text><text class="breeze-release-management-publish-docs-r1" x="1366.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">.</text><text class="breeze-release-management-publish-docs-r4" x="1378.6" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">sql</text><text class="breeze-release-management-publish-docs-r1" x="1415.2" y="166.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-6)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-6)">
-</text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="190.8" textLength="146.4" clip-path="url(#breeze-release-management-publish-docs-line-7)">daskexecutor</text><text class="breeze-release-management-publish-docs-r1" x="158.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="195.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-7)">databricks</text><text class="breeze-release-management-publish-docs-r1" x="317.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="353.8" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-7)">datadog</text><text class="breeze-release-management-publish-docs-r1" x="439.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="475.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">dbt</text><text class="breeze-release-management-publish-docs-r1" x="512.4" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">.</text><text class="breeze-release-management-publish-docs-r4" x="524.6" y="190.8" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-7)">cloud</text><text class="breeze-release-management-publish-docs-r1" x="585.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="622.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">dingding</text><text class="breeze-release-management-publish-docs-r1" x="719.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="756.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-7)">discord</text><text class="breeze-release-management-publish-docs-r1" x="841.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="878.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">docker</text><text class="breeze-release-management-publish-docs-r1" x="951.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="988.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">elasticsearch</text><text class="breeze-release-management-publish-docs-r1" x="1146.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1183.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">exasol</text><text class="breeze-release-management-publish-docs-r1" x="1256.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1293.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">facebook</text><text class="breeze-release-management-publish-docs-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">
-</text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">ftp</text><text class="breeze-release-management-publish-docs-r1" x="48.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="85.4" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">github</text><text class="breeze-release-management-publish-docs-r1" x="158.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="195.2" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">google</text><text class="breeze-release-management-publish-docs-r1" x="268.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="305" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">grpc</text><text class="breeze-release-management-publish-docs-r1" x="353.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="390.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">hashicorp</text><text class="breeze-release-management-publish-docs-r1" x="500.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="536.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">http</text><text class="breeze-release-management-publish-docs-r1" x="585.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="622.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">imap</text><text class="breeze-release-management-publish-docs-r1" x="671" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="707.6" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">influxdb</text><text class="breeze-release-management-publish-docs-r1" x="805.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="841.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">jdbc</text><text class="breeze-release-management-publish-docs-r1" x="890.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="927.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-8)">jenkins</text><text class="breeze-release-management-publish-docs-r1" x="1012.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1049.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="1159" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">.</text><text class="breeze-release-management-publish-docs-r4" x="1171.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-8)">azure</text><text class="breeze-release-management-publish-docs-r1" x="1232.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1268.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="1378.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">.</text><text class="breeze-release-management-publish-docs-r4" x="1390.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-8)">mssql</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">
-</text><text class="breeze-release-management-publish-docs-r1" x="12.2" y="239.6" textLength="24.4" clip-path="url(#breeze-release-management-publish-docs-line-9)">|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="36.6" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="146.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">.</text><text class="breeze-release-management-publish-docs-r4" x="158.6" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">psrp</text><text class="breeze-release-management-publish-docs-r1" x="207.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="244" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="353.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">.</text><text class="breeze-release-management-publish-docs-r4" x="366" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">winrm</text><text class="breeze-release-management-publish-docs-r1" x="427" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="463.6" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">mongo</text><text class="breeze-release-management-publish-docs-r1" x="524.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="561.2" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">mysql</text><text class="breeze-release-management-publish-docs-r1" x="622.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="658.8" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">neo4j</text><text class="breeze-release-management-publish-docs-r1" x="719.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="756.4" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">odbc</text><text class="breeze-release-management-publish-docs-r1" x="805.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="841.8" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">openai</text><text class="breeze-release-management-publish-docs-r1" x="915" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="951.6" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">openfaas</text><text class="breeze-release-management-publish-docs-r1" x="1049.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1085.8" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">openlineage</text><text class="breeze-release-management-publish-docs-r1" x="1220" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1256.6" y="239.6" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-9)">opensearch</text><text class="breeze-release-management-publish-docs-r1" x="1378.6" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">
+</text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-7)">databricks</text><text class="breeze-release-management-publish-docs-r1" x="134.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="170.8" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-7)">datadog</text><text class="breeze-release-management-publish-docs-r1" x="256.2" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="292.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">dbt</text><text class="breeze-release-management-publish-docs-r1" x="329.4" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">.</text><text class="breeze-release-management-publish-docs-r4" x="341.6" y="190.8" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-7)">cloud</text><text class="breeze-release-management-publish-docs-r1" x="402.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="439.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">dingding</text><text class="breeze-release-management-publish-docs-r1" x="536.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="573.4" y="190.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-7)">discord</text><text class="breeze-release-management-publish-docs-r1" x="658.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="695.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">docker</text><text class="breeze-release-management-publish-docs-r1" x="768.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="805.2" y="190.8" textLength="158.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">elasticsearch</text><text class="breeze-release-management-publish-docs-r1" x="963.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1000.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">exasol</text><text class="breeze-release-management-publish-docs-r1" x="1073.6" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1110.2" y="190.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">facebook</text><text class="breeze-release-management-publish-docs-r1" x="1207.8" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1244.4" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">ftp</text><text class="breeze-release-management-publish-docs-r1" x="1281" y="190.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1317.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">github</text><text class="breeze-release-management-publish-docs-r1" x="1390.8" y="190.8" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-7)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-7)">
+</text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="215.2" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">google</text><text class="breeze-release-management-publish-docs-r1" x="85.4" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="122" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">grpc</text><text class="breeze-release-management-publish-docs-r1" x="170.8" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="207.4" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">hashicorp</text><text class="breeze-release-management-publish-docs-r1" x="317.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="353.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">http</text><text class="breeze-release-management-publish-docs-r1" x="402.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="439.2" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">imap</text><text class="breeze-release-management-publish-docs-r1" x="488" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="524.6" y="215.2" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">influxdb</text><text class="breeze-release-management-publish-docs-r1" x="622.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="658.8" y="215.2" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">jdbc</text><text class="breeze-release-management-publish-docs-r1" x="707.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="744.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-8)">jenkins</text><text class="breeze-release-management-publish-docs-r1" x="829.6" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="866.2" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">.</text><text class="breeze-release-management-publish-docs-r4" x="988.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-8)">azure</text><text class="breeze-release-management-publish-docs-r1" x="1049.2" y="215.2" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1085.8" y="215.2" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-8)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="1195.6" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">.</text><text class="breeze-release-management-publish-docs-r4" x="1207.8" y="215.2" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-8)">mssql</text><text class="breeze-release-management-publish-docs-r1" x="1268.8" y="215.2" textLength="183" clip-path="url(#breeze-release-management-publish-docs-line-8)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-8)">
+</text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="122" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">.</text><text class="breeze-release-management-publish-docs-r4" x="134.2" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">psrp</text><text class="breeze-release-management-publish-docs-r1" x="183" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="219.6" y="239.6" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">microsoft</text><text class="breeze-release-management-publish-docs-r1" x="329.4" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">.</text><text class="breeze-release-management-publish-docs-r4" x="341.6" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">winrm</text><text class="breeze-release-management-publish-docs-r1" x="402.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="439.2" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">mongo</text><text class="breeze-release-management-publish-docs-r1" x="500.2" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="536.8" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">mysql</text><text class="breeze-release-management-publish-docs-r1" x="597.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="634.4" y="239.6" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-9)">neo4j</text><text class="breeze-release-management-publish-docs-r1" x="695.4" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="732" y="239.6" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-9)">odbc</text><text class="breeze-release-management-publish-docs-r1" x="780.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="817.4" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">openai</text><text class="breeze-release-management-publish-docs-r1" x="890.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="927.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">openfaas</text><text class="breeze-release-management-publish-docs-r1" x="1024.8" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1061.4" y="239.6" textLength="134.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">openlineage</text><text class="breeze-release-management-publish-docs-r1" x="1195.6" y="239.6" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1232.2" y="239.6" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-9)">opensearch</text><text class="breeze-release-management-publish-docs-r1" x="1354.2" y="239.6" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-9)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-9)">
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">opsgenie</text><text class="breeze-release-management-publish-docs-r1" x="109.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="146.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-10)">oracle</text><text class="breeze-release-management-publish-docs-r1" x="219.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="256.2" y="264" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-10)">pagerduty</text><text class="breeze-release-management-publish-docs-r1" x="366" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="402.6" y="264" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-10)">papermill</text><text class="breeze-release-management-publish-docs-r1" x="512.4" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="549" y="264" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">pgvector</text><text class="breeze-release-management-publish-docs-r1" x="646.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="683.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">pinecone</text><text class="breeze-release-management-publish-docs-r1" x="780.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="817.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-10)">plexus</text><text class="breeze-release-management-publish-docs-r1" x="890.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="927.2" y="264" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">postgres</text><text class="breeze-release-management-publish-docs-r1" x="1024.8" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1061.4" y="264" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-10)">presto</text><text class="breeze-release-management-publish-docs-r1" x="1134.6" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1171.2" y="264" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-10)">redis</text><text class="breeze-release-management-publish-docs-r1" x="1232.2" y="264" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1268.8" y="264" textLength="122" clip-path="url(#breeze-release-management-publish-docs-line-10)">salesforce</text><text class="breeze-release-management-publish-docs-r1" x="1390.8" y="264" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-10)">&#160;|&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-10)">
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="288.4" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-11)">samba</text><text class="breeze-release-management-publish-docs-r1" x="73.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="109.8" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-11)">segment</text><text class="breeze-release-management-publish-docs-r1" x="195.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="231.8" y="288.4" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">sendgrid</text><text class="breeze-release-management-publish-docs-r1" x="329.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="366" y="288.4" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-11)">sftp</text><text class="breeze-release-management-publish-docs-r1" x="414.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="451.4" y="288.4" textLength="134.2" clip-path="url(#breeze-release-management-publish-docs-line-11)">singularity</text><text class="breeze-release-management-publish-docs-r1" x="585.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="622.2" y="288.4" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-11)">slack</text><text class="breeze-release-management-publish-docs-r1" x="683.2" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="719.8" y="288.4" textLength="48.8" clip-path="url(#breeze-release-management-publish-docs-line-11)">smtp</text><text class="breeze-release-management-publish-docs-r1" x="768.6" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="805.2" y="288.4" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-11)">snowflake</text><text class="breeze-release-management-publish-docs-r1" x="915" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="951.6" y="288.4" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-11)">sqlite</text><text class="breeze-release-management-publish-docs-r1" x="1024.8" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1061.4" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">ssh</text><text class="breeze-release-management-publish-docs-r1" x="1098" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1134.6" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-11)">tableau</text><text class="breeze-release-management-publish-docs-r1" x="1220" y="288.4" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="1256.6" y="288.4" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-11)">tabular</text><text class="breeze-release-management-publish-docs-r1" x="1342" y="288.4" textLength="109.8" clip-path="url(#breeze-release-management-publish-docs-line-11)">&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-11)">
 </text><text class="breeze-release-management-publish-docs-r4" x="12.2" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">telegram</text><text class="breeze-release-management-publish-docs-r1" x="109.8" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="146.4" y="312.8" textLength="61" clip-path="url(#breeze-release-management-publish-docs-line-12)">trino</text><text class="breeze-release-management-publish-docs-r1" x="207.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="244" y="312.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-12)">vertica</text><text class="breeze-release-management-publish-docs-r1" x="329.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="366" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">weaviate</text><text class="breeze-release-management-publish-docs-r1" x="463.6" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="500.2" y="312.8" textLength="73.2" clip-path="url(#breeze-release-management-publish-docs-line-12)">yandex</text><text class="breeze-release-management-publish-docs-r1" x="573.4" y="312.8" textLength="36.6" clip-path="url(#breeze-release-management-publish-docs-line-12)">&#160;|&#160;</text><text class="breeze-release-management-publish-docs-r4" x="610" y="312.8" textLength="85.4" clip-path="url(#breeze-release-management-publish-docs-line-12)">zendesk</text><text class="breeze-release-management-publish-docs-r1" x="695.4" y="312.8" textLength="756.4" clip-path="url(#breeze-release-management-publish-docs-line-12)">]...&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-publish-docs-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-publish-docs-line-12)">
diff --git a/images/breeze/output_release-management_publish-docs.txt b/images/breeze/output_release-management_publish-docs.txt
index 5c78e173cb25c..d9d6337aeaea3 100644
--- a/images/breeze/output_release-management_publish-docs.txt
+++ b/images/breeze/output_release-management_publish-docs.txt
@@ -1 +1 @@
-1354c6bf0827b119ba11522df04b8a98
+a00931bcc6143a9ef14860ce492b0d9e
diff --git a/images/breeze/output_release-management_release-prod-images.svg b/images/breeze/output_release-management_release-prod-images.svg
index 76922057e1f60..f1e6d24f2c072 100644
--- a/images/breeze/output_release-management_release-prod-images.svg
+++ b/images/breeze/output_release-management_release-prod-images.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 660.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 782.0" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -45,7 +45,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-release-prod-images-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="609.0" />
+      <rect x="0" y="0" width="1463.0" height="731.0" />
     </clipPath>
     <clipPath id="breeze-release-management-release-prod-images-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -119,9 +119,24 @@
 <clipPath id="breeze-release-management-release-prod-images-line-23">
     <rect x="0" y="562.7" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-release-management-release-prod-images-line-24">
+    <rect x="0" y="587.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-release-prod-images-line-25">
+    <rect x="0" y="611.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-release-prod-images-line-26">
+    <rect x="0" y="635.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-release-prod-images-line-27">
+    <rect x="0" y="660.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-release-prod-images-line-28">
+    <rect x="0" y="684.7" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="658" rx="8"/><text class="breeze-release-management-release-prod-images-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;release-prod-images</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="780" rx="8"/><text class="breeze-release-management-release-prod-images-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;release-prod-images</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -137,25 +152,30 @@
 </text><text class="breeze-release-management-release-prod-images-r1" x="12.2" y="93.2" textLength="841.8" clip-path="url(#breeze-release-management-release-prod-images-line-3)">Release&#160;production&#160;images&#160;to&#160;DockerHub&#160;(needs&#160;DockerHub&#160;permissions).</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-3)">
 </text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-4)">
 </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-5)">╭─</text><text class="breeze-release-management-release-prod-images-r5" x="24.4" y="142" textLength="317.2" clip-path="url(#breeze-release-management-release-prod-images-line-5)">&#160;Release&#160;PROD&#160;IMAGE&#160;flags&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="341.6" y="142" textLength="1098" clip-path="url(#breeze-release-management-release-prod-images-line-5)">──────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-release-prod-images-r5" x="1439.6" y="142" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-5)">─╮</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="142" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-5)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">│</text><text class="breeze-release-management-release-prod-images-r6" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">*</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-airflow</text><text class="breeze-release-management-release-prod-images-r4" x="170.8" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-version</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="166.4" textLength="597.8" clip-path="url(#breeze-release-management-release-prod-images-line-6)">Airflow&#160;version&#160;to&#160;release&#160;(2.3.0,&#160;2.3.0rc1&#160;etc.)</text><text class="breeze-release-management-release-prod-images-r7" x="927.2" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r8" x="1012.6" y="166.4" textLength="122" clip-path="url(#breeze-release-management-release-prod-images-line-6)">[required]</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-dockerhub</text><text class="breeze-release-management-release-prod-images-r4" x="195.2" y="190.8" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-repo</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="190.8" textLength="427" clip-path="url(#breeze-release-management-release-prod-images-line-7)">DockerHub&#160;repository&#160;for&#160;the&#160;images</text><text class="breeze-release-management-release-prod-images-r7" x="756.4" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r5" x="841.8" y="190.8" textLength="305" clip-path="url(#breeze-release-management-release-prod-images-line-7)">[default:&#160;apache/airflow]</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-slim</text><text class="breeze-release-management-release-prod-images-r4" x="134.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-images</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="215.2" textLength="719.8" clip-path="url(#breeze-release-management-release-prod-images-line-8)">Whether&#160;to&#160;prepare&#160;slim&#160;images&#160;instead&#160;of&#160;the&#160;regular&#160;ones.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-limit</text><text class="breeze-release-management-release-prod-images-r4" x="146.4" y="239.6" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-python</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="239.6" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-9)">Specific&#160;python&#160;to&#160;build&#160;slim&#160;images&#160;for&#160;(if&#160;not&#160;specified&#160;-&#160;the&#160;images&#160;are&#160;built&#160;for&#160;all&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="264" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-10)">available&#160;python&#160;versions)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r7" x="317.2" y="288.4" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-11)">(3.8&#160;|&#160;3.9&#160;|&#160;3.10&#160;|&#160;3.11)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="312.8" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-limit</text><text class="breeze-release-management-release-prod-images-r4" x="146.4" y="312.8" textLength="109.8" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-platform</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="312.8" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-12)">Specific&#160;platform&#160;to&#160;build&#160;images&#160;for&#160;(if&#160;not&#160;specified,&#160;multiplatform&#160;images&#160;will&#160;be&#160;built.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r7" x="317.2" y="337.2" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-13)">(linux/amd64&#160;|&#160;linux/arm64&#160;|&#160;linux/amd64,linux/arm64)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r5" x="317.2" y="361.6" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-14)">[default:&#160;linux/amd64,linux/arm64]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="386" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-15)">-skip</text><text class="breeze-release-management-release-prod-images-r4" x="134.2" y="386" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-15)">-latest</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="386" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-15)">Whether&#160;to&#160;skip&#160;publishing&#160;the&#160;latest&#160;images&#160;(so&#160;that&#160;&#x27;latest&#x27;&#160;images&#160;are&#160;not&#160;updated).&#160;This</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="410.4" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-16)">should&#160;only&#160;be&#160;used&#160;if&#160;you&#160;release&#160;image&#160;for&#160;previous&#160;branches.&#160;Automatically&#160;set&#160;when&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="434.8" textLength="1122.4" clip-path="url(#breeze-release-management-release-prod-images-line-17)">rc/alpha/beta&#160;images&#160;are&#160;built.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="459.2" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-18)">-commit</text><text class="breeze-release-management-release-prod-images-r4" x="158.6" y="459.2" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-18)">-sha</text><text class="breeze-release-management-release-prod-images-r1" x="317.2" y="459.2" textLength="536.8" clip-path="url(#breeze-release-management-release-prod-images-line-18)">Commit&#160;SHA&#160;that&#160;is&#160;used&#160;to&#160;build&#160;the&#160;images.</text><text class="breeze-release-management-release-prod-images-r7" x="866.2" y="459.2" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="483.6" textLength="1464" clip-path="url(#breeze-release-management-release-prod-images-line-19)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="508" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-20)">╭─</text><text class="breeze-release-management-release-prod-images-r5" x="24.4" y="508" textLength="195.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="219.6" y="508" textLength="1220" clip-path="url(#breeze-release-management-release-prod-images-line-20)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-release-prod-images-r5" x="1439.6" y="508" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-20)">─╮</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="532.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-21)">-verbose</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="532.4" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-21)">-v</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="532.4" textLength="585.6" clip-path="url(#breeze-release-management-release-prod-images-line-21)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="556.8" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-22)">-dry</text><text class="breeze-release-management-release-prod-images-r4" x="85.4" y="556.8" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-22)">-run</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-22)">-D</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="556.8" textLength="719.8" clip-path="url(#breeze-release-management-release-prod-images-line-22)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">
-</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="581.2" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-23)">-help</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="581.2" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-23)">-h</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="581.2" textLength="329.4" clip-path="url(#breeze-release-management-release-prod-images-line-23)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">│</text><text class="breeze-release-management-release-prod-images-r6" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">*</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-airflow</text><text class="breeze-release-management-release-prod-images-r4" x="170.8" y="166.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-6)">-version</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="166.4" textLength="597.8" clip-path="url(#breeze-release-management-release-prod-images-line-6)">Airflow&#160;version&#160;to&#160;release&#160;(2.3.0,&#160;2.3.0rc1&#160;etc.)</text><text class="breeze-release-management-release-prod-images-r7" x="1000.4" y="166.4" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r8" x="1085.8" y="166.4" textLength="122" clip-path="url(#breeze-release-management-release-prod-images-line-6)">[required]</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-6)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="190.8" textLength="122" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-dockerhub</text><text class="breeze-release-management-release-prod-images-r4" x="195.2" y="190.8" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-7)">-repo</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="190.8" textLength="427" clip-path="url(#breeze-release-management-release-prod-images-line-7)">DockerHub&#160;repository&#160;for&#160;the&#160;images</text><text class="breeze-release-management-release-prod-images-r7" x="829.6" y="190.8" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r5" x="915" y="190.8" textLength="305" clip-path="url(#breeze-release-management-release-prod-images-line-7)">[default:&#160;apache/airflow]</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-7)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="215.2" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-slim</text><text class="breeze-release-management-release-prod-images-r4" x="134.2" y="215.2" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-8)">-images</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="215.2" textLength="719.8" clip-path="url(#breeze-release-management-release-prod-images-line-8)">Whether&#160;to&#160;prepare&#160;slim&#160;images&#160;instead&#160;of&#160;the&#160;regular&#160;ones.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-8)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="239.6" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-limit</text><text class="breeze-release-management-release-prod-images-r4" x="146.4" y="239.6" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-9)">-python</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="239.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">Specific&#160;python&#160;to&#160;build&#160;slim&#160;images&#160;for&#160;(if&#160;not&#160;specified&#160;-&#160;the&#160;images&#160;are&#160;built&#160;for&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-9)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="264" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">all&#160;available&#160;python&#160;versions)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-10)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="288.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">(3.8&#160;|&#160;3.9&#160;|&#160;3.10&#160;|&#160;3.11)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-11)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="312.8" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-limit</text><text class="breeze-release-management-release-prod-images-r4" x="146.4" y="312.8" textLength="109.8" clip-path="url(#breeze-release-management-release-prod-images-line-12)">-platform</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="312.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">Specific&#160;platform&#160;to&#160;build&#160;images&#160;for&#160;(if&#160;not&#160;specified,&#160;multiplatform&#160;images&#160;will&#160;be&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-12)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="337.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">built.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-13)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="361.6" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">(linux/amd64&#160;|&#160;linux/arm64&#160;|&#160;linux/amd64,linux/arm64)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-14)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r5" x="390.4" y="386" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">[default:&#160;linux/amd64,linux/arm64]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-15)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="410.4" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-16)">-skip</text><text class="breeze-release-management-release-prod-images-r4" x="134.2" y="410.4" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-16)">-latest</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="410.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">Whether&#160;to&#160;skip&#160;publishing&#160;the&#160;latest&#160;images&#160;(so&#160;that&#160;&#x27;latest&#x27;&#160;images&#160;are&#160;not&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-16)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="434.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">updated).&#160;This&#160;should&#160;only&#160;be&#160;used&#160;if&#160;you&#160;release&#160;image&#160;for&#160;previous&#160;branches.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-17)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="459.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">Automatically&#160;set&#160;when&#160;rc/alpha/beta&#160;images&#160;are&#160;built.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-18)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="483.6" textLength="85.4" clip-path="url(#breeze-release-management-release-prod-images-line-19)">-commit</text><text class="breeze-release-management-release-prod-images-r4" x="158.6" y="483.6" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-19)">-sha</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="483.6" textLength="536.8" clip-path="url(#breeze-release-management-release-prod-images-line-19)">Commit&#160;SHA&#160;that&#160;is&#160;used&#160;to&#160;build&#160;the&#160;images.</text><text class="breeze-release-management-release-prod-images-r7" x="939.4" y="483.6" textLength="73.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">(TEXT)</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-19)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">│</text><text class="breeze-release-management-release-prod-images-r4" x="61" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">-</text><text class="breeze-release-management-release-prod-images-r4" x="73.2" y="508" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-20)">-chicken</text><text class="breeze-release-management-release-prod-images-r4" x="170.8" y="508" textLength="170.8" clip-path="url(#breeze-release-management-release-prod-images-line-20)">-egg-providers</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="508" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">List&#160;of&#160;chicken-egg&#160;provider&#160;packages&#160;-&#160;those&#160;that&#160;have&#160;airflow_version&#160;&gt;=&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-20)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="532.4" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">current_version&#160;and&#160;should&#160;be&#160;installed&#160;in&#160;CI&#160;from&#160;locally&#160;built&#160;packages&#160;with&#160;&gt;=&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-21)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r1" x="390.4" y="556.8" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">current_version.dev0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-22)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r7" x="390.4" y="581.2" textLength="1049.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-23)">
 </text><text class="breeze-release-management-release-prod-images-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-release-management-release-prod-images-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-24)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-25)">╭─</text><text class="breeze-release-management-release-prod-images-r5" x="24.4" y="630" textLength="195.2" clip-path="url(#breeze-release-management-release-prod-images-line-25)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-release-prod-images-r5" x="219.6" y="630" textLength="1220" clip-path="url(#breeze-release-management-release-prod-images-line-25)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-release-management-release-prod-images-r5" x="1439.6" y="630" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-25)">─╮</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-25)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="654.4" textLength="97.6" clip-path="url(#breeze-release-management-release-prod-images-line-26)">-verbose</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="654.4" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-26)">-v</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="654.4" textLength="585.6" clip-path="url(#breeze-release-management-release-prod-images-line-26)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-26)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-27)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-27)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="678.8" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-27)">-dry</text><text class="breeze-release-management-release-prod-images-r4" x="85.4" y="678.8" textLength="48.8" clip-path="url(#breeze-release-management-release-prod-images-line-27)">-run</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-27)">-D</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="678.8" textLength="719.8" clip-path="url(#breeze-release-management-release-prod-images-line-27)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-27)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-27)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-28)">│</text><text class="breeze-release-management-release-prod-images-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-28)">-</text><text class="breeze-release-management-release-prod-images-r4" x="36.6" y="703.2" textLength="61" clip-path="url(#breeze-release-management-release-prod-images-line-28)">-help</text><text class="breeze-release-management-release-prod-images-r9" x="158.6" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-release-prod-images-line-28)">-h</text><text class="breeze-release-management-release-prod-images-r1" x="207.4" y="703.2" textLength="329.4" clip-path="url(#breeze-release-management-release-prod-images-line-28)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-release-management-release-prod-images-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-28)">│</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-28)">
+</text><text class="breeze-release-management-release-prod-images-r5" x="0" y="727.6" textLength="1464" clip-path="url(#breeze-release-management-release-prod-images-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-release-prod-images-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-release-prod-images-line-29)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_release-prod-images.txt b/images/breeze/output_release-management_release-prod-images.txt
index 0397b63e19e50..58827ed619868 100644
--- a/images/breeze/output_release-management_release-prod-images.txt
+++ b/images/breeze/output_release-management_release-prod-images.txt
@@ -1 +1 @@
-cfbfe8b19fee91fd90718f98ef2fd078
+4c5c364cc00355ac02debacc48447be8
diff --git a/images/breeze/output_sbom_generate-providers-requirements.svg b/images/breeze/output_sbom_generate-providers-requirements.svg
index cb90b209604e9..2929a5fd5797c 100644
--- a/images/breeze/output_sbom_generate-providers-requirements.svg
+++ b/images/breeze/output_sbom_generate-providers-requirements.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1050.4" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1026.0" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-sbom-generate-providers-requirements-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="999.4" />
+      <rect x="0" y="0" width="1463.0" height="975.0" />
     </clipPath>
     <clipPath id="breeze-sbom-generate-providers-requirements-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -162,12 +162,9 @@
 <clipPath id="breeze-sbom-generate-providers-requirements-line-38">
     <rect x="0" y="928.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-sbom-generate-providers-requirements-line-39">
-    <rect x="0" y="953.1" width="1464" height="24.65"/>
-            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1048.4" rx="8"/><text class="breeze-sbom-generate-providers-requirements-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;sbom&#160;generate-providers-requirements</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1024" rx="8"/><text class="breeze-sbom-generate-providers-requirements-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;sbom&#160;generate-providers-requirements</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -190,34 +187,33 @@
 </text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="264" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">apache.flink&#160;|&#160;apache.hdfs&#160;|&#160;apache.hive&#160;|&#160;apache.impala&#160;|&#160;apache.kafka&#160;|&#160;apache.kylin&#160;|&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">
 </text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="288.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">apache.livy&#160;|&#160;apache.pig&#160;|&#160;apache.pinot&#160;|&#160;apache.spark&#160;|&#160;apache.sqoop&#160;|&#160;apprise&#160;|&#160;arangodb&#160;|&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">
 </text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="312.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">asana&#160;|&#160;atlassian.jira&#160;|&#160;celery&#160;|&#160;cloudant&#160;|&#160;cncf.kubernetes&#160;|&#160;cohere&#160;|&#160;common.io&#160;|&#160;common.sql</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="337.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">|&#160;daskexecutor&#160;|&#160;databricks&#160;|&#160;datadog&#160;|&#160;dbt.cloud&#160;|&#160;dingding&#160;|&#160;discord&#160;|&#160;docker&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="361.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">elasticsearch&#160;|&#160;exasol&#160;|&#160;facebook&#160;|&#160;ftp&#160;|&#160;github&#160;|&#160;google&#160;|&#160;grpc&#160;|&#160;hashicorp&#160;|&#160;http&#160;|&#160;imap&#160;|&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="386" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">influxdb&#160;|&#160;jdbc&#160;|&#160;jenkins&#160;|&#160;microsoft.azure&#160;|&#160;microsoft.mssql&#160;|&#160;microsoft.psrp&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="410.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">microsoft.winrm&#160;|&#160;mongo&#160;|&#160;mysql&#160;|&#160;neo4j&#160;|&#160;odbc&#160;|&#160;openai&#160;|&#160;openfaas&#160;|&#160;openlineage&#160;|&#160;opensearch&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="434.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">|&#160;opsgenie&#160;|&#160;oracle&#160;|&#160;pagerduty&#160;|&#160;papermill&#160;|&#160;pgvector&#160;|&#160;pinecone&#160;|&#160;plexus&#160;|&#160;postgres&#160;|&#160;presto</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="459.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">|&#160;redis&#160;|&#160;salesforce&#160;|&#160;samba&#160;|&#160;segment&#160;|&#160;sendgrid&#160;|&#160;sftp&#160;|&#160;singularity&#160;|&#160;slack&#160;|&#160;smtp&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="483.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">snowflake&#160;|&#160;sqlite&#160;|&#160;ssh&#160;|&#160;tableau&#160;|&#160;tabular&#160;|&#160;telegram&#160;|&#160;trino&#160;|&#160;vertica&#160;|&#160;weaviate&#160;|&#160;yandex&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="508" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">|&#160;zendesk)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="532.4" textLength="109.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">-provider</text><text class="breeze-sbom-generate-providers-requirements-r4" x="146.4" y="532.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">-version</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="532.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">Provider&#160;version&#160;to&#160;generate&#160;the&#160;requirements&#160;for&#160;i.e&#160;`2.1.0`.&#160;`latest`&#160;is&#160;also&#160;a&#160;supported&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="556.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">value&#160;to&#160;account&#160;for&#160;the&#160;most&#160;recent&#160;version&#160;of&#160;the&#160;provider&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="581.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="605.6" textLength="73.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">-force</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="605.6" textLength="768.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">Force&#160;update&#160;providers&#160;requirements&#160;even&#160;if&#160;they&#160;already&#160;exist.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="630" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="654.4" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="654.4" textLength="219.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">&#160;Parallel&#160;running&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="244" y="654.4" textLength="1195.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1439.6" y="654.4" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">─╮</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="678.8" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-run</text><text class="breeze-sbom-generate-providers-requirements-r4" x="85.4" y="678.8" textLength="146.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-in-parallel</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="678.8" textLength="854" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">Run&#160;the&#160;operation&#160;in&#160;parallel&#160;on&#160;all&#160;or&#160;selected&#160;subset&#160;of&#160;parameters.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="703.2" textLength="146.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">-parallelism</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="703.2" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">Maximum&#160;number&#160;of&#160;processes&#160;to&#160;use&#160;while&#160;running&#160;the&#160;operation&#160;in&#160;parallel.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="378.2" y="727.6" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">│</text><text class="breeze-sbom-generate-providers-requirements-r5" x="378.2" y="752" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="776.4" textLength="61" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-skip</text><text class="breeze-sbom-generate-providers-requirements-r4" x="97.6" y="776.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-cleanup</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="776.4" textLength="732" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">Skip&#160;cleanup&#160;of&#160;temporary&#160;files&#160;created&#160;during&#160;parallel&#160;run.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="800.8" textLength="73.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-debug</text><text class="breeze-sbom-generate-providers-requirements-r4" x="109.8" y="800.8" textLength="122" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-resources</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="800.8" textLength="768.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">Whether&#160;to&#160;show&#160;resource&#160;information&#160;while&#160;running&#160;in&#160;parallel.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="825.2" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">-include</text><text class="breeze-sbom-generate-providers-requirements-r4" x="134.2" y="825.2" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">-success-outputs</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="825.2" textLength="927.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">Whether&#160;to&#160;include&#160;outputs&#160;of&#160;successful&#160;parallel&#160;runs&#160;(skipped&#160;by&#160;default).</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="849.6" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="874" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="874" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="219.6" y="874" textLength="1220" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1439.6" y="874" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">─╮</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="898.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-verbose</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="898.4" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-v</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="898.4" textLength="585.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="922.8" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-dry</text><text class="breeze-sbom-generate-providers-requirements-r4" x="85.4" y="922.8" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-run</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="922.8" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-D</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="922.8" textLength="719.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="947.2" textLength="85.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-answer</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="947.2" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-a</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="947.2" textLength="317.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">Force&#160;answer&#160;to&#160;questions.</text><text class="breeze-sbom-generate-providers-requirements-r6" x="536.8" y="947.2" textLength="353.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">(y&#160;|&#160;n&#160;|&#160;q&#160;|&#160;yes&#160;|&#160;no&#160;|&#160;quit)</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="971.6" textLength="61" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">-help</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="971.6" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">-h</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="971.6" textLength="329.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">
-</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="996" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-40)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="996" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-40)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="337.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">|&#160;databricks&#160;|&#160;datadog&#160;|&#160;dbt.cloud&#160;|&#160;dingding&#160;|&#160;discord&#160;|&#160;docker&#160;|&#160;elasticsearch&#160;|&#160;exasol&#160;|&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="361.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">facebook&#160;|&#160;ftp&#160;|&#160;github&#160;|&#160;google&#160;|&#160;grpc&#160;|&#160;hashicorp&#160;|&#160;http&#160;|&#160;imap&#160;|&#160;influxdb&#160;|&#160;jdbc&#160;|&#160;jenkins&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="386" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">|&#160;microsoft.azure&#160;|&#160;microsoft.mssql&#160;|&#160;microsoft.psrp&#160;|&#160;microsoft.winrm&#160;|&#160;mongo&#160;|&#160;mysql&#160;|&#160;neo4j</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="410.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">|&#160;odbc&#160;|&#160;openai&#160;|&#160;openfaas&#160;|&#160;openlineage&#160;|&#160;opensearch&#160;|&#160;opsgenie&#160;|&#160;oracle&#160;|&#160;pagerduty&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="434.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">papermill&#160;|&#160;pgvector&#160;|&#160;pinecone&#160;|&#160;plexus&#160;|&#160;postgres&#160;|&#160;presto&#160;|&#160;redis&#160;|&#160;salesforce&#160;|&#160;samba&#160;|&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="459.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">segment&#160;|&#160;sendgrid&#160;|&#160;sftp&#160;|&#160;singularity&#160;|&#160;slack&#160;|&#160;smtp&#160;|&#160;snowflake&#160;|&#160;sqlite&#160;|&#160;ssh&#160;|&#160;tableau&#160;|&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="483.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">tabular&#160;|&#160;telegram&#160;|&#160;trino&#160;|&#160;vertica&#160;|&#160;weaviate&#160;|&#160;yandex&#160;|&#160;zendesk)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="508" textLength="109.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">-provider</text><text class="breeze-sbom-generate-providers-requirements-r4" x="146.4" y="508" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">-version</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="508" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">Provider&#160;version&#160;to&#160;generate&#160;the&#160;requirements&#160;for&#160;i.e&#160;`2.1.0`.&#160;`latest`&#160;is&#160;also&#160;a&#160;supported&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="532.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">value&#160;to&#160;account&#160;for&#160;the&#160;most&#160;recent&#160;version&#160;of&#160;the&#160;provider&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="556.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="581.2" textLength="73.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">-force</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="581.2" textLength="768.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">Force&#160;update&#160;providers&#160;requirements&#160;even&#160;if&#160;they&#160;already&#160;exist.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="630" textLength="219.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">&#160;Parallel&#160;running&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="244" y="630" textLength="1195.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">──────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1439.6" y="630" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">─╮</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="654.4" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">-run</text><text class="breeze-sbom-generate-providers-requirements-r4" x="85.4" y="654.4" textLength="146.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">-in-parallel</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="654.4" textLength="854" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">Run&#160;the&#160;operation&#160;in&#160;parallel&#160;on&#160;all&#160;or&#160;selected&#160;subset&#160;of&#160;parameters.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="678.8" textLength="146.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-parallelism</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="678.8" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">Maximum&#160;number&#160;of&#160;processes&#160;to&#160;use&#160;while&#160;running&#160;the&#160;operation&#160;in&#160;parallel.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="378.2" y="703.2" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r5" x="378.2" y="727.6" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="752" textLength="61" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">-skip</text><text class="breeze-sbom-generate-providers-requirements-r4" x="97.6" y="752" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">-cleanup</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="752" textLength="732" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">Skip&#160;cleanup&#160;of&#160;temporary&#160;files&#160;created&#160;during&#160;parallel&#160;run.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="776.4" textLength="73.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-debug</text><text class="breeze-sbom-generate-providers-requirements-r4" x="109.8" y="776.4" textLength="122" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-resources</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="776.4" textLength="768.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">Whether&#160;to&#160;show&#160;resource&#160;information&#160;while&#160;running&#160;in&#160;parallel.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-include</text><text class="breeze-sbom-generate-providers-requirements-r4" x="134.2" y="800.8" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-success-outputs</text><text class="breeze-sbom-generate-providers-requirements-r1" x="378.2" y="800.8" textLength="927.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">Whether&#160;to&#160;include&#160;outputs&#160;of&#160;successful&#160;parallel&#160;runs&#160;(skipped&#160;by&#160;default).</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="825.2" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="849.6" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="849.6" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-generate-providers-requirements-r5" x="219.6" y="849.6" textLength="1220" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1439.6" y="849.6" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">─╮</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="874" textLength="97.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">-verbose</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="874" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">-v</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="874" textLength="585.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="898.4" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-dry</text><text class="breeze-sbom-generate-providers-requirements-r4" x="85.4" y="898.4" textLength="48.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-run</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="898.4" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-D</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="898.4" textLength="719.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="922.8" textLength="85.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-answer</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="922.8" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-a</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="922.8" textLength="317.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">Force&#160;answer&#160;to&#160;questions.</text><text class="breeze-sbom-generate-providers-requirements-r6" x="536.8" y="922.8" textLength="353.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">(y&#160;|&#160;n&#160;|&#160;q&#160;|&#160;yes&#160;|&#160;no&#160;|&#160;quit)</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="947.2" textLength="61" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-help</text><text class="breeze-sbom-generate-providers-requirements-r7" x="158.6" y="947.2" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-h</text><text class="breeze-sbom-generate-providers-requirements-r1" x="207.4" y="947.2" textLength="329.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-sbom-generate-providers-requirements-r5" x="1451.8" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">
+</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="971.6" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_sbom_generate-providers-requirements.txt b/images/breeze/output_sbom_generate-providers-requirements.txt
index 1af97158bba3f..f53f468d67e0e 100644
--- a/images/breeze/output_sbom_generate-providers-requirements.txt
+++ b/images/breeze/output_sbom_generate-providers-requirements.txt
@@ -1 +1 @@
-344968a060e00ace19738cca47d70641
+38c82663d57bbd39a51446325c896312
diff --git a/images/breeze/output_static-checks.svg b/images/breeze/output_static-checks.svg
index 2559034dec776..51ee1a2b3ee1e 100644
--- a/images/breeze/output_static-checks.svg
+++ b/images/breeze/output_static-checks.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2002.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2026.3999999999999" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-static-checks-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1951.0" />
+      <rect x="0" y="0" width="1463.0" height="1975.3999999999999" />
     </clipPath>
     <clipPath id="breeze-static-checks-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -282,9 +282,12 @@
 <clipPath id="breeze-static-checks-line-78">
     <rect x="0" y="1904.7" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-static-checks-line-79">
+    <rect x="0" y="1929.1" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2000" rx="8"/><text class="breeze-static-checks-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;static-checks</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2024.4" rx="8"/><text class="breeze-static-checks-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;static-checks</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -329,51 +332,52 @@
 </text><text class="breeze-static-checks-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-32)">│</text><text class="breeze-static-checks-r7" x="451.4" y="800.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-32)">check-urlparse-usage-in-code&#160;|&#160;check-usage-of-re2-over-re&#160;|&#160;check-xml&#160;|&#160;codespell</text><text class="breeze-static-checks-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-32)">│</text><text class="breeze-static-checks-r1" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-32)">
 </text><text class="breeze-static-checks-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-33)">│</text><text class="breeze-static-checks-r7" x="451.4" y="825.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-33)">|&#160;compile-www-assets&#160;|&#160;compile-www-assets-dev&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-33)">│</text><text class="breeze-static-checks-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-33)">
 </text><text class="breeze-static-checks-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-34)">│</text><text class="breeze-static-checks-r7" x="451.4" y="849.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-34)">create-missing-init-py-files-tests&#160;|&#160;debug-statements&#160;|&#160;detect-private-key&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="849.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-34)">│</text><text class="breeze-static-checks-r1" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-34)">
-</text><text class="breeze-static-checks-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r7" x="451.4" y="874" textLength="988.2" clip-path="url(#breeze-static-checks-line-35)">doctoc&#160;|&#160;end-of-file-fixer&#160;|&#160;fix-encoding-pragma&#160;|&#160;flynt&#160;|&#160;generate-pypi-readme&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">
-</text><text class="breeze-static-checks-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r7" x="451.4" y="898.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-36)">identity&#160;|&#160;insert-license&#160;|&#160;lint-chart-schema&#160;|&#160;lint-css&#160;|&#160;lint-dockerfile&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">
-</text><text class="breeze-static-checks-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r7" x="451.4" y="922.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-37)">lint-helm-chart&#160;|&#160;lint-json-schema&#160;|&#160;lint-markdown&#160;|&#160;lint-openapi&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r1" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">
-</text><text class="breeze-static-checks-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r7" x="451.4" y="947.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-38)">mixed-line-ending&#160;|&#160;mypy-core&#160;|&#160;mypy-dev&#160;|&#160;mypy-docs&#160;|&#160;mypy-providers&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r1" x="1464" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">
-</text><text class="breeze-static-checks-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r7" x="451.4" y="971.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-39)">pretty-format-json&#160;|&#160;python-no-log-warn&#160;|&#160;replace-bad-characters&#160;|&#160;rst-backticks&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">
-</text><text class="breeze-static-checks-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r7" x="451.4" y="996" textLength="988.2" clip-path="url(#breeze-static-checks-line-40)">|&#160;ruff&#160;|&#160;ruff-format&#160;|&#160;shellcheck&#160;|&#160;trailing-whitespace&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r1" x="1464" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">
-</text><text class="breeze-static-checks-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1020.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-41)">ts-compile-format-lint-www&#160;|&#160;update-black-version&#160;|&#160;update-breeze-cmd-output&#160;|&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r1" x="1464" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">
-</text><text class="breeze-static-checks-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1044.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-42)">update-breeze-readme-config-hash&#160;|&#160;update-common-sql-api-stubs&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r1" x="1464" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">
-</text><text class="breeze-static-checks-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1069.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-43)">update-er-diagram&#160;|&#160;update-extras&#160;|&#160;update-in-the-wild-to-be-sorted&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r1" x="1464" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">
-</text><text class="breeze-static-checks-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1093.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-44)">update-inlined-dockerfile-scripts&#160;|&#160;update-installed-providers-to-be-sorted&#160;|&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r1" x="1464" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">
-</text><text class="breeze-static-checks-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1118" textLength="988.2" clip-path="url(#breeze-static-checks-line-45)">update-local-yml-file&#160;|&#160;update-migration-references&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r1" x="1464" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">
-</text><text class="breeze-static-checks-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1142.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-46)">update-providers-dependencies&#160;|&#160;update-spelling-wordlist-to-be-sorted&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r1" x="1464" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">
-</text><text class="breeze-static-checks-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1166.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-47)">update-supported-versions&#160;|&#160;update-vendored-in-k8s-json-schema&#160;|&#160;update-version&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r1" x="1464" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">
-</text><text class="breeze-static-checks-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1191.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-48)">validate-pyproject&#160;|&#160;yamllint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r1" x="1464" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">
-</text><text class="breeze-static-checks-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1215.6" textLength="61" clip-path="url(#breeze-static-checks-line-49)">-show</text><text class="breeze-static-checks-r4" x="97.6" y="1215.6" textLength="195.2" clip-path="url(#breeze-static-checks-line-49)">-diff-on-failure</text><text class="breeze-static-checks-r6" x="402.6" y="1215.6" textLength="24.4" clip-path="url(#breeze-static-checks-line-49)">-s</text><text class="breeze-static-checks-r1" x="451.4" y="1215.6" textLength="524.6" clip-path="url(#breeze-static-checks-line-49)">Show&#160;diff&#160;for&#160;files&#160;modified&#160;by&#160;the&#160;checks.</text><text class="breeze-static-checks-r5" x="1451.8" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">
-</text><text class="breeze-static-checks-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1240" textLength="134.2" clip-path="url(#breeze-static-checks-line-50)">-initialize</text><text class="breeze-static-checks-r4" x="170.8" y="1240" textLength="146.4" clip-path="url(#breeze-static-checks-line-50)">-environment</text><text class="breeze-static-checks-r1" x="451.4" y="1240" textLength="549" clip-path="url(#breeze-static-checks-line-50)">Initialize&#160;environment&#160;before&#160;running&#160;checks.</text><text class="breeze-static-checks-r5" x="1451.8" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r1" x="1464" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">
-</text><text class="breeze-static-checks-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1264.4" textLength="48.8" clip-path="url(#breeze-static-checks-line-51)">-max</text><text class="breeze-static-checks-r4" x="85.4" y="1264.4" textLength="292.8" clip-path="url(#breeze-static-checks-line-51)">-initialization-attempts</text><text class="breeze-static-checks-r1" x="451.4" y="1264.4" textLength="854" clip-path="url(#breeze-static-checks-line-51)">Maximum&#160;number&#160;of&#160;attempts&#160;to&#160;initialize&#160;environment&#160;before&#160;giving&#160;up.</text><text class="breeze-static-checks-r5" x="1451.8" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">│</text><text class="breeze-static-checks-r1" x="1464" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">
-</text><text class="breeze-static-checks-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1288.8" textLength="854" clip-path="url(#breeze-static-checks-line-52)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">│</text><text class="breeze-static-checks-r1" x="1464" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">
-</text><text class="breeze-static-checks-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r5" x="451.4" y="1313.2" textLength="854" clip-path="url(#breeze-static-checks-line-53)">[default:&#160;3;&#160;1&lt;=x&lt;=10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r1" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">
-</text><text class="breeze-static-checks-r5" x="0" y="1337.6" textLength="1464" clip-path="url(#breeze-static-checks-line-54)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">
-</text><text class="breeze-static-checks-r5" x="0" y="1362" textLength="24.4" clip-path="url(#breeze-static-checks-line-55)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1362" textLength="463.6" clip-path="url(#breeze-static-checks-line-55)">&#160;Selecting&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on&#160;</text><text class="breeze-static-checks-r5" x="488" y="1362" textLength="951.6" clip-path="url(#breeze-static-checks-line-55)">──────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1362" textLength="24.4" clip-path="url(#breeze-static-checks-line-55)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">
-</text><text class="breeze-static-checks-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1386.4" textLength="61" clip-path="url(#breeze-static-checks-line-56)">-file</text><text class="breeze-static-checks-r6" x="256.2" y="1386.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-56)">-f</text><text class="breeze-static-checks-r1" x="305" y="1386.4" textLength="427" clip-path="url(#breeze-static-checks-line-56)">List&#160;of&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on.</text><text class="breeze-static-checks-r7" x="744.2" y="1386.4" textLength="73.2" clip-path="url(#breeze-static-checks-line-56)">(PATH)</text><text class="breeze-static-checks-r5" x="1451.8" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">│</text><text class="breeze-static-checks-r1" x="1464" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">
-</text><text class="breeze-static-checks-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1410.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-57)">-all</text><text class="breeze-static-checks-r4" x="85.4" y="1410.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-57)">-files</text><text class="breeze-static-checks-r6" x="256.2" y="1410.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-57)">-a</text><text class="breeze-static-checks-r1" x="305" y="1410.8" textLength="292.8" clip-path="url(#breeze-static-checks-line-57)">Run&#160;checks&#160;on&#160;all&#160;files.</text><text class="breeze-static-checks-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">
-</text><text class="breeze-static-checks-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1435.2" textLength="85.4" clip-path="url(#breeze-static-checks-line-58)">-commit</text><text class="breeze-static-checks-r4" x="122" y="1435.2" textLength="48.8" clip-path="url(#breeze-static-checks-line-58)">-ref</text><text class="breeze-static-checks-r6" x="256.2" y="1435.2" textLength="24.4" clip-path="url(#breeze-static-checks-line-58)">-r</text><text class="breeze-static-checks-r1" x="305" y="1435.2" textLength="1134.6" clip-path="url(#breeze-static-checks-line-58)">Run&#160;checks&#160;for&#160;this&#160;commit&#160;reference&#160;only&#160;(can&#160;be&#160;any&#160;git&#160;commit-ish&#160;reference).&#160;Mutually&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">
-</text><text class="breeze-static-checks-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r1" x="305" y="1459.6" textLength="183" clip-path="url(#breeze-static-checks-line-59)">exclusive&#160;with&#160;</text><text class="breeze-static-checks-r4" x="488" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">-</text><text class="breeze-static-checks-r4" x="500.2" y="1459.6" textLength="61" clip-path="url(#breeze-static-checks-line-59)">-last</text><text class="breeze-static-checks-r4" x="561.2" y="1459.6" textLength="85.4" clip-path="url(#breeze-static-checks-line-59)">-commit</text><text class="breeze-static-checks-r1" x="646.6" y="1459.6" textLength="793" clip-path="url(#breeze-static-checks-line-59)">.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">
-</text><text class="breeze-static-checks-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r7" x="305" y="1484" textLength="1134.6" clip-path="url(#breeze-static-checks-line-60)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">
-</text><text class="breeze-static-checks-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1508.4" textLength="61" clip-path="url(#breeze-static-checks-line-61)">-last</text><text class="breeze-static-checks-r4" x="97.6" y="1508.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-61)">-commit</text><text class="breeze-static-checks-r6" x="256.2" y="1508.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-61)">-c</text><text class="breeze-static-checks-r1" x="305" y="1508.4" textLength="793" clip-path="url(#breeze-static-checks-line-61)">Run&#160;checks&#160;for&#160;all&#160;files&#160;in&#160;last&#160;commit.&#160;Mutually&#160;exclusive&#160;with&#160;</text><text class="breeze-static-checks-r4" x="1098" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">-</text><text class="breeze-static-checks-r4" x="1110.2" y="1508.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-61)">-commit</text><text class="breeze-static-checks-r4" x="1195.6" y="1508.4" textLength="48.8" clip-path="url(#breeze-static-checks-line-61)">-ref</text><text class="breeze-static-checks-r1" x="1244.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">.</text><text class="breeze-static-checks-r5" x="1451.8" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">│</text><text class="breeze-static-checks-r1" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">
-</text><text class="breeze-static-checks-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1532.8" textLength="61" clip-path="url(#breeze-static-checks-line-62)">-only</text><text class="breeze-static-checks-r4" x="97.6" y="1532.8" textLength="134.2" clip-path="url(#breeze-static-checks-line-62)">-my-changes</text><text class="breeze-static-checks-r6" x="256.2" y="1532.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-62)">-m</text><text class="breeze-static-checks-r1" x="305" y="1532.8" textLength="1134.6" clip-path="url(#breeze-static-checks-line-62)">Run&#160;checks&#160;for&#160;commits&#160;belonging&#160;to&#160;my&#160;PR&#160;only:&#160;for&#160;all&#160;commits&#160;between&#160;merge&#160;base&#160;to&#160;`main`&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">│</text><text class="breeze-static-checks-r1" x="1464" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">
-</text><text class="breeze-static-checks-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r1" x="305" y="1557.2" textLength="1134.6" clip-path="url(#breeze-static-checks-line-63)">branch&#160;and&#160;HEAD&#160;of&#160;your&#160;branch.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r1" x="1464" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">
-</text><text class="breeze-static-checks-r5" x="0" y="1581.6" textLength="1464" clip-path="url(#breeze-static-checks-line-64)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">
-</text><text class="breeze-static-checks-r5" x="0" y="1606" textLength="24.4" clip-path="url(#breeze-static-checks-line-65)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1606" textLength="463.6" clip-path="url(#breeze-static-checks-line-65)">&#160;Building&#160;image&#160;before&#160;running&#160;checks&#160;</text><text class="breeze-static-checks-r5" x="488" y="1606" textLength="951.6" clip-path="url(#breeze-static-checks-line-65)">──────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1606" textLength="24.4" clip-path="url(#breeze-static-checks-line-65)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">
-</text><text class="breeze-static-checks-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1630.4" textLength="61" clip-path="url(#breeze-static-checks-line-66)">-skip</text><text class="breeze-static-checks-r4" x="97.6" y="1630.4" textLength="244" clip-path="url(#breeze-static-checks-line-66)">-image-upgrade-check</text><text class="breeze-static-checks-r1" x="414.8" y="1630.4" textLength="536.8" clip-path="url(#breeze-static-checks-line-66)">Skip&#160;checking&#160;if&#160;the&#160;CI&#160;image&#160;is&#160;up&#160;to&#160;date.</text><text class="breeze-static-checks-r5" x="1451.8" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">│</text><text class="breeze-static-checks-r1" x="1464" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">
-</text><text class="breeze-static-checks-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1654.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-67)">-force</text><text class="breeze-static-checks-r4" x="109.8" y="1654.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-67)">-build</text><text class="breeze-static-checks-r1" x="414.8" y="1654.8" textLength="707.6" clip-path="url(#breeze-static-checks-line-67)">Force&#160;image&#160;build&#160;no&#160;matter&#160;if&#160;it&#160;is&#160;determined&#160;as&#160;needed.</text><text class="breeze-static-checks-r5" x="1451.8" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">
-</text><text class="breeze-static-checks-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1679.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-68)">-image</text><text class="breeze-static-checks-r4" x="109.8" y="1679.2" textLength="48.8" clip-path="url(#breeze-static-checks-line-68)">-tag</text><text class="breeze-static-checks-r1" x="414.8" y="1679.2" textLength="695.4" clip-path="url(#breeze-static-checks-line-68)">Tag&#160;of&#160;the&#160;image&#160;which&#160;is&#160;used&#160;to&#160;run&#160;the&#160;image&#160;(implies&#160;</text><text class="breeze-static-checks-r4" x="1110.2" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">-</text><text class="breeze-static-checks-r4" x="1122.4" y="1679.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-68)">-mount</text><text class="breeze-static-checks-r4" x="1195.6" y="1679.2" textLength="97.6" clip-path="url(#breeze-static-checks-line-68)">-sources</text><text class="breeze-static-checks-r1" x="1293.2" y="1679.2" textLength="85.4" clip-path="url(#breeze-static-checks-line-68)">=skip).</text><text class="breeze-static-checks-r5" x="1451.8" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r1" x="1464" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">
-</text><text class="breeze-static-checks-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">│</text><text class="breeze-static-checks-r7" x="414.8" y="1703.6" textLength="963.8" clip-path="url(#breeze-static-checks-line-69)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">│</text><text class="breeze-static-checks-r1" x="1464" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">
-</text><text class="breeze-static-checks-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">│</text><text class="breeze-static-checks-r5" x="414.8" y="1728" textLength="963.8" clip-path="url(#breeze-static-checks-line-70)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">│</text><text class="breeze-static-checks-r1" x="1464" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">
-</text><text class="breeze-static-checks-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1752.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-71)">-github</text><text class="breeze-static-checks-r4" x="122" y="1752.4" textLength="134.2" clip-path="url(#breeze-static-checks-line-71)">-repository</text><text class="breeze-static-checks-r6" x="366" y="1752.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-71)">-g</text><text class="breeze-static-checks-r1" x="414.8" y="1752.4" textLength="585.6" clip-path="url(#breeze-static-checks-line-71)">GitHub&#160;repository&#160;used&#160;to&#160;pull,&#160;push&#160;run&#160;images.</text><text class="breeze-static-checks-r7" x="1012.6" y="1752.4" textLength="73.2" clip-path="url(#breeze-static-checks-line-71)">(TEXT)</text><text class="breeze-static-checks-r5" x="1098" y="1752.4" textLength="305" clip-path="url(#breeze-static-checks-line-71)">[default:&#160;apache/airflow]</text><text class="breeze-static-checks-r5" x="1451.8" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r1" x="1464" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">
-</text><text class="breeze-static-checks-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1776.8" textLength="97.6" clip-path="url(#breeze-static-checks-line-72)">-builder</text><text class="breeze-static-checks-r1" x="414.8" y="1776.8" textLength="756.4" clip-path="url(#breeze-static-checks-line-72)">Buildx&#160;builder&#160;used&#160;to&#160;perform&#160;`docker&#160;buildx&#160;build`&#160;commands.</text><text class="breeze-static-checks-r7" x="1183.4" y="1776.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-72)">(TEXT)</text><text class="breeze-static-checks-r5" x="1451.8" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r1" x="1464" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">
-</text><text class="breeze-static-checks-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r5" x="414.8" y="1801.2" textLength="756.4" clip-path="url(#breeze-static-checks-line-73)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r1" x="1464" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">
-</text><text class="breeze-static-checks-r5" x="0" y="1825.6" textLength="1464" clip-path="url(#breeze-static-checks-line-74)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">
-</text><text class="breeze-static-checks-r5" x="0" y="1850" textLength="24.4" clip-path="url(#breeze-static-checks-line-75)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1850" textLength="195.2" clip-path="url(#breeze-static-checks-line-75)">&#160;Common&#160;options&#160;</text><text class="breeze-static-checks-r5" x="219.6" y="1850" textLength="1220" clip-path="url(#breeze-static-checks-line-75)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1850" textLength="24.4" clip-path="url(#breeze-static-checks-line-75)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1850" textLength="12.2" clip-path="url(#breeze-static-checks-line-75)">
-</text><text class="breeze-static-checks-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-76)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1874.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-76)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1874.4" textLength="48.8" clip-path="url(#breeze-static-checks-line-76)">-dry</text><text class="breeze-static-checks-r4" x="85.4" y="1874.4" textLength="48.8" clip-path="url(#breeze-static-checks-line-76)">-run</text><text class="breeze-static-checks-r6" x="158.6" y="1874.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-76)">-D</text><text class="breeze-static-checks-r1" x="207.4" y="1874.4" textLength="719.8" clip-path="url(#breeze-static-checks-line-76)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-static-checks-r5" x="1451.8" y="1874.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-76)">│</text><text class="breeze-static-checks-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-76)">
-</text><text class="breeze-static-checks-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1898.8" textLength="97.6" clip-path="url(#breeze-static-checks-line-77)">-verbose</text><text class="breeze-static-checks-r6" x="158.6" y="1898.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-77)">-v</text><text class="breeze-static-checks-r1" x="207.4" y="1898.8" textLength="585.6" clip-path="url(#breeze-static-checks-line-77)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-static-checks-r5" x="1451.8" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">│</text><text class="breeze-static-checks-r1" x="1464" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">
-</text><text class="breeze-static-checks-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1923.2" textLength="61" clip-path="url(#breeze-static-checks-line-78)">-help</text><text class="breeze-static-checks-r6" x="158.6" y="1923.2" textLength="24.4" clip-path="url(#breeze-static-checks-line-78)">-h</text><text class="breeze-static-checks-r1" x="207.4" y="1923.2" textLength="329.4" clip-path="url(#breeze-static-checks-line-78)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-static-checks-r5" x="1451.8" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">│</text><text class="breeze-static-checks-r1" x="1464" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">
-</text><text class="breeze-static-checks-r5" x="0" y="1947.6" textLength="1464" clip-path="url(#breeze-static-checks-line-79)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1947.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-79)">
+</text><text class="breeze-static-checks-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r7" x="451.4" y="874" textLength="988.2" clip-path="url(#breeze-static-checks-line-35)">doctoc&#160;|&#160;end-of-file-fixer&#160;|&#160;fix-encoding-pragma&#160;|&#160;flynt&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">
+</text><text class="breeze-static-checks-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r7" x="451.4" y="898.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-36)">generate-airflow-diagrams&#160;|&#160;generate-pypi-readme&#160;|&#160;identity&#160;|&#160;insert-license&#160;|&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">
+</text><text class="breeze-static-checks-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r7" x="451.4" y="922.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-37)">lint-chart-schema&#160;|&#160;lint-css&#160;|&#160;lint-dockerfile&#160;|&#160;lint-helm-chart&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r1" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">
+</text><text class="breeze-static-checks-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r7" x="451.4" y="947.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-38)">lint-json-schema&#160;|&#160;lint-markdown&#160;|&#160;lint-openapi&#160;|&#160;mixed-line-ending&#160;|&#160;mypy-core&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r1" x="1464" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">
+</text><text class="breeze-static-checks-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r7" x="451.4" y="971.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-39)">mypy-dev&#160;|&#160;mypy-docs&#160;|&#160;mypy-providers&#160;|&#160;pretty-format-json&#160;|&#160;python-no-log-warn&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">
+</text><text class="breeze-static-checks-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r7" x="451.4" y="996" textLength="988.2" clip-path="url(#breeze-static-checks-line-40)">replace-bad-characters&#160;|&#160;rst-backticks&#160;|&#160;ruff&#160;|&#160;ruff-format&#160;|&#160;shellcheck&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r1" x="1464" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">
+</text><text class="breeze-static-checks-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1020.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-41)">trailing-whitespace&#160;|&#160;ts-compile-format-lint-www&#160;|&#160;update-black-version&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r1" x="1464" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">
+</text><text class="breeze-static-checks-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1044.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-42)">update-breeze-cmd-output&#160;|&#160;update-breeze-readme-config-hash&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r1" x="1464" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">
+</text><text class="breeze-static-checks-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1069.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-43)">update-common-sql-api-stubs&#160;|&#160;update-er-diagram&#160;|&#160;update-extras&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r1" x="1464" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">
+</text><text class="breeze-static-checks-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1093.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-44)">update-in-the-wild-to-be-sorted&#160;|&#160;update-inlined-dockerfile-scripts&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r1" x="1464" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">
+</text><text class="breeze-static-checks-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1118" textLength="988.2" clip-path="url(#breeze-static-checks-line-45)">update-installed-providers-to-be-sorted&#160;|&#160;update-local-yml-file&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r1" x="1464" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">
+</text><text class="breeze-static-checks-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1142.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-46)">update-migration-references&#160;|&#160;update-providers-dependencies&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r1" x="1464" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">
+</text><text class="breeze-static-checks-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1166.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-47)">update-spelling-wordlist-to-be-sorted&#160;|&#160;update-supported-versions&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r1" x="1464" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">
+</text><text class="breeze-static-checks-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1191.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-48)">update-vendored-in-k8s-json-schema&#160;|&#160;update-version&#160;|&#160;validate-pyproject&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r1" x="1464" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">
+</text><text class="breeze-static-checks-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1215.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-49)">yamllint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">
+</text><text class="breeze-static-checks-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1240" textLength="61" clip-path="url(#breeze-static-checks-line-50)">-show</text><text class="breeze-static-checks-r4" x="97.6" y="1240" textLength="195.2" clip-path="url(#breeze-static-checks-line-50)">-diff-on-failure</text><text class="breeze-static-checks-r6" x="402.6" y="1240" textLength="24.4" clip-path="url(#breeze-static-checks-line-50)">-s</text><text class="breeze-static-checks-r1" x="451.4" y="1240" textLength="524.6" clip-path="url(#breeze-static-checks-line-50)">Show&#160;diff&#160;for&#160;files&#160;modified&#160;by&#160;the&#160;checks.</text><text class="breeze-static-checks-r5" x="1451.8" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r1" x="1464" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">
+</text><text class="breeze-static-checks-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1264.4" textLength="134.2" clip-path="url(#breeze-static-checks-line-51)">-initialize</text><text class="breeze-static-checks-r4" x="170.8" y="1264.4" textLength="146.4" clip-path="url(#breeze-static-checks-line-51)">-environment</text><text class="breeze-static-checks-r1" x="451.4" y="1264.4" textLength="549" clip-path="url(#breeze-static-checks-line-51)">Initialize&#160;environment&#160;before&#160;running&#160;checks.</text><text class="breeze-static-checks-r5" x="1451.8" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">│</text><text class="breeze-static-checks-r1" x="1464" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">
+</text><text class="breeze-static-checks-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1288.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-52)">-max</text><text class="breeze-static-checks-r4" x="85.4" y="1288.8" textLength="292.8" clip-path="url(#breeze-static-checks-line-52)">-initialization-attempts</text><text class="breeze-static-checks-r1" x="451.4" y="1288.8" textLength="854" clip-path="url(#breeze-static-checks-line-52)">Maximum&#160;number&#160;of&#160;attempts&#160;to&#160;initialize&#160;environment&#160;before&#160;giving&#160;up.</text><text class="breeze-static-checks-r5" x="1451.8" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">│</text><text class="breeze-static-checks-r1" x="1464" y="1288.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-52)">
+</text><text class="breeze-static-checks-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1313.2" textLength="854" clip-path="url(#breeze-static-checks-line-53)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r1" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">
+</text><text class="breeze-static-checks-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">│</text><text class="breeze-static-checks-r5" x="451.4" y="1337.6" textLength="854" clip-path="url(#breeze-static-checks-line-54)">[default:&#160;3;&#160;1&lt;=x&lt;=10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">│</text><text class="breeze-static-checks-r1" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">
+</text><text class="breeze-static-checks-r5" x="0" y="1362" textLength="1464" clip-path="url(#breeze-static-checks-line-55)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">
+</text><text class="breeze-static-checks-r5" x="0" y="1386.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-56)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1386.4" textLength="463.6" clip-path="url(#breeze-static-checks-line-56)">&#160;Selecting&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on&#160;</text><text class="breeze-static-checks-r5" x="488" y="1386.4" textLength="951.6" clip-path="url(#breeze-static-checks-line-56)">──────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1386.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-56)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">
+</text><text class="breeze-static-checks-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1410.8" textLength="61" clip-path="url(#breeze-static-checks-line-57)">-file</text><text class="breeze-static-checks-r6" x="256.2" y="1410.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-57)">-f</text><text class="breeze-static-checks-r1" x="305" y="1410.8" textLength="427" clip-path="url(#breeze-static-checks-line-57)">List&#160;of&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on.</text><text class="breeze-static-checks-r7" x="744.2" y="1410.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-57)">(PATH)</text><text class="breeze-static-checks-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">
+</text><text class="breeze-static-checks-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1435.2" textLength="48.8" clip-path="url(#breeze-static-checks-line-58)">-all</text><text class="breeze-static-checks-r4" x="85.4" y="1435.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-58)">-files</text><text class="breeze-static-checks-r6" x="256.2" y="1435.2" textLength="24.4" clip-path="url(#breeze-static-checks-line-58)">-a</text><text class="breeze-static-checks-r1" x="305" y="1435.2" textLength="292.8" clip-path="url(#breeze-static-checks-line-58)">Run&#160;checks&#160;on&#160;all&#160;files.</text><text class="breeze-static-checks-r5" x="1451.8" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">
+</text><text class="breeze-static-checks-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1459.6" textLength="85.4" clip-path="url(#breeze-static-checks-line-59)">-commit</text><text class="breeze-static-checks-r4" x="122" y="1459.6" textLength="48.8" clip-path="url(#breeze-static-checks-line-59)">-ref</text><text class="breeze-static-checks-r6" x="256.2" y="1459.6" textLength="24.4" clip-path="url(#breeze-static-checks-line-59)">-r</text><text class="breeze-static-checks-r1" x="305" y="1459.6" textLength="1134.6" clip-path="url(#breeze-static-checks-line-59)">Run&#160;checks&#160;for&#160;this&#160;commit&#160;reference&#160;only&#160;(can&#160;be&#160;any&#160;git&#160;commit-ish&#160;reference).&#160;Mutually&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">
+</text><text class="breeze-static-checks-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r1" x="305" y="1484" textLength="183" clip-path="url(#breeze-static-checks-line-60)">exclusive&#160;with&#160;</text><text class="breeze-static-checks-r4" x="488" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">-</text><text class="breeze-static-checks-r4" x="500.2" y="1484" textLength="61" clip-path="url(#breeze-static-checks-line-60)">-last</text><text class="breeze-static-checks-r4" x="561.2" y="1484" textLength="85.4" clip-path="url(#breeze-static-checks-line-60)">-commit</text><text class="breeze-static-checks-r1" x="646.6" y="1484" textLength="793" clip-path="url(#breeze-static-checks-line-60)">.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">
+</text><text class="breeze-static-checks-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">│</text><text class="breeze-static-checks-r7" x="305" y="1508.4" textLength="1134.6" clip-path="url(#breeze-static-checks-line-61)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">│</text><text class="breeze-static-checks-r1" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">
+</text><text class="breeze-static-checks-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1532.8" textLength="61" clip-path="url(#breeze-static-checks-line-62)">-last</text><text class="breeze-static-checks-r4" x="97.6" y="1532.8" textLength="85.4" clip-path="url(#breeze-static-checks-line-62)">-commit</text><text class="breeze-static-checks-r6" x="256.2" y="1532.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-62)">-c</text><text class="breeze-static-checks-r1" x="305" y="1532.8" textLength="793" clip-path="url(#breeze-static-checks-line-62)">Run&#160;checks&#160;for&#160;all&#160;files&#160;in&#160;last&#160;commit.&#160;Mutually&#160;exclusive&#160;with&#160;</text><text class="breeze-static-checks-r4" x="1098" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">-</text><text class="breeze-static-checks-r4" x="1110.2" y="1532.8" textLength="85.4" clip-path="url(#breeze-static-checks-line-62)">-commit</text><text class="breeze-static-checks-r4" x="1195.6" y="1532.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-62)">-ref</text><text class="breeze-static-checks-r1" x="1244.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">.</text><text class="breeze-static-checks-r5" x="1451.8" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">│</text><text class="breeze-static-checks-r1" x="1464" y="1532.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-62)">
+</text><text class="breeze-static-checks-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1557.2" textLength="61" clip-path="url(#breeze-static-checks-line-63)">-only</text><text class="breeze-static-checks-r4" x="97.6" y="1557.2" textLength="134.2" clip-path="url(#breeze-static-checks-line-63)">-my-changes</text><text class="breeze-static-checks-r6" x="256.2" y="1557.2" textLength="24.4" clip-path="url(#breeze-static-checks-line-63)">-m</text><text class="breeze-static-checks-r1" x="305" y="1557.2" textLength="1134.6" clip-path="url(#breeze-static-checks-line-63)">Run&#160;checks&#160;for&#160;commits&#160;belonging&#160;to&#160;my&#160;PR&#160;only:&#160;for&#160;all&#160;commits&#160;between&#160;merge&#160;base&#160;to&#160;`main`&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r1" x="1464" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">
+</text><text class="breeze-static-checks-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">│</text><text class="breeze-static-checks-r1" x="305" y="1581.6" textLength="1134.6" clip-path="url(#breeze-static-checks-line-64)">branch&#160;and&#160;HEAD&#160;of&#160;your&#160;branch.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">│</text><text class="breeze-static-checks-r1" x="1464" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">
+</text><text class="breeze-static-checks-r5" x="0" y="1606" textLength="1464" clip-path="url(#breeze-static-checks-line-65)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">
+</text><text class="breeze-static-checks-r5" x="0" y="1630.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-66)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1630.4" textLength="463.6" clip-path="url(#breeze-static-checks-line-66)">&#160;Building&#160;image&#160;before&#160;running&#160;checks&#160;</text><text class="breeze-static-checks-r5" x="488" y="1630.4" textLength="951.6" clip-path="url(#breeze-static-checks-line-66)">──────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1630.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-66)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">
+</text><text class="breeze-static-checks-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1654.8" textLength="61" clip-path="url(#breeze-static-checks-line-67)">-skip</text><text class="breeze-static-checks-r4" x="97.6" y="1654.8" textLength="244" clip-path="url(#breeze-static-checks-line-67)">-image-upgrade-check</text><text class="breeze-static-checks-r1" x="414.8" y="1654.8" textLength="536.8" clip-path="url(#breeze-static-checks-line-67)">Skip&#160;checking&#160;if&#160;the&#160;CI&#160;image&#160;is&#160;up&#160;to&#160;date.</text><text class="breeze-static-checks-r5" x="1451.8" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">
+</text><text class="breeze-static-checks-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1679.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-68)">-force</text><text class="breeze-static-checks-r4" x="109.8" y="1679.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-68)">-build</text><text class="breeze-static-checks-r1" x="414.8" y="1679.2" textLength="707.6" clip-path="url(#breeze-static-checks-line-68)">Force&#160;image&#160;build&#160;no&#160;matter&#160;if&#160;it&#160;is&#160;determined&#160;as&#160;needed.</text><text class="breeze-static-checks-r5" x="1451.8" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r1" x="1464" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">
+</text><text class="breeze-static-checks-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1703.6" textLength="73.2" clip-path="url(#breeze-static-checks-line-69)">-image</text><text class="breeze-static-checks-r4" x="109.8" y="1703.6" textLength="48.8" clip-path="url(#breeze-static-checks-line-69)">-tag</text><text class="breeze-static-checks-r1" x="414.8" y="1703.6" textLength="695.4" clip-path="url(#breeze-static-checks-line-69)">Tag&#160;of&#160;the&#160;image&#160;which&#160;is&#160;used&#160;to&#160;run&#160;the&#160;image&#160;(implies&#160;</text><text class="breeze-static-checks-r4" x="1110.2" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">-</text><text class="breeze-static-checks-r4" x="1122.4" y="1703.6" textLength="73.2" clip-path="url(#breeze-static-checks-line-69)">-mount</text><text class="breeze-static-checks-r4" x="1195.6" y="1703.6" textLength="97.6" clip-path="url(#breeze-static-checks-line-69)">-sources</text><text class="breeze-static-checks-r1" x="1293.2" y="1703.6" textLength="85.4" clip-path="url(#breeze-static-checks-line-69)">=skip).</text><text class="breeze-static-checks-r5" x="1451.8" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">│</text><text class="breeze-static-checks-r1" x="1464" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">
+</text><text class="breeze-static-checks-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">│</text><text class="breeze-static-checks-r7" x="414.8" y="1728" textLength="963.8" clip-path="url(#breeze-static-checks-line-70)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">│</text><text class="breeze-static-checks-r1" x="1464" y="1728" textLength="12.2" clip-path="url(#breeze-static-checks-line-70)">
+</text><text class="breeze-static-checks-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r5" x="414.8" y="1752.4" textLength="963.8" clip-path="url(#breeze-static-checks-line-71)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r1" x="1464" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">
+</text><text class="breeze-static-checks-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1776.8" textLength="85.4" clip-path="url(#breeze-static-checks-line-72)">-github</text><text class="breeze-static-checks-r4" x="122" y="1776.8" textLength="134.2" clip-path="url(#breeze-static-checks-line-72)">-repository</text><text class="breeze-static-checks-r6" x="366" y="1776.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-72)">-g</text><text class="breeze-static-checks-r1" x="414.8" y="1776.8" textLength="585.6" clip-path="url(#breeze-static-checks-line-72)">GitHub&#160;repository&#160;used&#160;to&#160;pull,&#160;push&#160;run&#160;images.</text><text class="breeze-static-checks-r7" x="1012.6" y="1776.8" textLength="73.2" clip-path="url(#breeze-static-checks-line-72)">(TEXT)</text><text class="breeze-static-checks-r5" x="1098" y="1776.8" textLength="305" clip-path="url(#breeze-static-checks-line-72)">[default:&#160;apache/airflow]</text><text class="breeze-static-checks-r5" x="1451.8" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r1" x="1464" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">
+</text><text class="breeze-static-checks-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1801.2" textLength="97.6" clip-path="url(#breeze-static-checks-line-73)">-builder</text><text class="breeze-static-checks-r1" x="414.8" y="1801.2" textLength="756.4" clip-path="url(#breeze-static-checks-line-73)">Buildx&#160;builder&#160;used&#160;to&#160;perform&#160;`docker&#160;buildx&#160;build`&#160;commands.</text><text class="breeze-static-checks-r7" x="1183.4" y="1801.2" textLength="73.2" clip-path="url(#breeze-static-checks-line-73)">(TEXT)</text><text class="breeze-static-checks-r5" x="1451.8" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r1" x="1464" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">
+</text><text class="breeze-static-checks-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">│</text><text class="breeze-static-checks-r5" x="414.8" y="1825.6" textLength="756.4" clip-path="url(#breeze-static-checks-line-74)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">│</text><text class="breeze-static-checks-r1" x="1464" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">
+</text><text class="breeze-static-checks-r5" x="0" y="1850" textLength="1464" clip-path="url(#breeze-static-checks-line-75)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1850" textLength="12.2" clip-path="url(#breeze-static-checks-line-75)">
+</text><text class="breeze-static-checks-r5" x="0" y="1874.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-76)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1874.4" textLength="195.2" clip-path="url(#breeze-static-checks-line-76)">&#160;Common&#160;options&#160;</text><text class="breeze-static-checks-r5" x="219.6" y="1874.4" textLength="1220" clip-path="url(#breeze-static-checks-line-76)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-static-checks-r5" x="1439.6" y="1874.4" textLength="24.4" clip-path="url(#breeze-static-checks-line-76)">─╮</text><text class="breeze-static-checks-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-76)">
+</text><text class="breeze-static-checks-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1898.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-77)">-dry</text><text class="breeze-static-checks-r4" x="85.4" y="1898.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-77)">-run</text><text class="breeze-static-checks-r6" x="158.6" y="1898.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-77)">-D</text><text class="breeze-static-checks-r1" x="207.4" y="1898.8" textLength="719.8" clip-path="url(#breeze-static-checks-line-77)">If&#160;dry-run&#160;is&#160;set,&#160;commands&#160;are&#160;only&#160;printed,&#160;not&#160;executed.</text><text class="breeze-static-checks-r5" x="1451.8" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">│</text><text class="breeze-static-checks-r1" x="1464" y="1898.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-77)">
+</text><text class="breeze-static-checks-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1923.2" textLength="97.6" clip-path="url(#breeze-static-checks-line-78)">-verbose</text><text class="breeze-static-checks-r6" x="158.6" y="1923.2" textLength="24.4" clip-path="url(#breeze-static-checks-line-78)">-v</text><text class="breeze-static-checks-r1" x="207.4" y="1923.2" textLength="585.6" clip-path="url(#breeze-static-checks-line-78)">Print&#160;verbose&#160;information&#160;about&#160;performed&#160;steps.</text><text class="breeze-static-checks-r5" x="1451.8" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">│</text><text class="breeze-static-checks-r1" x="1464" y="1923.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-78)">
+</text><text class="breeze-static-checks-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-79)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1947.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-79)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1947.6" textLength="61" clip-path="url(#breeze-static-checks-line-79)">-help</text><text class="breeze-static-checks-r6" x="158.6" y="1947.6" textLength="24.4" clip-path="url(#breeze-static-checks-line-79)">-h</text><text class="breeze-static-checks-r1" x="207.4" y="1947.6" textLength="329.4" clip-path="url(#breeze-static-checks-line-79)">Show&#160;this&#160;message&#160;and&#160;exit.</text><text class="breeze-static-checks-r5" x="1451.8" y="1947.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-79)">│</text><text class="breeze-static-checks-r1" x="1464" y="1947.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-79)">
+</text><text class="breeze-static-checks-r5" x="0" y="1972" textLength="1464" clip-path="url(#breeze-static-checks-line-80)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r1" x="1464" y="1972" textLength="12.2" clip-path="url(#breeze-static-checks-line-80)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_static-checks.txt b/images/breeze/output_static-checks.txt
index 4a583ee4e427e..b53957c36895b 100644
--- a/images/breeze/output_static-checks.txt
+++ b/images/breeze/output_static-checks.txt
@@ -1 +1 @@
-51f4354ec1eaa5a77cfc3dfe43ef1faa
+e8250c9df1b2d0e6be8267102688c14b
diff --git a/images/diagrams/python_multiprocess_logo.png b/images/diagrams/python_multiprocess_logo.png
new file mode 100644
index 0000000000000..4e9f4f3c37327
Binary files /dev/null and b/images/diagrams/python_multiprocess_logo.png differ
diff --git a/scripts/ci/pre_commit/.gitignore b/scripts/ci/pre_commit/.gitignore
new file mode 100644
index 0000000000000..e33609d251c81
--- /dev/null
+++ b/scripts/ci/pre_commit/.gitignore
@@ -0,0 +1 @@
+*.png
diff --git a/scripts/ci/pre_commit/diagram_hash.txt b/scripts/ci/pre_commit/diagram_hash.txt
new file mode 100644
index 0000000000000..ecd0b0067f99b
--- /dev/null
+++ b/scripts/ci/pre_commit/diagram_hash.txt
@@ -0,0 +1 @@
+05097f80bb47432ecb9a22fee5c1c752
diff --git a/scripts/ci/pre_commit/pre_commit_generate_airflow_diagrams.py b/scripts/ci/pre_commit/pre_commit_generate_airflow_diagrams.py
new file mode 100755
index 0000000000000..22f05715b1890
--- /dev/null
+++ b/scripts/ci/pre_commit/pre_commit_generate_airflow_diagrams.py
@@ -0,0 +1,139 @@
+#!/usr/bin/env python3
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+import hashlib
+import os
+from pathlib import Path
+
+from diagrams import Cluster, Diagram, Edge
+from diagrams.custom import Custom
+from diagrams.onprem.client import User
+from diagrams.onprem.database import PostgreSQL
+from diagrams.programming.flowchart import MultipleDocuments
+from rich.console import Console
+
+console = Console(width=400, color_system="standard")
+
+LOCAL_DIR = Path(__file__).parent
+AIRFLOW_SOURCES_ROOT = Path(__file__).parents[3]
+DOCS_IMAGES_DIR = AIRFLOW_SOURCES_ROOT / "docs" / "apache-airflow" / "img"
+PYTHON_MULTIPROCESS_LOGO = AIRFLOW_SOURCES_ROOT / "images" / "diagrams" / "python_multiprocess_logo.png"
+
+BASIC_ARCHITECTURE_IMAGE_NAME = "diagram_basic_airflow_architecture"
+DAG_PROCESSOR_AIRFLOW_ARCHITECTURE_IMAGE_NAME = "diagram_dag_processor_airflow_architecture"
+DIAGRAM_HASH_FILE_NAME = "diagram_hash.txt"
+
+
+def generate_basic_airflow_diagram(filename: str):
+    basic_architecture_image_file = (DOCS_IMAGES_DIR / BASIC_ARCHITECTURE_IMAGE_NAME).with_suffix(".png")
+    console.print(f"[bright_blue]Generating architecture image {basic_architecture_image_file}")
+    with Diagram(name="", show=False, direction="LR", curvestyle="ortho", filename=filename):
+        with Cluster("Parsing & Scheduling"):
+            schedulers = Custom("Scheduler(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+
+        metadata_db = PostgreSQL("Metadata DB")
+
+        dag_author = User("DAG Author")
+        dag_files = MultipleDocuments("DAG files")
+
+        dag_author >> Edge(color="black", style="dashed", reverse=False) >> dag_files
+
+        with Cluster("Execution"):
+            workers = Custom("Worker(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+            triggerer = Custom("Triggerer(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+
+        schedulers - Edge(color="blue", style="dashed", taillabel="Executor") - workers
+
+        schedulers >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+        workers >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+        triggerer >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+
+        operations_user = User("Operations User")
+        with Cluster("UI"):
+            webservers = Custom("Webserver(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+
+        webservers >> Edge(color="black", style="dashed", reverse=True) >> operations_user
+
+        metadata_db >> Edge(color="red", style="dotted", reverse=True) >> webservers
+
+        dag_files >> Edge(color="brown", style="solid") >> workers
+        dag_files >> Edge(color="brown", style="solid") >> schedulers
+        dag_files >> Edge(color="brown", style="solid") >> triggerer
+    console.print(f"[green]Generating architecture image {basic_architecture_image_file}")
+
+
+def generate_dag_processor_airflow_diagram(filename: str):
+    dag_processor_architecture_image_file = (
+        DOCS_IMAGES_DIR / DAG_PROCESSOR_AIRFLOW_ARCHITECTURE_IMAGE_NAME
+    ).with_suffix(".png")
+    console.print(f"[bright_blue]Generating architecture image {dag_processor_architecture_image_file}")
+    with Diagram(name="", show=False, direction="LR", curvestyle="ortho", filename=filename):
+        operations_user = User("Operations User")
+        with Cluster("No DAG Python Code Execution", graph_attr={"bgcolor": "lightgrey"}):
+            with Cluster("Scheduling"):
+                schedulers = Custom("Scheduler(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+
+            with Cluster("UI"):
+                webservers = Custom("Webserver(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+
+        webservers >> Edge(color="black", style="dashed", reverse=True) >> operations_user
+
+        metadata_db = PostgreSQL("Metadata DB")
+
+        dag_author = User("DAG Author")
+        with Cluster("DAG Python Code Execution"):
+            with Cluster("Execution"):
+                workers = Custom("Worker(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+                triggerer = Custom("Triggerer(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+            with Cluster("Parsing"):
+                dag_processors = Custom("DAG\nProcessor(s)", PYTHON_MULTIPROCESS_LOGO.as_posix())
+            dag_files = MultipleDocuments("DAG files")
+
+        dag_author >> Edge(color="black", style="dashed", reverse=False) >> dag_files
+
+        workers - Edge(color="blue", style="dashed", headlabel="Executor") - schedulers
+
+        metadata_db >> Edge(color="red", style="dotted", reverse=True) >> webservers
+        metadata_db >> Edge(color="red", style="dotted", reverse=True) >> schedulers
+        dag_processors >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+        workers >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+        triggerer >> Edge(color="red", style="dotted", reverse=True) >> metadata_db
+
+        dag_files >> Edge(color="brown", style="solid") >> workers
+        dag_files >> Edge(color="brown", style="solid") >> dag_processors
+        dag_files >> Edge(color="brown", style="solid") >> triggerer
+    console.print(f"[green]Generating architecture image {dag_processor_architecture_image_file}")
+
+
+def main():
+    hash_md5 = hashlib.md5()
+    hash_md5.update(Path(__file__).resolve().read_bytes())
+    my_file_hash = hash_md5.hexdigest()
+    hash_file = LOCAL_DIR / DIAGRAM_HASH_FILE_NAME
+    if not hash_file.exists() or not hash_file.read_text().strip() == str(my_file_hash).strip():
+        os.chdir(DOCS_IMAGES_DIR)
+        generate_basic_airflow_diagram(BASIC_ARCHITECTURE_IMAGE_NAME)
+        generate_dag_processor_airflow_diagram(DAG_PROCESSOR_AIRFLOW_ARCHITECTURE_IMAGE_NAME)
+        hash_file.write_text(str(my_file_hash) + "\n")
+    else:
+        console.print("[bright_blue]No changes to generation script. Not regenerating the images.")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/scripts/docker/clean-logs.sh b/scripts/docker/clean-logs.sh
index 53f5407d96aa3..df138e4a6f19d 100644
--- a/scripts/docker/clean-logs.sh
+++ b/scripts/docker/clean-logs.sh
@@ -35,7 +35,7 @@ while true; do
     -type f -mtime +"${RETENTION}" -name '*.log' -print0 | \
     xargs -0 rm -f
 
-  find "${DIRECTORY}"/logs -type d -empty -delete
+  find "${DIRECTORY}"/logs -type d -empty -delete || true
 
   seconds=$(( $(date -u +%s) % EVERY))
   (( seconds < 1 )) || sleep $((EVERY - seconds - 1))
diff --git a/scripts/docker/install_from_docker_context_files.sh b/scripts/docker/install_from_docker_context_files.sh
index cdb66875ac466..8d9c6cdd85f3e 100644
--- a/scripts/docker/install_from_docker_context_files.sh
+++ b/scripts/docker/install_from_docker_context_files.sh
@@ -65,6 +65,13 @@ function install_airflow_and_providers_from_docker_context_files(){
         reinstalling_apache_airflow_package="apache-airflow[${AIRFLOW_EXTRAS}]==$ver"
     fi
 
+    if [[ -z "${reinstalling_apache_airflow_package}" && ${AIRFLOW_VERSION=} != "" ]]; then
+        # When we install only provider packages from docker-context files, we need to still
+        # install airflow from PyPI when AIRFLOW_VERSION is set. This handles the case where
+        # pre-release dockerhub image of airflow is built, but we want to install some providers from
+        # docker-context files
+        reinstalling_apache_airflow_package="apache-airflow[${AIRFLOW_EXTRAS}]==${AIRFLOW_VERSION}"
+    fi
     # Find Apache Airflow packages in docker-context files
     local reinstalling_apache_airflow_providers_packages
     reinstalling_apache_airflow_providers_packages=$(ls \
diff --git a/scripts/docker/install_mssql.sh b/scripts/docker/install_mssql.sh
index 248ca68307ccb..b5c74e44bc920 100644
--- a/scripts/docker/install_mssql.sh
+++ b/scripts/docker/install_mssql.sh
@@ -18,11 +18,6 @@
 # shellcheck shell=bash
 set -euo pipefail
 
-# REMOVE THOSE 3 LINES BELOW TOGETHER WITH PYMSSQL INSTALLATION BELOW AFTER PYMSSQL
-# INSTALLATION WITH CYTHON 3.0.0 IS FIXED SEE BELOW FOR MORE DETAILS
-# shellcheck source=scripts/docker/common.sh
-. "$( dirname "${BASH_SOURCE[0]}" )/common.sh"
-
 : "${AIRFLOW_PIP_VERSION:?Should be set}"
 
 : "${INSTALL_MSSQL_CLIENT:?Should be true or false}"
@@ -58,40 +53,6 @@ function install_mssql_client() {
     rm -rf /var/lib/apt/lists/*
     apt-get autoremove -yqq --purge
     apt-get clean && rm -rf /var/lib/apt/lists/*
-
-    # Workaround an issue with installing pymssql on ARM architecture triggered by Cython 3.0.0 release as of
-    # 18 July 2023. The problem is that pip uses latest Cython to compile pymssql and since we are using
-    # setuptools, there is no easy way to fix version of Cython used to compile packages.
-    #
-    # This triggers a problem with newer `pip` versions that have build isolation enabled by default because
-    # There is no (easy) way to pin build dependencies for dependent packages. If a package does not have
-    # limit on build dependencies, it will use the latest version of them to build that particular package.
-    #
-    # The workaround to the problem suggest in the last thread by Pradyun Gedam - pip maintainer - is to
-    # use PIP_CONSTRAINT environment variable and constraint the version of Cython used while installing
-    # the package. Which is precisely what we are doing here.
-    #
-    # Note that it does not work if we pass ``--constraint`` option to pip because it will not be passed to
-    # the package being build in isolation. The fact that the PIP_CONSTRAINT env variable works in the isolation
-    # is a bit of side-effect on how env variables work and that they are passed to subprocesses as pip
-    # launches a subprocess `pip` to build the package.
-    #
-    # This is a temporary solution until the issue is resolved in pymssql or Cython
-    # Issues/discussions that track it:
-    #
-    # * https://github.com/cython/cython/issues/5541
-    # * https://github.com/pymssql/pymssql/pull/827
-    # * https://discuss.python.org/t/no-way-to-pin-build-dependencies/29833
-    #
-    # TODO: Remove this workaround when the issue is resolved.
-    #       ALSO REMOVE THE TOP LINES ABOVE WITH common.sh IMPORT AS WELL AS COPYING common.sh ib
-    #       Dockerfile AND Dockerfile.ci (look for capital PYMSSQL - there are several places to remove)
-    if [[ "${1}" == "dev" ]]; then
-        common::install_pip_version
-        echo "Cython==0.29.36" >> /tmp/mssql-constraints.txt
-        PIP_CONSTRAINT=/tmp/mssql-constraints.txt pip install pymssql
-        rm /tmp/mssql-constraints.txt
-    fi
 }
 
 install_mssql_client "${@}"
diff --git a/scripts/in_container/_in_container_utils.sh b/scripts/in_container/_in_container_utils.sh
index a3e09e0f1e582..a321469dc14ae 100644
--- a/scripts/in_container/_in_container_utils.sh
+++ b/scripts/in_container/_in_container_utils.sh
@@ -233,13 +233,26 @@ function install_all_providers_from_pypi_with_eager_upgrade() {
     local packages_to_install=()
     local provider_package
     local res
+    local chicken_egg_prefixes
+    chicken_egg_prefixes=""
+    if [[ ${CHICKEN_EGG_PROVIDERS=} != "" ]]; then
+        echo "${COLOR_BLUE}Finding providers to install from dist: ${CHICKEN_EGG_PROVIDERS}${COLOR_RESET}"
+        for chicken_egg_provider in ${CHICKEN_EGG_PROVIDERS}
+        do
+            chicken_egg_prefixes="${chicken_egg_prefixes} apache-airflow-providers-${chicken_egg_provider//./-}"
+        done
+        echo "${COLOR_BLUE}Chicken egg prefixes: ${chicken_egg_prefixes}${COLOR_RESET}"
+        ls /dist/
+    fi
     for provider_package in ${ALL_PROVIDERS_PACKAGES}
     do
-        # Remove common.io provider in main branch until we cut-off v2-8-test branch and change
-        # version in main to 2.9.0 - otherwise we won't be able to generate PyPI constraints as
-        # released common-io provider has apache-airflow>2.8.0 as dependency and we cannot install
-        # the provider from PyPI
-        if [[ ${provider_package} == "apache-airflow-providers-common-io" ]]; then
+        if [[ "${chicken_egg_prefixes}" == *"${provider_package}"* ]]; then
+            # add the provider prepared in dist folder where chicken - egg problem is mitigated
+            for file in /dist/"${provider_package//-/_}"*.whl
+            do
+                packages_to_install+=( "${file}" )
+                echo "Added ${file} from dist folder as this is a chicken-egg package ${COLOR_GREEN}OK${COLOR_RESET}"
+            done
             continue
         fi
         echo -n "Checking if ${provider_package} is available in PyPI: "
diff --git a/setup.cfg b/setup.cfg
index 4f7144ca5d92c..916031e3057cd 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -101,12 +101,12 @@ install_requires =
     # `airflow/www/fab_security` with their upstream counterparts. In particular, make sure any breaking changes,
     # for example any new methods, are accounted for.
     # NOTE! When you change the value here, you also have to update flask-appbuilder[oauth] in setup.py
-    flask-appbuilder==4.3.9
+    flask-appbuilder==4.3.10
     flask-caching>=1.5.0
     flask-login>=0.6.2
     flask-session>=0.4.0
     flask-wtf>=0.15
-    fsspec>=2023.9.2
+    fsspec>=2023.10.0
     google-re2>=1.0
     graphviz>=0.12
     gunicorn>=20.1.0
@@ -160,7 +160,9 @@ install_requires =
     # We should also remove "licenses/LICENSE-unicodecsv.txt" file when we remove this dependency
     unicodecsv>=0.14.1
     universal_pathlib>=0.1.4
-    werkzeug>=2.0
+    # Werkzug 3 breaks Flask-Login 0.6.2
+    # we should remove this limitation when FAB supports Flask 2.3
+    werkzeug>=2.0,<3
 
 [options.packages.find]
 include =
diff --git a/setup.py b/setup.py
index bc624e21fa5dd..ee60c885207ae 100644
--- a/setup.py
+++ b/setup.py
@@ -286,15 +286,6 @@ def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_ve
     # Cgroupspy 0.2.2 added Python 3.10 compatibility
     "cgroupspy>=0.2.2",
 ]
-dask = [
-    # Dask support is limited, we need Dask team to upgrade support for dask if we were to continue
-    # Supporting it in the future
-    "cloudpickle>=1.4.1",
-    # Dask and distributed in version 2023.5.0 break our tests for Python > 3.7
-    # See https://github.com/dask/dask/issues/10279
-    "dask>=2.9.0,!=2022.10.1,!=2023.5.0",
-    "distributed>=2.11.1,!=2023.5.0",
-]
 deprecated_api = [
     "requests>=2.26.0",
 ]
@@ -315,6 +306,7 @@ def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_ve
     "sphinx-argparse>=0.1.13",
     "sphinx-autoapi>=2.0.0",
     "sphinx-copybutton",
+    "sphinx-design>=0.5.0",
     "sphinx-jinja>=2.0",
     "sphinx-rtd-theme>=0.1.6",
     "sphinx>=5.2.0",
@@ -328,7 +320,7 @@ def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_ve
 flask_appbuilder_oauth = [
     "authlib>=1.0.0",
     # The version here should be upgraded at the same time as flask-appbuilder in setup.cfg
-    "flask-appbuilder[oauth]==4.3.9",
+    "flask-appbuilder[oauth]==4.3.10",
 ]
 kerberos = [
     "pykerberos>=1.1.13",
@@ -484,7 +476,9 @@ def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_ve
     "beautifulsoup4>=4.7.1",
     "coverage>=7.2",
     "pytest>=7.1",
-    "pytest-asyncio",
+    # Pytest-asyncio 0.23.0 and 0.23.1 break test collection
+    # See https://github.com/pytest-dev/pytest-asyncio/issues/703 for details.
+    "pytest-asyncio!=0.23.0,!=0.23.1",
     "pytest-cov",
     "pytest-httpx",
     "pytest-icdiff",
@@ -524,7 +518,7 @@ def write_version(filename: str = str(AIRFLOW_SOURCES_ROOT / "airflow" / "git_ve
 s3fs = [
     # This is required for support of S3 file system which uses aiobotocore
     # which can have a conflict with boto3 as mentioned above
-    "s3fs>=2023.9.2",
+    "s3fs>=2023.10.0",
 ]
 
 saml = [
@@ -594,7 +588,6 @@ def get_unique_dependency_list(req_list_iterable: Iterable[list[str]]):
     "celery": celery,  # TODO: remove and move to a regular provider package in a separate PR
     "cgroups": cgroups,
     "cncf.kubernetes": kubernetes,  # TODO: remove and move to a regular provider package in a separate PR
-    "dask": dask,  # TODO: remove and move to a provider package in a separate PR
     "deprecated_api": deprecated_api,
     "github_enterprise": flask_appbuilder_oauth,
     "google_auth": flask_appbuilder_oauth,
@@ -650,7 +643,6 @@ def add_additional_extras() -> None:
     "azure": "microsoft.azure",
     "cassandra": "apache.cassandra",
     "crypto": "",  # this is legacy extra - all dependencies are already "install-requires"
-    "dask": "daskexecutor",
     "druid": "apache.druid",
     "gcp": "google",
     "gcp_api": "google",
@@ -958,7 +950,7 @@ def replace_extra_dependencies_with_provider_packages(extra: str, providers: lis
     :param extra: Name of the extra to add providers to
     :param providers: list of provider ids
     """
-    if extra in ["cncf.kubernetes", "kubernetes", "celery", "daskexecutor", "dask"]:
+    if extra in ["cncf.kubernetes", "kubernetes", "celery"]:
         EXTRAS_DEPENDENCIES[extra].extend(
             [get_provider_package_name_from_package_id(package_name) for package_name in providers]
         )
diff --git a/tests/api_connexion/endpoints/test_task_instance_endpoint.py b/tests/api_connexion/endpoints/test_task_instance_endpoint.py
index 3125031f5630b..16849d6cfa6d3 100644
--- a/tests/api_connexion/endpoints/test_task_instance_endpoint.py
+++ b/tests/api_connexion/endpoints/test_task_instance_endpoint.py
@@ -234,7 +234,7 @@ def test_should_respond_200(self, username, session):
             "pid": 100,
             "pool": "default_pool",
             "pool_slots": 1,
-            "priority_weight": 11,
+            "priority_weight": 9,
             "queue": "default_queue",
             "queued_when": None,
             "sla_miss": None,
@@ -286,11 +286,11 @@ def test_should_respond_200_with_task_state_in_deferred(self, session):
             "map_index": -1,
             "max_tries": 0,
             "note": "placeholder-note",
-            "operator": "_PythonDecoratedOperator",
+            "operator": "PythonOperator",
             "pid": 100,
             "pool": "default_pool",
             "pool_slots": 1,
-            "priority_weight": 11,
+            "priority_weight": 9,
             "queue": "default_queue",
             "queued_when": None,
             "sla_miss": None,
@@ -331,11 +331,11 @@ def test_should_respond_200_with_task_state_in_removed(self, session):
             "map_index": -1,
             "max_tries": 0,
             "note": "placeholder-note",
-            "operator": "_PythonDecoratedOperator",
+            "operator": "PythonOperator",
             "pid": 100,
             "pool": "default_pool",
             "pool_slots": 1,
-            "priority_weight": 11,
+            "priority_weight": 9,
             "queue": "default_queue",
             "queued_when": None,
             "sla_miss": None,
@@ -379,11 +379,11 @@ def test_should_respond_200_task_instance_with_sla_and_rendered(self, session):
             "map_index": -1,
             "max_tries": 0,
             "note": "placeholder-note",
-            "operator": "_PythonDecoratedOperator",
+            "operator": "PythonOperator",
             "pid": 100,
             "pool": "default_pool",
             "pool_slots": 1,
-            "priority_weight": 11,
+            "priority_weight": 9,
             "queue": "default_queue",
             "queued_when": None,
             "sla_miss": {
@@ -437,11 +437,11 @@ def test_should_respond_200_mapped_task_instance_with_rtif(self, session):
                 "map_index": map_index,
                 "max_tries": 0,
                 "note": "placeholder-note",
-                "operator": "_PythonDecoratedOperator",
+                "operator": "PythonOperator",
                 "pid": 100,
                 "pool": "default_pool",
                 "pool_slots": 1,
-                "priority_weight": 11,
+                "priority_weight": 9,
                 "queue": "default_queue",
                 "queued_when": None,
                 "sla_miss": None,
@@ -948,8 +948,8 @@ def test_should_respond_200_when_task_instance_properties_are_none(
         [
             pytest.param(
                 {"dag_ids": ["example_python_operator", "example_skip_dag"]},
-                19,
-                19,
+                17,
+                17,
                 id="with dag filter",
             ),
         ],
@@ -2340,11 +2340,11 @@ def test_should_respond_200(self, session):
             "map_index": -1,
             "max_tries": 0,
             "note": new_note_value,
-            "operator": "_PythonDecoratedOperator",
+            "operator": "PythonOperator",
             "pid": 100,
             "pool": "default_pool",
             "pool_slots": 1,
-            "priority_weight": 11,
+            "priority_weight": 9,
             "queue": "default_queue",
             "queued_when": None,
             "sla_miss": None,
@@ -2394,11 +2394,11 @@ def test_should_respond_200_mapped_task_instance_with_rtif(self, session):
                 "map_index": map_index,
                 "max_tries": 0,
                 "note": new_note_value,
-                "operator": "_PythonDecoratedOperator",
+                "operator": "PythonOperator",
                 "pid": 100,
                 "pool": "default_pool",
                 "pool_slots": 1,
-                "priority_weight": 11,
+                "priority_weight": 9,
                 "queue": "default_queue",
                 "queued_when": None,
                 "sla_miss": None,
diff --git a/tests/cli/commands/test_dag_command.py b/tests/cli/commands/test_dag_command.py
index 78b7fd4525f2d..30b5c475ea4a9 100644
--- a/tests/cli/commands/test_dag_command.py
+++ b/tests/cli/commands/test_dag_command.py
@@ -37,9 +37,10 @@
 from airflow.exceptions import AirflowException
 from airflow.models import DagBag, DagModel, DagRun
 from airflow.models.baseoperator import BaseOperator
-from airflow.models.dag import _StopDagTest
+from airflow.models.dag import _run_trigger
 from airflow.models.serialized_dag import SerializedDagModel
-from airflow.triggers.temporal import TimeDeltaTrigger
+from airflow.triggers.base import TriggerEvent
+from airflow.triggers.temporal import DateTimeTrigger, TimeDeltaTrigger
 from airflow.utils import timezone
 from airflow.utils.session import create_session
 from airflow.utils.types import DagRunType
@@ -824,35 +825,47 @@ def test_dag_test_with_custom_timetable(self, mock__get_or_create_dagrun, _):
         dag_command.dag_test(cli_args)
         assert "data_interval" in mock__get_or_create_dagrun.call_args.kwargs
 
-    def test_dag_test_no_triggerer(self, dag_maker):
-        with dag_maker() as dag:
-
-            @task
-            def one():
-                return 1
-
-            @task
-            def two(val):
-                return val + 1
-
-            class MyOp(BaseOperator):
-                template_fields = ("tfield",)
-
-                def __init__(self, tfield, **kwargs):
-                    self.tfield = tfield
-                    super().__init__(**kwargs)
-
-                def execute(self, context, event=None):
-                    if event is None:
-                        print("I AM DEFERRING")
-                        self.defer(trigger=TimeDeltaTrigger(timedelta(seconds=20)), method_name="execute")
-                        return
-                    print("RESUMING")
-                    return self.tfield + 1
-
-            task_one = one()
-            task_two = two(task_one)
-            op = MyOp(task_id="abc", tfield=str(task_two))
-            task_two >> op
-        with pytest.raises(_StopDagTest, match="Task has deferred but triggerer component is not running"):
-            dag.test()
+    def test_dag_test_run_trigger(self, dag_maker):
+        now = timezone.utcnow()
+        trigger = DateTimeTrigger(moment=now)
+        e = _run_trigger(trigger)
+        assert isinstance(e, TriggerEvent)
+        assert e.payload == now
+
+    def test_dag_test_no_triggerer_running(self, dag_maker):
+        with mock.patch("airflow.models.dag._run_trigger", wraps=_run_trigger) as mock_run:
+            with dag_maker() as dag:
+
+                @task
+                def one():
+                    return 1
+
+                @task
+                def two(val):
+                    return val + 1
+
+                trigger = TimeDeltaTrigger(timedelta(seconds=0))
+
+                class MyOp(BaseOperator):
+                    template_fields = ("tfield",)
+
+                    def __init__(self, tfield, **kwargs):
+                        self.tfield = tfield
+                        super().__init__(**kwargs)
+
+                    def execute(self, context, event=None):
+                        if event is None:
+                            print("I AM DEFERRING")
+                            self.defer(trigger=trigger, method_name="execute")
+                            return
+                        print("RESUMING")
+                        return self.tfield + 1
+
+                task_one = one()
+                task_two = two(task_one)
+                op = MyOp(task_id="abc", tfield=task_two)
+                task_two >> op
+            dr = dag.test()
+            assert mock_run.call_args_list[0] == ((trigger,), {})
+            tis = dr.get_task_instances()
+            assert [x for x in tis if x.task_id == "abc"][0].state == "success"
diff --git a/tests/cli/commands/test_standalone_command.py b/tests/cli/commands/test_standalone_command.py
index ec258c5041d9e..3b84470b461f1 100644
--- a/tests/cli/commands/test_standalone_command.py
+++ b/tests/cli/commands/test_standalone_command.py
@@ -25,7 +25,6 @@
 from airflow.executors.executor_constants import (
     CELERY_EXECUTOR,
     CELERY_KUBERNETES_EXECUTOR,
-    DASK_EXECUTOR,
     DEBUG_EXECUTOR,
     KUBERNETES_EXECUTOR,
     LOCAL_EXECUTOR,
@@ -43,7 +42,6 @@ class TestStandaloneCommand:
             (SEQUENTIAL_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
             (CELERY_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
             (CELERY_KUBERNETES_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
-            (DASK_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
             (KUBERNETES_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
             (DEBUG_EXECUTOR, "sqlite_conn_string", SEQUENTIAL_EXECUTOR),
             (LOCAL_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
@@ -51,7 +49,6 @@ class TestStandaloneCommand:
             (SEQUENTIAL_EXECUTOR, "other_db_conn_string", SEQUENTIAL_EXECUTOR),
             (CELERY_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
             (CELERY_KUBERNETES_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
-            (DASK_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
             (KUBERNETES_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
             (DEBUG_EXECUTOR, "other_db_conn_string", LOCAL_EXECUTOR),
         ],
diff --git a/tests/dag_processing/test_job_runner.py b/tests/dag_processing/test_job_runner.py
index 8edede91a3c88..b9bd4d18180b6 100644
--- a/tests/dag_processing/test_job_runner.py
+++ b/tests/dag_processing/test_job_runner.py
@@ -814,6 +814,68 @@ def test_dag_with_system_exit(self):
         with create_session() as session:
             assert session.get(DagModel, dag_id) is not None
 
+    @conf_vars({("core", "load_examples"): "False"})
+    def test_import_error_with_dag_directory(self, tmp_path):
+        TEMP_DAG_FILENAME = "temp_dag.py"
+
+        processor_dir_1 = tmp_path / "processor_1"
+        processor_dir_1.mkdir()
+        filename_1 = os.path.join(processor_dir_1, TEMP_DAG_FILENAME)
+        with open(filename_1, "w") as f:
+            f.write("an invalid airflow DAG")
+
+        processor_dir_2 = tmp_path / "processor_2"
+        processor_dir_2.mkdir()
+        filename_1 = os.path.join(processor_dir_2, TEMP_DAG_FILENAME)
+        with open(filename_1, "w") as f:
+            f.write("an invalid airflow DAG")
+
+        with create_session() as session:
+            child_pipe, parent_pipe = multiprocessing.Pipe()
+
+            manager = DagProcessorJobRunner(
+                job=Job(),
+                processor=DagFileProcessorManager(
+                    dag_directory=processor_dir_1,
+                    dag_ids=[],
+                    max_runs=1,
+                    signal_conn=child_pipe,
+                    processor_timeout=timedelta(seconds=5),
+                    pickle_dags=False,
+                    async_mode=False,
+                ),
+            )
+
+            self.run_processor_manager_one_loop(manager, parent_pipe)
+
+            import_errors = session.query(errors.ImportError).order_by("id").all()
+            assert len(import_errors) == 1
+            assert import_errors[0].processor_subdir == str(processor_dir_1)
+
+            child_pipe, parent_pipe = multiprocessing.Pipe()
+
+            manager = DagProcessorJobRunner(
+                job=Job(),
+                processor=DagFileProcessorManager(
+                    dag_directory=processor_dir_2,
+                    dag_ids=[],
+                    max_runs=1,
+                    signal_conn=child_pipe,
+                    processor_timeout=timedelta(seconds=5),
+                    pickle_dags=False,
+                    async_mode=True,
+                ),
+            )
+
+            self.run_processor_manager_one_loop(manager, parent_pipe)
+
+            import_errors = session.query(errors.ImportError).order_by("id").all()
+            assert len(import_errors) == 2
+            assert import_errors[0].processor_subdir == str(processor_dir_1)
+            assert import_errors[1].processor_subdir == str(processor_dir_2)
+
+            session.rollback()
+
     @conf_vars({("core", "load_examples"): "False"})
     @pytest.mark.backend("mysql", "postgres")
     @pytest.mark.execution_timeout(30)
diff --git a/tests/executors/test_debug_executor.py b/tests/executors/test_debug_executor.py
index 03a91f9c92c0e..20ee821842c8e 100644
--- a/tests/executors/test_debug_executor.py
+++ b/tests/executors/test_debug_executor.py
@@ -111,7 +111,7 @@ def test_fail_fast(self, change_state_mock):
         assert not executor.tasks_to_run
         change_state_mock.assert_has_calls(
             [
-                mock.call(ti1.key, State.FAILED),
+                mock.call(ti1.key, State.FAILED, None),
                 mock.call(ti2.key, State.UPSTREAM_FAILED),
             ]
         )
@@ -145,6 +145,6 @@ def test_sync_after_terminate(self, change_state_mock):
 
         change_state_mock.assert_has_calls(
             [
-                mock.call(ti1.key, State.FAILED),
+                mock.call(ti1.key, State.FAILED, None),
             ]
         )
diff --git a/tests/io/test_path.py b/tests/io/test_path.py
index 1ac263c59f500..58478a028587a 100644
--- a/tests/io/test_path.py
+++ b/tests/io/test_path.py
@@ -52,6 +52,13 @@ def _strip_protocol(cls, path) -> str:
 
 
 class TestFs:
+    def setup_class(self):
+        self._store_cache = _STORE_CACHE.copy()
+
+    def teardown(self):
+        _STORE_CACHE.clear()
+        _STORE_CACHE.update(self._store_cache)
+
     def test_alias(self):
         store = attach("file", alias="local")
         assert isinstance(store.fs, LocalFileSystem)
@@ -100,6 +107,19 @@ def test_ls(self):
 
         assert not o.exists()
 
+    @pytest.fixture()
+    def fake_fs(self):
+        fs = mock.Mock()
+        fs._strip_protocol.return_value = "/"
+        fs.conn_id = "fake"
+        return fs
+
+    def test_objectstoragepath_init_conn_id_in_uri(self, fake_fs):
+        fake_fs.stat.return_value = {"stat": "result"}
+        attach(protocol="fake", conn_id="fake", fs=fake_fs)
+        p = ObjectStoragePath("fake://fake@bucket/path")
+        assert p.stat() == {"stat": "result", "conn_id": "fake", "protocol": "fake"}
+
     @pytest.mark.parametrize(
         "fn, args, fn2, path, expected_args, expected_kwargs",
         [
@@ -124,12 +144,8 @@ def test_ls(self):
             ),
         ],
     )
-    def test_standard_extended_api(self, monkeypatch, fn, args, fn2, path, expected_args, expected_kwargs):
-        _fs = mock.Mock()
-        _fs._strip_protocol.return_value = "/"
-        _fs.conn_id = "fake"
-
-        store = attach(protocol="file", conn_id="fake", fs=_fs)
+    def test_standard_extended_api(self, fake_fs, fn, args, fn2, path, expected_args, expected_kwargs):
+        store = attach(protocol="file", conn_id="fake", fs=fake_fs)
         o = ObjectStoragePath(path, conn_id="fake")
 
         getattr(o, fn)(**args)
@@ -239,12 +255,17 @@ def test_serde_objectstoragepath(self):
 
         o = ObjectStoragePath(path, my_setting="foo")
         s = o.serialize()
-        assert s["my_setting"] == "foo"
+        assert "my_setting" in s["kwargs"]
+        d = ObjectStoragePath.deserialize(s, 1)
+        assert o == d
 
         store = attach("filex", conn_id="mock")
         o = ObjectStoragePath(path, store=store)
         s = o.serialize()
-        assert s["store"] == store
+        assert s["kwargs"]["store"] == store
+
+        d = ObjectStoragePath.deserialize(s, 1)
+        assert o == d
 
     def test_serde_store(self):
         store = attach("file", conn_id="mock")
diff --git a/tests/models/test_dag.py b/tests/models/test_dag.py
index f4b872109f626..f7bf1ad6d0c91 100644
--- a/tests/models/test_dag.py
+++ b/tests/models/test_dag.py
@@ -765,7 +765,7 @@ def test_following_schedule_relativedelta(self):
         """
         dag_id = "test_schedule_dag_relativedelta"
         delta = relativedelta(hours=+1)
-        dag = DAG(dag_id=dag_id, schedule=delta)
+        dag = DAG(dag_id=dag_id, schedule=delta, start_date=TEST_DATE)
         dag.add_task(BaseOperator(task_id="faketastic", owner="Also fake", start_date=TEST_DATE))
 
         _next = dag.following_schedule(TEST_DATE)
@@ -780,7 +780,7 @@ def test_following_schedule_relativedelta_with_deprecated_schedule_interval(self
         """
         dag_id = "test_schedule_dag_relativedelta"
         delta = relativedelta(hours=+1)
-        dag = DAG(dag_id=dag_id, schedule_interval=delta)
+        dag = DAG(dag_id=dag_id, schedule_interval=delta, start_date=TEST_DATE)
         dag.add_task(BaseOperator(task_id="faketastic", owner="Also fake", start_date=TEST_DATE))
 
         _next = dag.following_schedule(TEST_DATE)
@@ -799,7 +799,7 @@ def test_following_schedule_relativedelta_with_depr_schedule_interval_decorated_
         dag_id = "test_schedule_dag_relativedelta"
         delta = relativedelta(hours=+1)
 
-        @dag(dag_id=dag_id, schedule_interval=delta)
+        @dag(dag_id=dag_id, schedule_interval=delta, start_date=TEST_DATE)
         def mydag():
             BaseOperator(task_id="faketastic", owner="Also fake", start_date=TEST_DATE)
 
@@ -827,6 +827,20 @@ def test_following_schedule_datetime_timezone(self):
         when = dag.following_schedule(start)
         assert when.isoformat() == "2018-03-25T03:00:00+00:00"
 
+    def test_create_dagrun_when_schedule_is_none_and_empty_start_date(self):
+        # Check that we don't get an AttributeError 'start_date' for self.start_date when schedule is none
+        dag = DAG("dag_with_none_schedule_and_empty_start_date")
+        dag.add_task(BaseOperator(task_id="task_without_start_date"))
+        dagrun = dag.create_dagrun(
+            state=State.RUNNING, run_type=DagRunType.MANUAL, execution_date=DEFAULT_DATE
+        )
+        assert dagrun is not None
+
+    def test_fail_dag_when_schedule_is_non_none_and_empty_start_date(self):
+        # Check that we get a ValueError 'start_date' for self.start_date when schedule is non-none
+        with pytest.raises(ValueError, match="DAG is missing the start_date parameter"):
+            DAG(dag_id="dag_with_non_none_schedule_and_empty_start_date", schedule="@hourly")
+
     def test_following_schedule_datetime_timezone_utc0530(self):
         # Check that we don't get an AttributeError 'name' for self.timezone
         class UTC0530(datetime.tzinfo):
@@ -942,8 +956,8 @@ def test_bulk_write_to_db_interval_save_runtime(self, interval):
         mock_active_runs_of_dags = mock.MagicMock(side_effect=DagRun.active_runs_of_dags)
         with mock.patch.object(DagRun, "active_runs_of_dags", mock_active_runs_of_dags):
             dags_null_timetable = [
-                DAG("dag-interval-None", schedule_interval=None),
-                DAG("dag-interval-test", schedule_interval=interval),
+                DAG("dag-interval-None", schedule_interval=None, start_date=TEST_DATE),
+                DAG("dag-interval-test", schedule_interval=interval, start_date=TEST_DATE),
             ]
             DAG.bulk_write_to_db(dags_null_timetable, session=settings.Session())
             if interval:
@@ -1530,7 +1544,7 @@ def test_schedule_dag_once(self):
         it is called, and not scheduled the second.
         """
         dag_id = "test_schedule_dag_once"
-        dag = DAG(dag_id=dag_id, schedule="@once")
+        dag = DAG(dag_id=dag_id, schedule="@once", start_date=TEST_DATE)
         assert isinstance(dag.timetable, OnceTimetable)
         dag.add_task(BaseOperator(task_id="faketastic", owner="Also fake", start_date=TEST_DATE))
 
@@ -1553,7 +1567,7 @@ def test_fractional_seconds(self):
         Tests if fractional seconds are stored in the database
         """
         dag_id = "test_fractional_seconds"
-        dag = DAG(dag_id=dag_id, schedule="@once")
+        dag = DAG(dag_id=dag_id, schedule="@once", start_date=TEST_DATE)
         dag.add_task(BaseOperator(task_id="faketastic", owner="Also fake", start_date=TEST_DATE))
 
         start_date = timezone.utcnow()
@@ -1658,25 +1672,25 @@ def test_get_paused_dag_ids(self):
     def test_timetable_and_description_from_schedule_interval_arg(
         self, schedule_interval_arg, expected_timetable, interval_description
     ):
-        dag = DAG("test_schedule_interval_arg", schedule=schedule_interval_arg)
+        dag = DAG("test_schedule_interval_arg", schedule=schedule_interval_arg, start_date=TEST_DATE)
         assert dag.timetable == expected_timetable
         assert dag.schedule_interval == schedule_interval_arg
         assert dag.timetable.description == interval_description
 
     def test_timetable_and_description_from_dataset(self):
-        dag = DAG("test_schedule_interval_arg", schedule=[Dataset(uri="hello")])
+        dag = DAG("test_schedule_interval_arg", schedule=[Dataset(uri="hello")], start_date=TEST_DATE)
         assert dag.timetable == DatasetTriggeredTimetable()
         assert dag.schedule_interval == "Dataset"
         assert dag.timetable.description == "Triggered by datasets"
 
     def test_schedule_interval_still_works(self):
-        dag = DAG("test_schedule_interval_arg", schedule_interval="*/5 * * * *")
+        dag = DAG("test_schedule_interval_arg", schedule_interval="*/5 * * * *", start_date=TEST_DATE)
         assert dag.timetable == cron_timetable("*/5 * * * *")
         assert dag.schedule_interval == "*/5 * * * *"
         assert dag.timetable.description == "Every 5 minutes"
 
     def test_timetable_still_works(self):
-        dag = DAG("test_schedule_interval_arg", timetable=cron_timetable("*/6 * * * *"))
+        dag = DAG("test_schedule_interval_arg", timetable=cron_timetable("*/6 * * * *"), start_date=TEST_DATE)
         assert dag.timetable == cron_timetable("*/6 * * * *")
         assert dag.schedule_interval == "*/6 * * * *"
         assert dag.timetable.description == "Every 6 minutes"
@@ -1702,7 +1716,7 @@ def test_timetable_still_works(self):
         ],
     )
     def test_description_from_timetable(self, timetable, expected_description):
-        dag = DAG("test_schedule_interval_description", timetable=timetable)
+        dag = DAG("test_schedule_interval_description", timetable=timetable, start_date=TEST_DATE)
         assert dag.timetable == timetable
         assert dag.timetable.description == expected_description
 
@@ -2449,7 +2463,7 @@ def test_return_date_range_with_num_method(self):
         start_date = TEST_DATE
         delta = timedelta(days=1)
 
-        dag = DAG("dummy-dag", schedule=delta)
+        dag = DAG("dummy-dag", schedule=delta, start_date=start_date)
         dag_dates = dag.date_range(start_date=start_date, num=3)
 
         assert dag_dates == [
@@ -2502,10 +2516,10 @@ def test_dag_owner_links(self):
     )
     def test_schedule_dag_param(self, kwargs):
         with pytest.raises(ValueError, match="At most one"):
-            with DAG(dag_id="hello", **kwargs):
+            with DAG(dag_id="hello", start_date=TEST_DATE, **kwargs):
                 pass
 
-    def test_continuous_schedule_interval_limits_max_active_runs(self):
+    def test_continuous_schedule_interval_linmits_max_active_runs(self):
         dag = DAG("continuous", start_date=DEFAULT_DATE, schedule_interval="@continuous", max_active_runs=1)
         assert isinstance(dag.timetable, ContinuousTimetable)
         assert dag.max_active_runs == 1
@@ -3010,19 +3024,19 @@ def mydag():
 
 @pytest.mark.parametrize("timetable", [NullTimetable(), OnceTimetable()])
 def test_dag_timetable_match_schedule_interval(timetable):
-    dag = DAG("my-dag", timetable=timetable)
+    dag = DAG("my-dag", timetable=timetable, start_date=DEFAULT_DATE)
     assert dag._check_schedule_interval_matches_timetable()
 
 
 @pytest.mark.parametrize("schedule_interval", [None, "@once", "@daily", timedelta(days=1)])
 def test_dag_schedule_interval_match_timetable(schedule_interval):
-    dag = DAG("my-dag", schedule=schedule_interval)
+    dag = DAG("my-dag", schedule=schedule_interval, start_date=DEFAULT_DATE)
     assert dag._check_schedule_interval_matches_timetable()
 
 
 @pytest.mark.parametrize("schedule_interval", [None, "@daily", timedelta(days=1)])
 def test_dag_schedule_interval_change_after_init(schedule_interval):
-    dag = DAG("my-dag", timetable=OnceTimetable())
+    dag = DAG("my-dag", timetable=OnceTimetable(), start_date=DEFAULT_DATE)
     dag.schedule_interval = schedule_interval
     assert not dag._check_schedule_interval_matches_timetable()
 
@@ -3391,7 +3405,7 @@ def test_get_next_data_interval(
     data_interval_end,
     expected_data_interval,
 ):
-    dag = DAG(dag_id="test_get_next_data_interval", schedule="@daily")
+    dag = DAG(dag_id="test_get_next_data_interval", schedule="@daily", start_date=DEFAULT_DATE)
     dag_model = DagModel(
         dag_id="test_get_next_data_interval",
         next_dagrun=logical_date,
diff --git a/tests/models/test_dagrun.py b/tests/models/test_dagrun.py
index cb873b0bc3f7c..5732e0d565576 100644
--- a/tests/models/test_dagrun.py
+++ b/tests/models/test_dagrun.py
@@ -2618,17 +2618,3 @@ def test_dag_run_id_config(session, dag_maker, pattern, run_id, result):
         else:
             with pytest.raises(AirflowException):
                 dag_maker.create_dagrun(run_id=run_id)
-
-
-def test_dagrun_conf():
-    dag_run = DagRun(conf={"test": 1234})
-    assert dag_run.conf == {"test": 1234}
-
-    with pytest.raises(AirflowException) as err:
-        dag_run.conf["non_json"] = timezone.utcnow()
-    assert str(err.value) == "Cannot assign non JSON Serializable value"
-
-    with pytest.raises(AirflowException) as err:
-        value = 1
-        dag_run.conf = value
-    assert str(err.value) == f"Object of type {type(value)} must be a dict"
diff --git a/tests/models/test_mappedoperator.py b/tests/models/test_mappedoperator.py
index 7244c55774840..78f0a0d2715e5 100644
--- a/tests/models/test_mappedoperator.py
+++ b/tests/models/test_mappedoperator.py
@@ -95,7 +95,7 @@ def execute(self, context: Context):
         mapped = CustomOperator.partial(task_id="task_2").expand(arg=unrenderable_values)
         task1 >> mapped
     dag.test()
-    assert caplog.text.count("task_2 ran successfully") == 2
+    assert caplog.text.count("[DAG TEST] end task task_id=task_2") == 2
     assert (
         "Unable to check if the value of type 'UnrenderableClass' is False for task 'task_2', field 'arg'"
         in caplog.text
diff --git a/tests/providers/amazon/aws/auth_manager/avp/__init__.py b/tests/providers/amazon/aws/auth_manager/avp/__init__.py
new file mode 100644
index 0000000000000..13a83393a9124
--- /dev/null
+++ b/tests/providers/amazon/aws/auth_manager/avp/__init__.py
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
diff --git a/tests/providers/amazon/aws/auth_manager/avp/test_entities.py b/tests/providers/amazon/aws/auth_manager/avp/test_entities.py
new file mode 100644
index 0000000000000..c5b512f22c86d
--- /dev/null
+++ b/tests/providers/amazon/aws/auth_manager/avp/test_entities.py
@@ -0,0 +1,27 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities, get_action_id, get_entity_type
+
+
+def test_get_entity_type():
+    assert get_entity_type(AvpEntities.VARIABLE) == "Airflow::Variable"
+
+
+def test_get_action_id():
+    assert get_action_id(AvpEntities.VARIABLE, "GET") == "Variable::GET"
diff --git a/tests/providers/amazon/aws/auth_manager/avp/test_facade.py b/tests/providers/amazon/aws/auth_manager/avp/test_facade.py
new file mode 100644
index 0000000000000..aa093287c92e7
--- /dev/null
+++ b/tests/providers/amazon/aws/auth_manager/avp/test_facade.py
@@ -0,0 +1,203 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+from unittest.mock import Mock
+
+import pytest
+
+from airflow.exceptions import AirflowException
+from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities, get_action_id, get_entity_type
+from airflow.providers.amazon.aws.auth_manager.avp.facade import AwsAuthManagerAmazonVerifiedPermissionsFacade
+from airflow.providers.amazon.aws.auth_manager.user import AwsAuthManagerUser
+from tests.test_utils.config import conf_vars
+
+if TYPE_CHECKING:
+    from airflow.auth.managers.base_auth_manager import ResourceMethod
+
+AVP_POLICY_STORE_ID = "store_id"
+
+test_user = AwsAuthManagerUser(user_id="test_user", groups=["group1", "group2"])
+test_user_no_group = AwsAuthManagerUser(user_id="test_user_no_group", groups=[])
+
+
+def simple_entity_fetcher():
+    return [
+        {"identifier": {"entityType": "Airflow::Variable", "entityId": "var1"}},
+        {"identifier": {"entityType": "Airflow::Variable", "entityId": "var2"}},
+    ]
+
+
+@pytest.fixture
+def facade():
+    return AwsAuthManagerAmazonVerifiedPermissionsFacade()
+
+
+class TestAwsAuthManagerAmazonVerifiedPermissionsFacade:
+    def test_avp_client(self, facade):
+        assert hasattr(facade, "avp_client")
+
+    def test_avp_policy_store_id(self, facade):
+        with conf_vars(
+            {
+                ("aws_auth_manager", "avp_policy_store_id"): AVP_POLICY_STORE_ID,
+            }
+        ):
+            assert hasattr(facade, "avp_policy_store_id")
+
+    @pytest.mark.parametrize(
+        "entity_id, user, entity_fetcher, expected_entities, avp_response, expected",
+        [
+            # User with groups with no permissions
+            (
+                None,
+                test_user,
+                None,
+                [
+                    {
+                        "identifier": {"entityType": "Airflow::User", "entityId": "test_user"},
+                        "parents": [
+                            {"entityType": "Airflow::Role", "entityId": "group1"},
+                            {"entityType": "Airflow::Role", "entityId": "group2"},
+                        ],
+                    },
+                    {
+                        "identifier": {"entityType": "Airflow::Role", "entityId": "group1"},
+                    },
+                    {
+                        "identifier": {"entityType": "Airflow::Role", "entityId": "group2"},
+                    },
+                ],
+                {"decision": "DENY"},
+                False,
+            ),
+            # User with groups with permissions
+            (
+                "dummy_id",
+                test_user,
+                None,
+                [
+                    {
+                        "identifier": {"entityType": "Airflow::User", "entityId": "test_user"},
+                        "parents": [
+                            {"entityType": "Airflow::Role", "entityId": "group1"},
+                            {"entityType": "Airflow::Role", "entityId": "group2"},
+                        ],
+                    },
+                    {
+                        "identifier": {"entityType": "Airflow::Role", "entityId": "group1"},
+                    },
+                    {
+                        "identifier": {"entityType": "Airflow::Role", "entityId": "group2"},
+                    },
+                ],
+                {"decision": "ALLOW"},
+                True,
+            ),
+            # User without group without permission
+            (
+                None,
+                test_user_no_group,
+                None,
+                [
+                    {
+                        "identifier": {"entityType": "Airflow::User", "entityId": "test_user_no_group"},
+                        "parents": [],
+                    },
+                ],
+                {"decision": "DENY"},
+                False,
+            ),
+            # With entity fetcher but no resource ID
+            (
+                None,
+                test_user_no_group,
+                simple_entity_fetcher,
+                [
+                    {
+                        "identifier": {"entityType": "Airflow::User", "entityId": "test_user_no_group"},
+                        "parents": [],
+                    },
+                ],
+                {"decision": "DENY"},
+                False,
+            ),
+            # With entity fetcher and resource ID
+            (
+                "resource_id",
+                test_user_no_group,
+                simple_entity_fetcher,
+                [
+                    {
+                        "identifier": {"entityType": "Airflow::User", "entityId": "test_user_no_group"},
+                        "parents": [],
+                    },
+                    {"identifier": {"entityType": "Airflow::Variable", "entityId": "var1"}},
+                    {"identifier": {"entityType": "Airflow::Variable", "entityId": "var2"}},
+                ],
+                {"decision": "DENY"},
+                False,
+            ),
+        ],
+    )
+    def test_is_authorized_successful(
+        self, facade, entity_id, user, entity_fetcher, expected_entities, avp_response, expected
+    ):
+        mock_is_authorized = Mock(return_value=avp_response)
+        facade.avp_client.is_authorized = mock_is_authorized
+
+        method: ResourceMethod = "GET"
+        entity_type = AvpEntities.VARIABLE
+
+        with conf_vars(
+            {
+                ("aws_auth_manager", "avp_policy_store_id"): AVP_POLICY_STORE_ID,
+            }
+        ):
+            result = facade.is_authorized(
+                method=method,
+                entity_type=entity_type,
+                entity_id=entity_id,
+                user=user,
+                entity_fetcher=entity_fetcher,
+            )
+
+        mock_is_authorized.assert_called_once_with(
+            policyStoreId=AVP_POLICY_STORE_ID,
+            principal={"entityType": "Airflow::User", "entityId": user.get_id()},
+            action={"actionType": "Airflow::Action", "actionId": get_action_id(entity_type, method)},
+            resource={"entityType": get_entity_type(entity_type), "entityId": entity_id or "*"},
+            entities={"entityList": expected_entities},
+        )
+
+        assert result == expected
+
+    def test_is_authorized_unsuccessful(self, facade):
+        avp_response = {"errors": ["Error"]}
+        mock_is_authorized = Mock(return_value=avp_response)
+        facade.avp_client.is_authorized = mock_is_authorized
+
+        with conf_vars(
+            {
+                ("aws_auth_manager", "avp_policy_store_id"): AVP_POLICY_STORE_ID,
+            }
+        ):
+            with pytest.raises(
+                AirflowException, match="Error occurred while making an authorization decision."
+            ):
+                facade.is_authorized(method="GET", entity_type=AvpEntities.VARIABLE, user=test_user)
diff --git a/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py b/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py
index 56f23eb36ac48..9cc4fc602bd15 100644
--- a/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py
+++ b/tests/providers/amazon/aws/auth_manager/test_aws_auth_manager.py
@@ -16,11 +16,14 @@
 # under the License.
 from __future__ import annotations
 
-from unittest.mock import patch
+from typing import TYPE_CHECKING
+from unittest.mock import ANY, Mock, patch
 
 import pytest
 from flask import Flask, session
 
+from airflow.auth.managers.models.resource_details import VariableDetails
+from airflow.providers.amazon.aws.auth_manager.avp.entities import AvpEntities
 from airflow.providers.amazon.aws.auth_manager.aws_auth_manager import AwsAuthManager
 from airflow.providers.amazon.aws.auth_manager.security_manager.aws_security_manager_override import (
     AwsSecurityManagerOverride,
@@ -29,6 +32,11 @@
 from airflow.www.extensions.init_appbuilder import init_appbuilder
 from tests.test_utils.config import conf_vars
 
+if TYPE_CHECKING:
+    from airflow.auth.managers.base_auth_manager import ResourceMethod
+
+mock = Mock()
+
 
 @pytest.fixture
 def auth_manager():
@@ -66,6 +74,9 @@ def test_user():
 
 
 class TestAwsAuthManager:
+    def test_avp_facade(self, auth_manager):
+        assert hasattr(auth_manager, "avp_facade")
+
     @pytest.mark.db_test
     @patch.object(AwsAuthManager, "is_logged_in")
     def test_get_user(self, mock_is_logged_in, auth_manager, app, test_user):
@@ -99,6 +110,31 @@ def test_is_logged_in_return_false_when_no_user_in_session(self, auth_manager, a
 
         assert result is False
 
+    @pytest.mark.parametrize(
+        "details, user, expected_user, expected_entity_id",
+        [
+            (None, None, ANY, None),
+            (VariableDetails(key="var1"), mock, mock, "var1"),
+        ],
+    )
+    @patch.object(AwsAuthManager, "avp_facade")
+    @patch.object(AwsAuthManager, "get_user")
+    def test_is_authorized_variable(
+        self, mock_get_user, mock_avp_facade, details, user, expected_user, expected_entity_id, auth_manager
+    ):
+        is_authorized = Mock()
+        mock_avp_facade.is_authorized = is_authorized
+
+        method: ResourceMethod = "GET"
+
+        auth_manager.is_authorized_variable(method=method, details=details, user=user)
+
+        if not user:
+            mock_get_user.assert_called_once()
+        is_authorized.assert_called_once_with(
+            method=method, entity_type=AvpEntities.VARIABLE, user=expected_user, entity_id=expected_entity_id
+        )
+
     @patch("airflow.providers.amazon.aws.auth_manager.aws_auth_manager.url_for")
     def test_get_url_login(self, mock_url_for, auth_manager):
         auth_manager.get_url_login()
diff --git a/tests/providers/amazon/aws/auth_manager/test_constants.py b/tests/providers/amazon/aws/auth_manager/test_constants.py
index 3b273d9672195..c40df2ec0ebda 100644
--- a/tests/providers/amazon/aws/auth_manager/test_constants.py
+++ b/tests/providers/amazon/aws/auth_manager/test_constants.py
@@ -17,6 +17,8 @@
 from __future__ import annotations
 
 from airflow.providers.amazon.aws.auth_manager.constants import (
+    CONF_AVP_POLICY_STORE_ID_KEY,
+    CONF_CONN_ID_KEY,
     CONF_ENABLE_KEY,
     CONF_SAML_METADATA_URL_KEY,
     CONF_SECTION_NAME,
@@ -24,11 +26,17 @@
 
 
 class TestAwsAuthManagerConstants:
+    def test_conf_enable_key(self):
+        assert CONF_ENABLE_KEY == "enable"
+
     def test_conf_section_name(self):
         assert CONF_SECTION_NAME == "aws_auth_manager"
 
+    def test_conf_conn_id_key(self):
+        assert CONF_CONN_ID_KEY == "conn_id"
+
     def test_conf_saml_metadata_url_key(self):
         assert CONF_SAML_METADATA_URL_KEY == "saml_metadata_url"
 
-    def test_conf_enable_key(self):
-        assert CONF_ENABLE_KEY == "enable"
+    def test_conf_avp_policy_store_id_key(self):
+        assert CONF_AVP_POLICY_STORE_ID_KEY == "avp_policy_store_id"
diff --git a/tests/providers/amazon/aws/auth_manager/test_user.py b/tests/providers/amazon/aws/auth_manager/test_user.py
index b518c2a831c23..6b5bb6da8030d 100644
--- a/tests/providers/amazon/aws/auth_manager/test_user.py
+++ b/tests/providers/amazon/aws/auth_manager/test_user.py
@@ -41,3 +41,6 @@ def test_get_name_with_email(self, user):
     def test_get_name_with_user_id(self, user):
         user.user_id = "user_id"
         assert user.get_name() == "user_id"
+
+    def test_get_groups(self, user):
+        assert user.get_groups() == []
diff --git a/tests/providers/amazon/aws/fs/test_s3.py b/tests/providers/amazon/aws/fs/test_s3.py
index babddf078a3e2..ab9c5c1092519 100644
--- a/tests/providers/amazon/aws/fs/test_s3.py
+++ b/tests/providers/amazon/aws/fs/test_s3.py
@@ -17,6 +17,7 @@
 from __future__ import annotations
 
 import os
+from typing import cast
 from unittest.mock import patch
 
 import pytest
@@ -36,11 +37,15 @@
 
 class TestFilesystem:
     def test_get_s3fs(self):
+        import s3fs
+
         from airflow.providers.amazon.aws.fs.s3 import get_fs
 
-        fs = get_fs(conn_id=TEST_CONN)
+        fs = get_fs(conn_id=TEST_CONN, storage_options={"key": "value"})
+        fs = cast(s3fs.S3FileSystem, fs)
 
         assert "s3" in fs.protocol
+        assert fs.config_kwargs["key"] == "value"
 
     @patch("s3fs.S3FileSystem", autospec=True)
     def test_get_s3fs_anonymous(self, s3fs, monkeypatch):
@@ -51,7 +56,7 @@ def test_get_s3fs_anonymous(self, s3fs, monkeypatch):
             if env_name.startswith("AWS"):
                 monkeypatch.delenv(env_name, raising=False)
 
-        get_fs(conn_id=None)
+        get_fs(conn_id=None, storage_options=None)
 
         assert s3fs.call_args.kwargs["anon"] is True
 
diff --git a/tests/providers/amazon/aws/hooks/test_verified_permissions.py b/tests/providers/amazon/aws/hooks/test_verified_permissions.py
new file mode 100644
index 0000000000000..e7594dc3a55fc
--- /dev/null
+++ b/tests/providers/amazon/aws/hooks/test_verified_permissions.py
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software 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.
+from __future__ import annotations
+
+from airflow.providers.amazon.aws.hooks.verified_permissions import VerifiedPermissionsHook
+
+
+class TestVerifiedPermissionsHook:
+    def test_conn_attribute(self):
+        hook = VerifiedPermissionsHook()
+        assert hasattr(hook, "conn")
diff --git a/tests/providers/google/cloud/sensors/test_gcs.py b/tests/providers/google/cloud/sensors/test_gcs.py
index 422cd8f71a39e..1d4bbcec876e0 100644
--- a/tests/providers/google/cloud/sensors/test_gcs.py
+++ b/tests/providers/google/cloud/sensors/test_gcs.py
@@ -227,7 +227,9 @@ def test_gcs_object_existence_async_sensor_execute_complete(self):
 class TestTsFunction:
     def test_should_support_datetime(self):
         context = {
-            "dag": DAG(dag_id=TEST_DAG_ID, schedule=timedelta(days=5)),
+            "dag": DAG(
+                dag_id=TEST_DAG_ID, schedule=timedelta(days=5), start_date=datetime(2019, 2, 14, 0, 0)
+            ),
             "execution_date": datetime(2019, 2, 14, 0, 0),
         }
         result = ts_function(context)
diff --git a/tests/sensors/test_base.py b/tests/sensors/test_base.py
index 9d12c6237f766..9558a1df70dea 100644
--- a/tests/sensors/test_base.py
+++ b/tests/sensors/test_base.py
@@ -36,7 +36,6 @@
 from airflow.executors.executor_constants import (
     CELERY_EXECUTOR,
     CELERY_KUBERNETES_EXECUTOR,
-    DASK_EXECUTOR,
     DEBUG_EXECUTOR,
     KUBERNETES_EXECUTOR,
     LOCAL_EXECUTOR,
@@ -879,7 +878,6 @@ def test_sensor_with_xcom_fails(self, make_sensor):
             (LOCAL_EXECUTOR, LocalExecutor, "poke"),
             (LOCAL_KUBERNETES_EXECUTOR, LocalKubernetesExecutor, "poke"),
             (SEQUENTIAL_EXECUTOR, SequentialExecutor, "poke"),
-            (DASK_EXECUTOR, DebugExecutor, "poke"),
         ],
         ids=[
             CELERY_EXECUTOR,
@@ -889,7 +887,6 @@ def test_sensor_with_xcom_fails(self, make_sensor):
             LOCAL_EXECUTOR,
             LOCAL_KUBERNETES_EXECUTOR,
             SEQUENTIAL_EXECUTOR,
-            DASK_EXECUTOR,
         ],
     )
     def test_prepare_for_execution(self, executor_cls_mode):
diff --git a/tests/serialization/test_serialized_objects.py b/tests/serialization/test_serialized_objects.py
index 0af29e8ebc67e..a40e0d01ea4fa 100644
--- a/tests/serialization/test_serialized_objects.py
+++ b/tests/serialization/test_serialized_objects.py
@@ -33,6 +33,7 @@
 from airflow.models.dagrun import DagRun
 from airflow.models.param import Param
 from airflow.models.taskinstance import SimpleTaskInstance, TaskInstance
+from airflow.models.tasklog import LogTemplate
 from airflow.models.xcom_arg import XComArg
 from airflow.operators.empty import EmptyOperator
 from airflow.operators.python import PythonOperator
@@ -41,6 +42,7 @@
 from airflow.serialization.pydantic.dag_run import DagRunPydantic
 from airflow.serialization.pydantic.job import JobPydantic
 from airflow.serialization.pydantic.taskinstance import TaskInstancePydantic
+from airflow.serialization.pydantic.tasklog import LogTemplatePydantic
 from airflow.settings import _ENABLE_AIP_44
 from airflow.utils.operator_resources import Resources
 from airflow.utils.state import DagRunState, State
@@ -278,6 +280,12 @@ def test_backcompat_deserialize_connection(conn_uri):
             DAT.DAG_MODEL,
             lambda a, b: a.fileloc == b.fileloc and a.schedule_interval == b.schedule_interval,
         ),
+        (
+            LogTemplate(id=1, filename="test_file", elasticsearch_id="test_id", created_at=datetime.now()),
+            LogTemplatePydantic,
+            DAT.LOG_TEMPLATE,
+            lambda a, b: a.id == b.id and a.filename == b.filename and equal_time(a.created_at, b.created_at),
+        ),
     ],
 )
 def test_serialize_deserialize_pydantic(input, pydantic_class, encoded_type, cmp_func):
diff --git a/tests/timetables/test_interval_timetable.py b/tests/timetables/test_interval_timetable.py
index 596c274cf7152..928ae83ab3d02 100644
--- a/tests/timetables/test_interval_timetable.py
+++ b/tests/timetables/test_interval_timetable.py
@@ -253,3 +253,308 @@ def test_cron_next_dagrun_info_alignment(last_data_interval: DataInterval, expec
         restriction=TimeRestriction(None, None, True),
     )
     assert info == expected_info
+
+
+class TestCronIntervalDst:
+    """Test cron interval timetable can correctly enter a DST boundary.
+
+    Zurich (Switzerland) is chosen since it is +1/+2 DST, making it a bit easier
+    to get my head around the mental timezone conversion.
+
+    In 2023, DST entered on 26th Mar, 2am local clocks (1am UTC) were turned
+    forward to 3am. DST exited on 29th Oct, 3am local clocks (1am UTC) were
+    turned backward to 2am (making the 2:XX hour fold).
+    """
+
+    def test_entering_exact(self) -> None:
+        timetable = CronDataIntervalTimetable("0 3 * * *", timezone="Europe/Zurich")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2023, 3, 24, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Last run before DST. Interval starts and ends on 2am UTC (local time is +1).
+        next_info = timetable.next_dagrun_info(last_automated_data_interval=None, restriction=restriction)
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 24, 2, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 25, 2, tz=TIMEZONE),
+        )
+
+        # Crossing the DST switch. Interval starts on 2am UTC (local time +1)
+        # but ends on 1am UTC (local time is +2).
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 25, 2, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 26, 1, tz=TIMEZONE),
+        )
+
+        # In DST. Interval starts and ends on 1am UTC (local time is +2).
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 26, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 27, 1, tz=TIMEZONE),
+        )
+
+    def test_entering_skip(self) -> None:
+        timetable = CronDataIntervalTimetable("0 2 * * *", timezone="Europe/Zurich")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2023, 3, 24, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Last run before DST. Interval starts and ends on 1am UTC (local time is +1).
+        next_info = timetable.next_dagrun_info(last_automated_data_interval=None, restriction=restriction)
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 24, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 25, 1, tz=TIMEZONE),
+        )
+
+        # Crossing the DST switch. Interval starts on 1am UTC (local time +1)
+        # and ends on 1am UTC (local time is +2) since the 2am wall clock time
+        # does not logically exist due to entering DST.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 25, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 26, 1, tz=TIMEZONE),
+        )
+
+        # In DST. Interval starts on 1am UTC (local time is +2 but 2am local
+        # time is not possible) and ends on 0am UTC.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 3, 26, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 3, 27, 0, tz=TIMEZONE),
+        )
+
+    def test_exiting_exact(self) -> None:
+        timetable = CronDataIntervalTimetable("0 3 * * *", timezone="Europe/Zurich")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2023, 10, 27, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Last run in DST. Interval starts and ends on 1am UTC (local time is +2).
+        next_info = timetable.next_dagrun_info(last_automated_data_interval=None, restriction=restriction)
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 27, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 28, 1, tz=TIMEZONE),
+        )
+
+        # Crossing the DST switch. Interval starts on 1am UTC (local time +2)
+        # and ends on 2am UTC (local time +1).
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 28, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 29, 2, tz=TIMEZONE),
+        )
+
+        # Out of DST. Interval starts and ends on 2am UTC (local time is +1).
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 29, 2, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 30, 2, tz=TIMEZONE),
+        )
+
+    def test_exiting_fold(self) -> None:
+        timetable = CronDataIntervalTimetable("0 2 * * *", timezone="Europe/Zurich")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2023, 10, 27, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Last run before folding. Interval starts and ends on 0am UTC (local
+        # time is +2).
+        next_info = timetable.next_dagrun_info(last_automated_data_interval=None, restriction=restriction)
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 27, 0, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 28, 0, tz=TIMEZONE),
+        )
+
+        # Account for folding. Interval starts on 0am UTC (local time +2) and
+        # ends on 1am UTC (local time +1). There are two 2am local times on the
+        # 29th due to folding. We end on the second one (fold=1. There's no
+        # logical reason here; this is simply what Airflow has been doing since
+        # a long time ago, and there's no point breaking it.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 28, 0, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 29, 1, tz=TIMEZONE),
+        )
+
+        # Stepping out of DST. Interval starts from the folded 2am local time
+        # (1am UTC out of DST) since that is when the previous interval ended.
+        # It ends at 1am UTC (local time is +1) normally.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2023, 10, 29, 1, tz=TIMEZONE),
+            pendulum.datetime(2023, 10, 30, 1, tz=TIMEZONE),
+        )
+
+
+class TestCronIntervalDstNonTrivial:
+    """These tests are similar to TestCronIntervalDst but with a different cron.
+
+    The original test cases are from apache/airflow#7999. In 2020 at Los Angeles,
+    DST started on 8th Mar; 10am UTC was turned from 2am UTC-8 to 3am UTC-7.
+    """
+
+    def test_7_to_8_entering(self):
+        timetable = CronDataIntervalTimetable("0 7-8 * * *", timezone="America/Los_Angeles")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2020, 3, 7, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Triggers as expected before the interval touches the DST transition.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=None,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 7, 7 + 8, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 7, 8 + 8, tz=TIMEZONE),
+        )
+
+        # This interval ends an hour early since it includes the DST switch!
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 7, 8 + 8, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 8, 7 + 7, tz=TIMEZONE),
+        )
+
+        # We're fully into DST so the interval is as expected.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 8, 7 + 7, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 8, 8 + 7, tz=TIMEZONE),
+        )
+
+    def test_7_and_9_entering(self):
+        timetable = CronDataIntervalTimetable("0 7,9 * * *", timezone="America/Los_Angeles")
+        restriction = TimeRestriction(
+            earliest=pendulum.datetime(2020, 3, 7, tz=TIMEZONE),
+            latest=None,
+            catchup=True,
+        )
+
+        # Triggers as expected before the interval touches the DST transition.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=None,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 7, 7 + 8, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 7, 9 + 8, tz=TIMEZONE),
+        )
+
+        # This interval ends an hour early since it includes the DST switch!
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 7, 9 + 8, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 8, 7 + 7, tz=TIMEZONE),
+        )
+
+        # We're fully into DST so the interval is as expected.
+        next_info = timetable.next_dagrun_info(
+            last_automated_data_interval=next_info.data_interval,
+            restriction=restriction,
+        )
+        assert next_info and next_info.data_interval == DataInterval(
+            pendulum.datetime(2020, 3, 8, 7 + 7, tz=TIMEZONE),
+            pendulum.datetime(2020, 3, 8, 9 + 7, tz=TIMEZONE),
+        )
+
+
+def test_fold_scheduling():
+    timetable = CronDataIntervalTimetable("*/30 * * * *", timezone="Europe/Zurich")
+    restriction = TimeRestriction(
+        earliest=pendulum.datetime(2023, 10, 28, 23, 30, tz=TIMEZONE),  # Locally 1:30 (DST).
+        latest=None,
+        catchup=True,
+    )
+
+    # Still in DST, acting normally.
+    next_info = timetable.next_dagrun_info(
+        last_automated_data_interval=None,
+        restriction=restriction,
+    )
+    assert next_info and next_info.data_interval == DataInterval(
+        pendulum.datetime(2023, 10, 28, 23, 30, tz=TIMEZONE),
+        pendulum.datetime(2023, 10, 29, 0, 0, tz=TIMEZONE),  # Locally 2am (DST).
+    )
+    next_info = timetable.next_dagrun_info(
+        last_automated_data_interval=next_info.data_interval,
+        restriction=restriction,
+    )
+    assert next_info and next_info.data_interval == DataInterval(
+        pendulum.datetime(2023, 10, 29, 0, 0, tz=TIMEZONE),
+        pendulum.datetime(2023, 10, 29, 0, 30, tz=TIMEZONE),  # Locally 2:30 (DST).
+    )
+
+    # Crossing into fold.
+    next_info = timetable.next_dagrun_info(
+        last_automated_data_interval=next_info.data_interval,
+        restriction=restriction,
+    )
+    assert next_info and next_info.data_interval == DataInterval(
+        pendulum.datetime(2023, 10, 29, 0, 30, tz=TIMEZONE),
+        pendulum.datetime(2023, 10, 29, 1, 0, tz=TIMEZONE),  # Locally 2am (fold, not DST).
+    )
+
+    # In the "fold zone".
+    next_info = timetable.next_dagrun_info(
+        last_automated_data_interval=next_info.data_interval,
+        restriction=restriction,
+    )
+    assert next_info and next_info.data_interval == DataInterval(
+        pendulum.datetime(2023, 10, 29, 1, 0, tz=TIMEZONE),
+        pendulum.datetime(2023, 10, 29, 1, 30, tz=TIMEZONE),  # Locally 2am (fold, not DST).
+    )
+
+    # Stepping out of fold.
+    next_info = timetable.next_dagrun_info(
+        last_automated_data_interval=next_info.data_interval,
+        restriction=restriction,
+    )
+    assert next_info and next_info.data_interval == DataInterval(
+        pendulum.datetime(2023, 10, 29, 1, 30, tz=TIMEZONE),
+        pendulum.datetime(2023, 10, 29, 2, 0, tz=TIMEZONE),  # Locally 3am (not DST).
+    )
diff --git a/tests/www/test_security.py b/tests/www/test_security.py
index d7aaa0d29e360..0d97ce6ff2abf 100644
--- a/tests/www/test_security.py
+++ b/tests/www/test_security.py
@@ -429,6 +429,7 @@ def test_get_user_roles_for_anonymous_user(app, security_manager):
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG_WARNING),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_JOB),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_PLUGIN),
+        (permissions.ACTION_CAN_READ, permissions.RESOURCE_POOL),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_SLA_MISS),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_TASK_INSTANCE),
         (permissions.ACTION_CAN_READ, permissions.RESOURCE_TASK_LOG),
diff --git a/tests/www/views/test_views_custom_user_views.py b/tests/www/views/test_views_custom_user_views.py
index b4b2166a8fe95..1e2e1ab99555c 100644
--- a/tests/www/views/test_views_custom_user_views.py
+++ b/tests/www/views/test_views_custom_user_views.py
@@ -248,8 +248,9 @@ def get_session_by_id(self, session_id: str):
         return self.db.session.query(self.model).filter(self.model.session_id == session_id).scalar()
 
     @mock.patch("airflow.auth.managers.fab.security_manager.override.flash")
+    @mock.patch("airflow.auth.managers.fab.security_manager.override.has_request_context", return_value=True)
     @mock.patch("airflow.auth.managers.fab.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS", 1)
-    def test_refuse_delete(self, flash_mock):
+    def test_refuse_delete(self, _mock_has_context, flash_mock):
         self.create_user_db_session("session_id_1", timedelta(days=1), self.user_1.id)
         self.create_user_db_session("session_id_2", timedelta(days=1), self.user_2.id)
         self.db.session.commit()
@@ -268,7 +269,8 @@ def test_refuse_delete(self, flash_mock):
         assert self.get_session_by_id("session_id_2") is not None
 
     @mock.patch("airflow.auth.managers.fab.security_manager.override.flash")
-    def test_warn_securecookie(self, flash_mock):
+    @mock.patch("airflow.auth.managers.fab.security_manager.override.has_request_context", return_value=True)
+    def test_warn_securecookie(self, _mock_has_context, flash_mock):
         self.app.session_interface = SecureCookieSessionInterface()
         self.security_manager.reset_password(self.user_1.id, "new_password")
         assert flash_mock.called
@@ -276,3 +278,33 @@ def test_warn_securecookie(self, flash_mock):
             "Since you are using `securecookie` session backend mechanism, we cannot"
             in flash_mock.call_args[0][0]
         )
+
+    @mock.patch("airflow.auth.managers.fab.security_manager.override.log")
+    @mock.patch("airflow.auth.managers.fab.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS", 1)
+    def test_refuse_delete_cli(self, log_mock):
+        self.create_user_db_session("session_id_1", timedelta(days=1), self.user_1.id)
+        self.create_user_db_session("session_id_2", timedelta(days=1), self.user_2.id)
+        self.db.session.commit()
+        self.db.session.flush()
+        assert self.db.session.query(self.model).count() == 2
+        assert self.get_session_by_id("session_id_1") is not None
+        assert self.get_session_by_id("session_id_2") is not None
+        self.security_manager.reset_password(self.user_1.id, "new_password")
+        assert log_mock.warning.called
+        assert (
+            "The old sessions for user user_to_delete_1 have *NOT* been deleted!\n"
+            in log_mock.warning.call_args[0][0]
+        )
+        assert self.db.session.query(self.model).count() == 2
+        assert self.get_session_by_id("session_id_1") is not None
+        assert self.get_session_by_id("session_id_2") is not None
+
+    @mock.patch("airflow.auth.managers.fab.security_manager.override.log")
+    def test_warn_securecookie_cli(self, log_mock):
+        self.app.session_interface = SecureCookieSessionInterface()
+        self.security_manager.reset_password(self.user_1.id, "new_password")
+        assert log_mock.warning.called
+        assert (
+            "Since you are using `securecookie` session backend mechanism, we cannot"
+            in log_mock.warning.call_args[0][0]
+        )
diff --git a/tests/www/views/test_views_grid.py b/tests/www/views/test_views_grid.py
index 4d0b6a7ffc04f..0e6e92b23c843 100644
--- a/tests/www/views/test_views_grid.py
+++ b/tests/www/views/test_views_grid.py
@@ -162,6 +162,27 @@ def test_no_runs(admin_client, dag_without_runs):
     }
 
 
+def test_grid_data_filtered_on_run_type_and_run_state(admin_client, dag_with_runs):
+    for uri_params, expected_run_types, expected_run_states in [
+        ("run_state=success&run_state=queued", ["scheduled"], ["success"]),
+        ("run_state=running&run_state=failed", ["scheduled"], ["running"]),
+        ("run_type=scheduled&run_type=manual", ["scheduled", "scheduled"], ["success", "running"]),
+        ("run_type=backfill&run_type=manual", [], []),
+        ("run_state=running&run_type=failed&run_type=backfill&run_type=manual", [], []),
+        (
+            "run_state=running&run_type=failed&run_type=scheduled&run_type=backfill&run_type=manual",
+            ["scheduled"],
+            ["running"],
+        ),
+    ]:
+        resp = admin_client.get(f"/object/grid_data?dag_id={DAG_ID}&{uri_params}", follow_redirects=True)
+        assert resp.status_code == 200, resp.json
+        actual_run_types = list(map(lambda x: x["run_type"], resp.json["dag_runs"]))
+        actual_run_states = list(map(lambda x: x["state"], resp.json["dag_runs"]))
+        assert actual_run_types == expected_run_types
+        assert actual_run_states == expected_run_states
+
+
 # Create this as a fixture so that it is applied before the `dag_with_runs` fixture is!
 @pytest.fixture
 def freeze_time_for_dagruns(time_machine):
diff --git a/tests/www/views/test_views_trigger_dag.py b/tests/www/views/test_views_trigger_dag.py
index 65ad8734d5140..6471c092bd5f9 100644
--- a/tests/www/views/test_views_trigger_dag.py
+++ b/tests/www/views/test_views_trigger_dag.py
@@ -57,7 +57,7 @@ def test_trigger_dag_button_normal_exist(admin_client):
 )
 def test_trigger_dag_button(admin_client, req, expected_run_id):
     test_dag_id = "example_bash_operator"
-    admin_client.post(f"dags/{test_dag_id}/trigger?{req}")
+    admin_client.post(f"dags/{test_dag_id}/trigger?{req}", data={"conf": "{}"})
     with create_session() as session:
         run = session.query(DagRun).filter(DagRun.dag_id == test_dag_id).first()
     assert run is not None
@@ -68,8 +68,12 @@ def test_trigger_dag_button(admin_client, req, expected_run_id):
 def test_duplicate_run_id(admin_client):
     test_dag_id = "example_bash_operator"
     run_id = "test_run"
-    admin_client.post(f"dags/{test_dag_id}/trigger?run_id={run_id}", follow_redirects=True)
-    response = admin_client.post(f"dags/{test_dag_id}/trigger?run_id={run_id}", follow_redirects=True)
+    admin_client.post(
+        f"dags/{test_dag_id}/trigger?run_id={run_id}", data={"conf": "{}"}, follow_redirects=True
+    )
+    response = admin_client.post(
+        f"dags/{test_dag_id}/trigger?run_id={run_id}", data={"conf": "{}"}, follow_redirects=True
+    )
     check_content_in_response(f"The run ID {run_id} already exists", response)
 
 
@@ -112,7 +116,9 @@ def test_trigger_dag_conf_not_dict(admin_client):
 def test_trigger_dag_wrong_execution_date(admin_client):
     test_dag_id = "example_bash_operator"
 
-    response = admin_client.post(f"dags/{test_dag_id}/trigger", data={"execution_date": "not_a_date"})
+    response = admin_client.post(
+        f"dags/{test_dag_id}/trigger", data={"conf": "{}", "execution_date": "not_a_date"}
+    )
     check_content_in_response("Invalid execution date", response)
 
     with create_session() as session:
@@ -124,7 +130,9 @@ def test_trigger_dag_execution_date_data_interval(admin_client):
     test_dag_id = "example_bash_operator"
     exec_date = timezone.utcnow()
 
-    admin_client.post(f"dags/{test_dag_id}/trigger", data={"execution_date": exec_date.isoformat()})
+    admin_client.post(
+        f"dags/{test_dag_id}/trigger", data={"conf": "{}", "execution_date": exec_date.isoformat()}
+    )
 
     with create_session() as session:
         run = session.query(DagRun).filter(DagRun.dag_id == test_dag_id).first()
@@ -361,7 +369,7 @@ def test_trigger_dag_params_array_value_none_render(admin_client, dag_maker, ses
 def test_dag_run_id_pattern(session, admin_client, pattern, run_id, result):
     with conf_vars({("scheduler", "allowed_run_id_pattern"): pattern}):
         test_dag_id = "example_bash_operator"
-        admin_client.post(f"dags/{test_dag_id}/trigger?&run_id={run_id}")
+        admin_client.post(f"dags/{test_dag_id}/trigger?run_id={run_id}", data={"conf": "{}"})
         run = session.query(DagRun).filter(DagRun.dag_id == test_dag_id).first()
         if result:
             assert run is not None
