You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2023/04/01 19:55:10 UTC
[airflow] 01/01: Add mechanism to suspend providers
This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch add-possibilty-to-suspend-providers
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit afc0c6ec45ae2afd2c85b1d270e3c17730da095b
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Sat Apr 1 17:42:34 2023 +0200
Add mechanism to suspend providers
As agreed in https://lists.apache.org/thread/g8b3k028qhzgw6c3yz4jvmlc67kcr9hj
we introduce mechanism to suspend providers from our suite of providers
when they are holding us back to older version of dependencies.
Provider's suspension is controlled from a single `suspend` flag in
`provider.yaml` - this flag is used to generate
providers_dependencies.json in generated folders (provider is skipped
if it has `suspended` flag set to `true`. This is enough to exclude
provider from the extras of airflow and (automatically) from being
used when CI image is build and constraints are being generated,
as well as from provider documentation/generation.
Also several parts of the CI build use the flag to filter out
such suspended provider from:
* verification of provider.yaml files in pre-commit is skipped
in terms of importing and checking if classes are defined and
listed in the provider.yaml
* the "tests" folders for providers are skipped automatically
if the provider has "suspend" = true set
* in case of PR that is aimed to modify suspended providers directory
tree (when it is not a global provider refactor) selective checks
will detect it and fail such PR with appropriate message suggesting
to fix the reason for suspention first
* documentation build is skipped for suspended providers
* mypy static checks will skip suspended provider folders while we
will still run ruff checks on them (unlike mypy ruff does not
expect the libraries that it imports to be available and we are
running ruff in a separate environment where no airflow dependencies
are installed anyway
---
.github/workflows/ci.yml | 9 ++
.pre-commit-config.yaml | 8 +-
Dockerfile.ci | 9 ++
airflow/provider.yaml.schema.json | 5 +
airflow/providers/airbyte/provider.yaml | 1 +
airflow/providers/alibaba/provider.yaml | 1 +
airflow/providers/amazon/provider.yaml | 1 +
airflow/providers/apache/beam/provider.yaml | 1 +
airflow/providers/apache/cassandra/provider.yaml | 1 +
airflow/providers/apache/drill/provider.yaml | 1 +
airflow/providers/apache/druid/provider.yaml | 1 +
airflow/providers/apache/flink/provider.yaml | 1 +
airflow/providers/apache/hdfs/provider.yaml | 1 +
airflow/providers/apache/hive/provider.yaml | 1 +
airflow/providers/apache/impala/provider.yaml | 1 +
airflow/providers/apache/kylin/provider.yaml | 1 +
airflow/providers/apache/livy/provider.yaml | 1 +
airflow/providers/apache/pig/provider.yaml | 1 +
airflow/providers/apache/pinot/provider.yaml | 1 +
airflow/providers/apache/spark/provider.yaml | 1 +
airflow/providers/apache/sqoop/provider.yaml | 1 +
airflow/providers/arangodb/provider.yaml | 1 +
airflow/providers/asana/provider.yaml | 1 +
airflow/providers/atlassian/jira/provider.yaml | 1 +
airflow/providers/celery/provider.yaml | 1 +
airflow/providers/cloudant/provider.yaml | 1 +
airflow/providers/cncf/kubernetes/provider.yaml | 1 +
airflow/providers/common/sql/provider.yaml | 1 +
airflow/providers/databricks/provider.yaml | 1 +
airflow/providers/datadog/provider.yaml | 1 +
airflow/providers/dbt/cloud/provider.yaml | 1 +
airflow/providers/dingding/provider.yaml | 1 +
airflow/providers/discord/provider.yaml | 1 +
airflow/providers/docker/provider.yaml | 1 +
airflow/providers/elasticsearch/provider.yaml | 1 +
airflow/providers/exasol/provider.yaml | 1 +
airflow/providers/facebook/provider.yaml | 1 +
airflow/providers/ftp/provider.yaml | 1 +
airflow/providers/github/provider.yaml | 1 +
airflow/providers/google/provider.yaml | 1 +
airflow/providers/grpc/provider.yaml | 1 +
airflow/providers/hashicorp/provider.yaml | 1 +
airflow/providers/http/provider.yaml | 1 +
airflow/providers/imap/provider.yaml | 1 +
airflow/providers/influxdb/provider.yaml | 1 +
airflow/providers/jdbc/provider.yaml | 1 +
airflow/providers/jenkins/provider.yaml | 1 +
airflow/providers/microsoft/azure/provider.yaml | 1 +
airflow/providers/microsoft/mssql/provider.yaml | 1 +
airflow/providers/microsoft/psrp/provider.yaml | 1 +
airflow/providers/microsoft/winrm/provider.yaml | 1 +
airflow/providers/mongo/provider.yaml | 1 +
airflow/providers/mysql/provider.yaml | 1 +
airflow/providers/neo4j/provider.yaml | 1 +
airflow/providers/odbc/provider.yaml | 1 +
airflow/providers/openfaas/provider.yaml | 1 +
airflow/providers/opsgenie/provider.yaml | 1 +
airflow/providers/oracle/provider.yaml | 1 +
airflow/providers/pagerduty/provider.yaml | 1 +
airflow/providers/papermill/provider.yaml | 1 +
airflow/providers/plexus/provider.yaml | 1 +
airflow/providers/postgres/provider.yaml | 1 +
airflow/providers/presto/provider.yaml | 1 +
airflow/providers/qubole/provider.yaml | 1 +
airflow/providers/redis/provider.yaml | 1 +
airflow/providers/salesforce/provider.yaml | 1 +
airflow/providers/samba/provider.yaml | 1 +
airflow/providers/segment/provider.yaml | 1 +
airflow/providers/sendgrid/provider.yaml | 1 +
airflow/providers/sftp/provider.yaml | 1 +
airflow/providers/singularity/provider.yaml | 1 +
airflow/providers/slack/provider.yaml | 1 +
airflow/providers/smtp/provider.yaml | 1 +
airflow/providers/snowflake/provider.yaml | 1 +
airflow/providers/sqlite/provider.yaml | 1 +
airflow/providers/ssh/provider.yaml | 1 +
airflow/providers/tableau/provider.yaml | 1 +
airflow/providers/tabular/provider.yaml | 1 +
airflow/providers/telegram/provider.yaml | 1 +
airflow/providers/trino/provider.yaml | 1 +
airflow/providers/vertica/provider.yaml | 1 +
airflow/providers/yandex/provider.yaml | 2 +-
airflow/providers/zendesk/provider.yaml | 1 +
.../airflow_breeze/utils/docker_command_utils.py | 1 +
dev/breeze/src/airflow_breeze/utils/path_utils.py | 3 +
.../src/airflow_breeze/utils/selective_checks.py | 50 +++++++--
.../airflow_breeze/utils/suspended_providers.py | 39 +++----
docs/apache-airflow/extra-packages-ref.rst | 2 -
docs/exts/docs_build/docs_builder.py | 2 +-
docs/publish_docs.py | 4 +-
generated/provider_dependencies.json | 7 --
images/breeze/output-commands-hash.txt | 10 +-
images/breeze/output_build-docs.svg | 116 ++++++++++-----------
images/breeze/output_release-management.svg | 30 +++---
...management_generate-issue-content-providers.svg | 34 +++---
...e-management_prepare-provider-documentation.svg | 32 +++---
...elease-management_prepare-provider-packages.svg | 32 +++---
scripts/ci/docker-compose/_docker.env | 1 +
scripts/ci/docker-compose/base.yml | 1 +
scripts/ci/docker-compose/devcontainer.env | 1 +
scripts/ci/pre_commit/pre_commit_mypy.py | 5 +
.../pre_commit_update_providers_dependencies.py | 7 +-
scripts/docker/entrypoint_ci.sh | 9 ++
scripts/in_container/run_mypy.sh | 11 +-
.../in_container/run_provider_yaml_files_check.py | 50 +++++----
105 files changed, 359 insertions(+), 199 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 64b22427a4..2a70e2d1b0 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -165,6 +165,7 @@ jobs:
docs-filter: ${{ steps.selective-checks.outputs.docs-filter }}
skip-pre-commits: ${{ steps.selective-checks.outputs.skip-pre-commits }}
debug-resources: ${{ steps.selective-checks.outputs.debug-resources }}
+ suspended-providers-folders: ${{ steps.selective-checks.outputs.suspended-providers-folders }}
source-head-repo: ${{ steps.source-run-info.outputs.source-head-repo }}
pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
in-workflow-build: ${{ steps.source-run-info.outputs.in-workflow-build }}
@@ -879,6 +880,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
@@ -919,6 +921,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
@@ -969,6 +972,7 @@ jobs:
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
BACKEND: "mysql"
PYTHON_MAJOR_MINOR_VERSION: "${{matrix.python-version}}"
@@ -1011,6 +1015,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
@@ -1053,6 +1058,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
PYTHON_MAJOR_MINOR_VERSION: "${{matrix.python-version}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
@@ -1089,6 +1095,7 @@ jobs:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
BACKEND: "postgres"
@@ -1148,6 +1155,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
@@ -1189,6 +1197,7 @@ jobs:
env:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
TEST_TYPES: "Quarantined"
+ SUSPENDED_PROVIDERS_FOLDERS: "${{ needs.build-info.outputs.suspended-providers-folders }}"
PR_LABELS: "${{needs.build-info.outputs.pull-request-labels}}"
PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}"
DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 07fa5cfb38..5f72eff4fd 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -894,7 +894,7 @@ repos:
entry: ./scripts/ci/pre_commit/pre_commit_mypy.py
files: ^dev/.*\.py$
require_serial: true
- additional_dependencies: ['rich>=12.4.4', 'inputimeout']
+ additional_dependencies: ['rich>=12.4.4', 'inputimeout', 'pyyaml']
- id: run-mypy
name: Run mypy for core
language: python
@@ -902,7 +902,7 @@ repos:
files: \.py$
exclude: ^.*/_vendor/|^airflow/migrations|^airflow/providers|^dev|^docs|^provider_packages|^tests/providers|^tests/system/providers
require_serial: true
- additional_dependencies: ['rich>=12.4.4', 'inputimeout']
+ additional_dependencies: ['rich>=12.4.4', 'inputimeout', 'pyyaml']
- id: run-mypy
name: Run mypy for providers
language: python
@@ -910,7 +910,7 @@ repos:
files: ^airflow/providers/.*\.py$|^tests/providers/\*\.py$|^tests/system/providers/\*\.py$
exclude: ^.*/_vendor/
require_serial: true
- additional_dependencies: ['rich>=12.4.4', 'inputimeout']
+ additional_dependencies: ['rich>=12.4.4', 'inputimeout', 'pyyaml']
- id: run-mypy
name: Run mypy for /docs/ folder
language: python
@@ -918,7 +918,7 @@ repos:
files: ^docs/.*\.py$
exclude: ^docs/rtd-deprecation
require_serial: true
- additional_dependencies: ['rich>=12.4.4', 'inputimeout']
+ additional_dependencies: ['rich>=12.4.4', 'inputimeout', 'pyyaml']
- id: check-provider-yaml-valid
name: Validate provider.yaml files
entry: ./scripts/ci/pre_commit/pre_commit_check_provider_yaml_files.py
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 15366731df..2429f563a6 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -890,6 +890,15 @@ EXTRA_PYTEST_ARGS=(
"-rfEX"
)
+if [[ ${SUSPENDED_PROVIDERS_FOLDERS=} != "" ]]; then
+ for provider in ${SUSPENDED_PROVIDERS_FOLDERS=}; do
+ echo "Skipping tests for suspended provider: ${provider}"
+ EXTRA_PYTEST_ARGS+=(
+ "--ignore=tests/providers/${provider}"
+ )
+ done
+fi
+
if [[ "${TEST_TYPE}" == "Helm" ]]; then
_cpus="$(grep -c 'cpu[0-9]' /proc/stat)"
echo "Running tests with ${_cpus} CPUs in parallel"
diff --git a/airflow/provider.yaml.schema.json b/airflow/provider.yaml.schema.json
index ab86fd1643..fcb8851830 100644
--- a/airflow/provider.yaml.schema.json
+++ b/airflow/provider.yaml.schema.json
@@ -21,6 +21,10 @@
"type": "string"
}
},
+ "suspended": {
+ "description": "If set to true, the provider is suspended and it's not a candidate for release nor contributes dependencies to constraint calculations/CI image. Tests are excluded.",
+ "type:": "boolean"
+ },
"dependencies": {
"description": "Dependencies that should be added to the provider",
"type": "array",
@@ -326,6 +330,7 @@
"name",
"package-name",
"description",
+ "suspended",
"dependencies",
"versions"
]
diff --git a/airflow/providers/airbyte/provider.yaml b/airflow/providers/airbyte/provider.yaml
index 2d164460e6..27a98193cb 100644
--- a/airflow/providers/airbyte/provider.yaml
+++ b/airflow/providers/airbyte/provider.yaml
@@ -21,6 +21,7 @@ name: Airbyte
description: |
`Airbyte <https://airbyte.io/>`__
+suspended: false
versions:
- 3.2.0
- 3.1.0
diff --git a/airflow/providers/alibaba/provider.yaml b/airflow/providers/alibaba/provider.yaml
index cd5cbced35..a7fe5e35a3 100644
--- a/airflow/providers/alibaba/provider.yaml
+++ b/airflow/providers/alibaba/provider.yaml
@@ -21,6 +21,7 @@ name: Alibaba
description: |
Alibaba Cloud integration (including `Alibaba Cloud <https://www.alibabacloud.com//>`__).
+suspended: false
versions:
- 2.2.0
- 2.1.0
diff --git a/airflow/providers/amazon/provider.yaml b/airflow/providers/amazon/provider.yaml
index 763110ed0e..13fd929dcf 100644
--- a/airflow/providers/amazon/provider.yaml
+++ b/airflow/providers/amazon/provider.yaml
@@ -21,6 +21,7 @@ name: Amazon
description: |
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).
+suspended: false
versions:
- 7.3.0
- 7.2.1
diff --git a/airflow/providers/apache/beam/provider.yaml b/airflow/providers/apache/beam/provider.yaml
index 7802afe2e8..cb1d6e7440 100644
--- a/airflow/providers/apache/beam/provider.yaml
+++ b/airflow/providers/apache/beam/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Beam
description: |
`Apache Beam <https://beam.apache.org/>`__.
+suspended: false
versions:
- 4.3.0
- 4.2.0
diff --git a/airflow/providers/apache/cassandra/provider.yaml b/airflow/providers/apache/cassandra/provider.yaml
index 2055bd6c60..4e52df6c76 100644
--- a/airflow/providers/apache/cassandra/provider.yaml
+++ b/airflow/providers/apache/cassandra/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Cassandra
description: |
`Apache Cassandra <http://cassandra.apache.org/>`__.
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/apache/drill/provider.yaml b/airflow/providers/apache/drill/provider.yaml
index b03f486313..f11267d747 100644
--- a/airflow/providers/apache/drill/provider.yaml
+++ b/airflow/providers/apache/drill/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Drill
description: |
`Apache Drill <https://drill.apache.org/>`__.
+suspended: false
versions:
- 2.3.1
- 2.3.0
diff --git a/airflow/providers/apache/druid/provider.yaml b/airflow/providers/apache/druid/provider.yaml
index d391f1a371..29c3e6d895 100644
--- a/airflow/providers/apache/druid/provider.yaml
+++ b/airflow/providers/apache/druid/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Druid
description: |
`Apache Druid <https://druid.apache.org/>`__.
+suspended: false
versions:
- 3.3.1
- 3.3.0
diff --git a/airflow/providers/apache/flink/provider.yaml b/airflow/providers/apache/flink/provider.yaml
index 918e30af17..d1af83fef8 100644
--- a/airflow/providers/apache/flink/provider.yaml
+++ b/airflow/providers/apache/flink/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Flink
description: |
`Apache Flink <https://flink.apache.org/>`__
+suspended: false
versions:
- 1.0.1
- 1.0.0
diff --git a/airflow/providers/apache/hdfs/provider.yaml b/airflow/providers/apache/hdfs/provider.yaml
index 2f575d7da3..d71447698a 100644
--- a/airflow/providers/apache/hdfs/provider.yaml
+++ b/airflow/providers/apache/hdfs/provider.yaml
@@ -22,6 +22,7 @@ description: |
`Hadoop Distributed File System (HDFS) <https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html>`__
and `WebHDFS <https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html>`__.
+suspended: false
versions:
- 3.2.0
- 3.1.0
diff --git a/airflow/providers/apache/hive/provider.yaml b/airflow/providers/apache/hive/provider.yaml
index 4c591336a8..48d506ca89 100644
--- a/airflow/providers/apache/hive/provider.yaml
+++ b/airflow/providers/apache/hive/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Hive
description: |
`Apache Hive <https://hive.apache.org/>`__
+suspended: false
versions:
- 6.0.0
- 5.1.3
diff --git a/airflow/providers/apache/impala/provider.yaml b/airflow/providers/apache/impala/provider.yaml
index 0d8501a652..8edb2b569d 100644
--- a/airflow/providers/apache/impala/provider.yaml
+++ b/airflow/providers/apache/impala/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Impala
description: |
`Apache Impala <https://impala.apache.org/>`__.
+suspended: false
versions:
- 1.0.0
diff --git a/airflow/providers/apache/kylin/provider.yaml b/airflow/providers/apache/kylin/provider.yaml
index 73f69523e1..b4658c02bb 100644
--- a/airflow/providers/apache/kylin/provider.yaml
+++ b/airflow/providers/apache/kylin/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Kylin
description: |
`Apache Kylin <https://kylin.apache.org/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/apache/livy/provider.yaml b/airflow/providers/apache/livy/provider.yaml
index 56ca49ef9a..bed5e77447 100644
--- a/airflow/providers/apache/livy/provider.yaml
+++ b/airflow/providers/apache/livy/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Livy
description: |
`Apache Livy <https://livy.apache.org/>`__
+suspended: false
versions:
- 3.3.0
- 3.2.0
diff --git a/airflow/providers/apache/pig/provider.yaml b/airflow/providers/apache/pig/provider.yaml
index df1c55a8a7..86b502571f 100644
--- a/airflow/providers/apache/pig/provider.yaml
+++ b/airflow/providers/apache/pig/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Pig
description: |
`Apache Pig <https://pig.apache.org/>`__
+suspended: false
versions:
- 4.0.0
- 3.0.0
diff --git a/airflow/providers/apache/pinot/provider.yaml b/airflow/providers/apache/pinot/provider.yaml
index b283ea9ca2..f743ee99f4 100644
--- a/airflow/providers/apache/pinot/provider.yaml
+++ b/airflow/providers/apache/pinot/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Pinot
description: |
`Apache Pinot <https://pinot.apache.org/>`__
+suspended: false
versions:
- 4.0.1
- 4.0.0
diff --git a/airflow/providers/apache/spark/provider.yaml b/airflow/providers/apache/spark/provider.yaml
index a40fa651f3..b24cf11e71 100644
--- a/airflow/providers/apache/spark/provider.yaml
+++ b/airflow/providers/apache/spark/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Spark
description: |
`Apache Spark <https://spark.apache.org/>`__
+suspended: false
versions:
- 4.0.0
- 3.0.0
diff --git a/airflow/providers/apache/sqoop/provider.yaml b/airflow/providers/apache/sqoop/provider.yaml
index 0da5dfddd7..783d2e5001 100644
--- a/airflow/providers/apache/sqoop/provider.yaml
+++ b/airflow/providers/apache/sqoop/provider.yaml
@@ -21,6 +21,7 @@ name: Apache Sqoop
description: |
`Apache Sqoop <https://sqoop.apache.org/>`__
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/arangodb/provider.yaml b/airflow/providers/arangodb/provider.yaml
index f70fce6407..b984df05bd 100644
--- a/airflow/providers/arangodb/provider.yaml
+++ b/airflow/providers/arangodb/provider.yaml
@@ -25,6 +25,7 @@ dependencies:
- apache-airflow>=2.3.0
- python-arango>=7.3.2
+suspended: false
versions:
- 2.1.1
- 2.1.0
diff --git a/airflow/providers/asana/provider.yaml b/airflow/providers/asana/provider.yaml
index 2585758a63..e4da44bde3 100644
--- a/airflow/providers/asana/provider.yaml
+++ b/airflow/providers/asana/provider.yaml
@@ -21,6 +21,7 @@ name: Asana
description: |
`Asana <https://app.asana.com/>`__
+suspended: false
versions:
- 2.1.0
- 2.0.1
diff --git a/airflow/providers/atlassian/jira/provider.yaml b/airflow/providers/atlassian/jira/provider.yaml
index 3a4ff601f8..d6a1f38a12 100644
--- a/airflow/providers/atlassian/jira/provider.yaml
+++ b/airflow/providers/atlassian/jira/provider.yaml
@@ -21,6 +21,7 @@ name: Atlassian Jira
description: |
`Atlassian Jira <https://www.atlassian.com/>`__
+suspended: false
versions:
- 2.0.1
- 2.0.0
diff --git a/airflow/providers/celery/provider.yaml b/airflow/providers/celery/provider.yaml
index 8adc4c1c6c..a5f3cfdecb 100644
--- a/airflow/providers/celery/provider.yaml
+++ b/airflow/providers/celery/provider.yaml
@@ -21,6 +21,7 @@ name: Celery
description: |
`Celery <http://www.celeryproject.org/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/cloudant/provider.yaml b/airflow/providers/cloudant/provider.yaml
index 8495f93af0..64a9069d64 100644
--- a/airflow/providers/cloudant/provider.yaml
+++ b/airflow/providers/cloudant/provider.yaml
@@ -21,6 +21,7 @@ name: IBM Cloudant
description: |
`IBM Cloudant <https://www.ibm.com/cloud/cloudant>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/cncf/kubernetes/provider.yaml b/airflow/providers/cncf/kubernetes/provider.yaml
index b2914d9bf4..8a8d9f23e6 100644
--- a/airflow/providers/cncf/kubernetes/provider.yaml
+++ b/airflow/providers/cncf/kubernetes/provider.yaml
@@ -21,6 +21,7 @@ name: Kubernetes
description: |
`Kubernetes <https://kubernetes.io/>`__
+suspended: false
versions:
- 5.2.2
- 5.2.1
diff --git a/airflow/providers/common/sql/provider.yaml b/airflow/providers/common/sql/provider.yaml
index 8086cf3e32..fe83284991 100644
--- a/airflow/providers/common/sql/provider.yaml
+++ b/airflow/providers/common/sql/provider.yaml
@@ -21,6 +21,7 @@ name: Common SQL
description: |
`Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
+suspended: false
versions:
- 1.3.4
- 1.3.3
diff --git a/airflow/providers/databricks/provider.yaml b/airflow/providers/databricks/provider.yaml
index 133899996c..0ce6d1c844 100644
--- a/airflow/providers/databricks/provider.yaml
+++ b/airflow/providers/databricks/provider.yaml
@@ -21,6 +21,7 @@ name: Databricks
description: |
`Databricks <https://databricks.com/>`__
+suspended: false
versions:
- 4.0.0
- 3.4.0
diff --git a/airflow/providers/datadog/provider.yaml b/airflow/providers/datadog/provider.yaml
index f933708d03..34f2f00563 100644
--- a/airflow/providers/datadog/provider.yaml
+++ b/airflow/providers/datadog/provider.yaml
@@ -21,6 +21,7 @@ name: Datadog
description: |
`Datadog <https://www.datadoghq.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/dbt/cloud/provider.yaml b/airflow/providers/dbt/cloud/provider.yaml
index 4d0836bbf5..93df19e267 100644
--- a/airflow/providers/dbt/cloud/provider.yaml
+++ b/airflow/providers/dbt/cloud/provider.yaml
@@ -21,6 +21,7 @@ name: dbt Cloud
description: |
`dbt Cloud <https://www.getdbt.com/product/what-is-dbt/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/dingding/provider.yaml b/airflow/providers/dingding/provider.yaml
index 37ddc69b87..821a94a484 100644
--- a/airflow/providers/dingding/provider.yaml
+++ b/airflow/providers/dingding/provider.yaml
@@ -21,6 +21,7 @@ name: Dingding
description: |
`Dingding <https://oapi.dingtalk.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/discord/provider.yaml b/airflow/providers/discord/provider.yaml
index 3dc1a30ac9..ef8c89f0bb 100644
--- a/airflow/providers/discord/provider.yaml
+++ b/airflow/providers/discord/provider.yaml
@@ -21,6 +21,7 @@ name: Discord
description: |
`Discord <https://discordapp.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/docker/provider.yaml b/airflow/providers/docker/provider.yaml
index 0387c86d5d..99e793cc0c 100644
--- a/airflow/providers/docker/provider.yaml
+++ b/airflow/providers/docker/provider.yaml
@@ -21,6 +21,7 @@ name: Docker
description: |
`Docker <https://docs.docker.com/install/>`__
+suspended: false
versions:
- 3.5.1
- 3.5.0
diff --git a/airflow/providers/elasticsearch/provider.yaml b/airflow/providers/elasticsearch/provider.yaml
index b862da59dd..941390d1c3 100644
--- a/airflow/providers/elasticsearch/provider.yaml
+++ b/airflow/providers/elasticsearch/provider.yaml
@@ -21,6 +21,7 @@ name: Elasticsearch
description: |
`Elasticsearch <https://www.elastic.co/elasticsearch>`__
+suspended: false
versions:
- 4.4.0
- 4.3.3
diff --git a/airflow/providers/exasol/provider.yaml b/airflow/providers/exasol/provider.yaml
index 4d5215bdc1..70af2fc089 100644
--- a/airflow/providers/exasol/provider.yaml
+++ b/airflow/providers/exasol/provider.yaml
@@ -21,6 +21,7 @@ name: Exasol
description: |
`Exasol <https://docs.exasol.com/home.htm>`__
+suspended: false
versions:
- 4.1.3
- 4.1.2
diff --git a/airflow/providers/facebook/provider.yaml b/airflow/providers/facebook/provider.yaml
index 2e05cca631..ec5f0be209 100644
--- a/airflow/providers/facebook/provider.yaml
+++ b/airflow/providers/facebook/provider.yaml
@@ -21,6 +21,7 @@ name: Facebook
description: |
`Facebook Ads <http://business.facebook.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.1
diff --git a/airflow/providers/ftp/provider.yaml b/airflow/providers/ftp/provider.yaml
index 8214a4b3e5..c86c9c5fb5 100644
--- a/airflow/providers/ftp/provider.yaml
+++ b/airflow/providers/ftp/provider.yaml
@@ -21,6 +21,7 @@ name: File Transfer Protocol (FTP)
description: |
`File Transfer Protocol (FTP) <https://tools.ietf.org/html/rfc114>`__
+suspended: false
versions:
- 3.3.1
- 3.3.0
diff --git a/airflow/providers/github/provider.yaml b/airflow/providers/github/provider.yaml
index 92ef8c1c3f..f545d26967 100644
--- a/airflow/providers/github/provider.yaml
+++ b/airflow/providers/github/provider.yaml
@@ -28,6 +28,7 @@ dependencies:
# See https://github.com/PyGithub/PyGithub/issues/2436.
- PyGithub!=1.58
+suspended: false
versions:
- 2.2.1
- 2.2.0
diff --git a/airflow/providers/google/provider.yaml b/airflow/providers/google/provider.yaml
index 832c8f02a6..e261e45a78 100644
--- a/airflow/providers/google/provider.yaml
+++ b/airflow/providers/google/provider.yaml
@@ -28,6 +28,7 @@ description: |
- `Google Marketing Platform <https://marketingplatform.google.com/>`__
- `Google Workspace <https://workspace.google.com/>`__ (formerly Google Suite)
+suspended: false
versions:
- 8.11.0
- 8.10.0
diff --git a/airflow/providers/grpc/provider.yaml b/airflow/providers/grpc/provider.yaml
index 86cd9be1ec..a52769e4c5 100644
--- a/airflow/providers/grpc/provider.yaml
+++ b/airflow/providers/grpc/provider.yaml
@@ -21,6 +21,7 @@ name: gRPC
description: |
`gRPC <https://grpc.io/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/hashicorp/provider.yaml b/airflow/providers/hashicorp/provider.yaml
index 8b0adb3033..45a7bbd479 100644
--- a/airflow/providers/hashicorp/provider.yaml
+++ b/airflow/providers/hashicorp/provider.yaml
@@ -21,6 +21,7 @@ name: Hashicorp
description: |
Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
+suspended: false
versions:
- 3.3.0
- 3.2.0
diff --git a/airflow/providers/http/provider.yaml b/airflow/providers/http/provider.yaml
index 38590270ed..efe8330301 100644
--- a/airflow/providers/http/provider.yaml
+++ b/airflow/providers/http/provider.yaml
@@ -21,6 +21,7 @@ name: Hypertext Transfer Protocol (HTTP)
description: |
`Hypertext Transfer Protocol (HTTP) <https://www.w3.org/Protocols/>`__
+suspended: false
versions:
- 4.2.0
- 4.1.1
diff --git a/airflow/providers/imap/provider.yaml b/airflow/providers/imap/provider.yaml
index fc844bedb6..2e38b04c4a 100644
--- a/airflow/providers/imap/provider.yaml
+++ b/airflow/providers/imap/provider.yaml
@@ -22,6 +22,7 @@ name: Internet Message Access Protocol (IMAP)
description: |
`Internet Message Access Protocol (IMAP) <https://tools.ietf.org/html/rfc3501>`__
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/influxdb/provider.yaml b/airflow/providers/influxdb/provider.yaml
index 0518b1e5a5..9a0ee1cc05 100644
--- a/airflow/providers/influxdb/provider.yaml
+++ b/airflow/providers/influxdb/provider.yaml
@@ -28,6 +28,7 @@ dependencies:
- influxdb-client>=1.19.0
- requests>=2.26.0
+suspended: false
versions:
- 2.1.0
- 2.0.0
diff --git a/airflow/providers/jdbc/provider.yaml b/airflow/providers/jdbc/provider.yaml
index e229585814..3768925e0f 100644
--- a/airflow/providers/jdbc/provider.yaml
+++ b/airflow/providers/jdbc/provider.yaml
@@ -21,6 +21,7 @@ name: Java Database Connectivity (JDBC)
description: |
`Java Database Connectivity (JDBC) <https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/>`__
+suspended: false
versions:
- 3.3.0
- 3.2.1
diff --git a/airflow/providers/jenkins/provider.yaml b/airflow/providers/jenkins/provider.yaml
index 0dfcfa08ec..5178dbb095 100644
--- a/airflow/providers/jenkins/provider.yaml
+++ b/airflow/providers/jenkins/provider.yaml
@@ -21,6 +21,7 @@ name: Jenkins
description: |
`Jenkins <https://jenkins.io/>`__
+suspended: false
versions:
- 3.2.0
- 3.1.0
diff --git a/airflow/providers/microsoft/azure/provider.yaml b/airflow/providers/microsoft/azure/provider.yaml
index 8ef623ae2a..7fa171f38d 100644
--- a/airflow/providers/microsoft/azure/provider.yaml
+++ b/airflow/providers/microsoft/azure/provider.yaml
@@ -20,6 +20,7 @@ package-name: apache-airflow-providers-microsoft-azure
name: Microsoft Azure
description: |
`Microsoft Azure <https://azure.microsoft.com/>`__
+suspended: false
versions:
- 5.2.1
- 5.2.0
diff --git a/airflow/providers/microsoft/mssql/provider.yaml b/airflow/providers/microsoft/mssql/provider.yaml
index 1ef6f29e5d..f2add9f5fc 100644
--- a/airflow/providers/microsoft/mssql/provider.yaml
+++ b/airflow/providers/microsoft/mssql/provider.yaml
@@ -21,6 +21,7 @@ name: Microsoft SQL Server (MSSQL)
description: |
`Microsoft SQL Server (MSSQL) <https://www.microsoft.com/en-us/sql-server/sql-server-downloads>`__
+suspended: false
versions:
- 3.3.2
- 3.3.1
diff --git a/airflow/providers/microsoft/psrp/provider.yaml b/airflow/providers/microsoft/psrp/provider.yaml
index fb4fde018a..0081a58384 100644
--- a/airflow/providers/microsoft/psrp/provider.yaml
+++ b/airflow/providers/microsoft/psrp/provider.yaml
@@ -23,6 +23,7 @@ description: |
`PowerShell Remoting Protocol (PSRP)
<https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-psrp/>`__.
+suspended: false
versions:
- 2.2.0
- 2.1.0
diff --git a/airflow/providers/microsoft/winrm/provider.yaml b/airflow/providers/microsoft/winrm/provider.yaml
index 82f9375e3c..e9cd31c015 100644
--- a/airflow/providers/microsoft/winrm/provider.yaml
+++ b/airflow/providers/microsoft/winrm/provider.yaml
@@ -21,6 +21,7 @@ name: Windows Remote Management (WinRM)
description: |
`Windows Remote Management (WinRM) <https://docs.microsoft.com/en-us/windows/win32/winrm/portal>`__
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/mongo/provider.yaml b/airflow/providers/mongo/provider.yaml
index d01a95fe8e..006158e394 100644
--- a/airflow/providers/mongo/provider.yaml
+++ b/airflow/providers/mongo/provider.yaml
@@ -21,6 +21,7 @@ name: MongoDB
description: |
`MongoDB <https://www.mongodb.com/what-is-mongodb>`__
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/mysql/provider.yaml b/airflow/providers/mysql/provider.yaml
index 7ea9067a05..ca2a951939 100644
--- a/airflow/providers/mysql/provider.yaml
+++ b/airflow/providers/mysql/provider.yaml
@@ -21,6 +21,7 @@ name: MySQL
description: |
`MySQL <https://www.mysql.com/products/>`__
+suspended: false
versions:
- 4.0.2
- 4.0.1
diff --git a/airflow/providers/neo4j/provider.yaml b/airflow/providers/neo4j/provider.yaml
index fa2726b908..f736d05299 100644
--- a/airflow/providers/neo4j/provider.yaml
+++ b/airflow/providers/neo4j/provider.yaml
@@ -21,6 +21,7 @@ name: Neo4j
description: |
`Neo4j <https://neo4j.com/>`__
+suspended: false
versions:
- 3.2.1
- 3.2.0
diff --git a/airflow/providers/odbc/provider.yaml b/airflow/providers/odbc/provider.yaml
index 76d1d5e548..a5e0575002 100644
--- a/airflow/providers/odbc/provider.yaml
+++ b/airflow/providers/odbc/provider.yaml
@@ -21,6 +21,7 @@ name: ODBC
description: |
`ODBC <https://github.com/mkleehammer/pyodbc/wiki>`__
+suspended: false
versions:
- 3.2.1
- 3.2.0
diff --git a/airflow/providers/openfaas/provider.yaml b/airflow/providers/openfaas/provider.yaml
index 90fed6940f..1a8ea4d2b7 100644
--- a/airflow/providers/openfaas/provider.yaml
+++ b/airflow/providers/openfaas/provider.yaml
@@ -21,6 +21,7 @@ name: OpenFaaS
description: |
`OpenFaaS <https://www.openfaas.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/opsgenie/provider.yaml b/airflow/providers/opsgenie/provider.yaml
index 58aba33976..98fdff5e33 100644
--- a/airflow/providers/opsgenie/provider.yaml
+++ b/airflow/providers/opsgenie/provider.yaml
@@ -21,6 +21,7 @@ name: Opsgenie
description: |
`Opsgenie <https://www.opsgenie.com/>`__
+suspended: false
versions:
- 5.0.0
- 4.0.0
diff --git a/airflow/providers/oracle/provider.yaml b/airflow/providers/oracle/provider.yaml
index 9c6fd77cf5..1dde4a4d40 100644
--- a/airflow/providers/oracle/provider.yaml
+++ b/airflow/providers/oracle/provider.yaml
@@ -21,6 +21,7 @@ name: Oracle
description: |
`Oracle <https://www.oracle.com/en/database/>`__
+suspended: false
versions:
- 3.6.0
- 3.5.1
diff --git a/airflow/providers/pagerduty/provider.yaml b/airflow/providers/pagerduty/provider.yaml
index 80965bdb69..2e773b8a25 100644
--- a/airflow/providers/pagerduty/provider.yaml
+++ b/airflow/providers/pagerduty/provider.yaml
@@ -21,6 +21,7 @@ name: Pagerduty
description: |
`Pagerduty <https://www.pagerduty.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/papermill/provider.yaml b/airflow/providers/papermill/provider.yaml
index afcfe41276..855ef932c8 100644
--- a/airflow/providers/papermill/provider.yaml
+++ b/airflow/providers/papermill/provider.yaml
@@ -21,6 +21,7 @@ name: Papermill
description: |
`Papermill <https://github.com/nteract/papermill>`__
+suspended: false
versions:
- 3.1.1
- 3.1.0
diff --git a/airflow/providers/plexus/provider.yaml b/airflow/providers/plexus/provider.yaml
index 0e908c502c..baa61ce013 100644
--- a/airflow/providers/plexus/provider.yaml
+++ b/airflow/providers/plexus/provider.yaml
@@ -21,6 +21,7 @@ name: Plexus
description: |
`Plexus <https://plexus.corescientific.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/postgres/provider.yaml b/airflow/providers/postgres/provider.yaml
index 9dfe43e413..e14f1e12de 100644
--- a/airflow/providers/postgres/provider.yaml
+++ b/airflow/providers/postgres/provider.yaml
@@ -21,6 +21,7 @@ name: PostgreSQL
description: |
`PostgreSQL <https://www.postgresql.org/>`__
+suspended: false
versions:
- 5.4.0
- 5.3.1
diff --git a/airflow/providers/presto/provider.yaml b/airflow/providers/presto/provider.yaml
index 452f232bcb..08c68f1ed4 100644
--- a/airflow/providers/presto/provider.yaml
+++ b/airflow/providers/presto/provider.yaml
@@ -21,6 +21,7 @@ name: Presto
description: |
`Presto <https://prestodb.github.io/>`__
+suspended: false
versions:
- 4.2.2
- 4.2.1
diff --git a/airflow/providers/qubole/provider.yaml b/airflow/providers/qubole/provider.yaml
index bd86938479..3de981a22d 100644
--- a/airflow/providers/qubole/provider.yaml
+++ b/airflow/providers/qubole/provider.yaml
@@ -21,6 +21,7 @@ name: Qubole
description: |
`Qubole <https://www.qubole.com/>`__
+suspended: false
versions:
- 3.3.1
- 3.3.0
diff --git a/airflow/providers/redis/provider.yaml b/airflow/providers/redis/provider.yaml
index 0cbcab3a88..47335f2a2e 100644
--- a/airflow/providers/redis/provider.yaml
+++ b/airflow/providers/redis/provider.yaml
@@ -21,6 +21,7 @@ name: Redis
description: |
`Redis <https://redis.io/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/salesforce/provider.yaml b/airflow/providers/salesforce/provider.yaml
index d1f18cddcc..140c1cdfd5 100644
--- a/airflow/providers/salesforce/provider.yaml
+++ b/airflow/providers/salesforce/provider.yaml
@@ -21,6 +21,7 @@ name: Salesforce
description: |
`Salesforce <https://www.salesforce.com/>`__
+suspended: false
versions:
- 5.3.0
- 5.2.0
diff --git a/airflow/providers/samba/provider.yaml b/airflow/providers/samba/provider.yaml
index 9b21001851..80d299699c 100644
--- a/airflow/providers/samba/provider.yaml
+++ b/airflow/providers/samba/provider.yaml
@@ -21,6 +21,7 @@ name: Samba
description: |
`Samba <https://www.samba.org/>`__
+suspended: false
versions:
- 4.1.0
- 4.0.0
diff --git a/airflow/providers/segment/provider.yaml b/airflow/providers/segment/provider.yaml
index b46b96eeca..a51118a28e 100644
--- a/airflow/providers/segment/provider.yaml
+++ b/airflow/providers/segment/provider.yaml
@@ -21,6 +21,7 @@ name: Segment
description: |
`Segment <https://segment.com/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/sendgrid/provider.yaml b/airflow/providers/sendgrid/provider.yaml
index 210af20925..890b2b9310 100644
--- a/airflow/providers/sendgrid/provider.yaml
+++ b/airflow/providers/sendgrid/provider.yaml
@@ -25,6 +25,7 @@ dependencies:
- apache-airflow>=2.3.0
- sendgrid>=6.0.0
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/sftp/provider.yaml b/airflow/providers/sftp/provider.yaml
index bcae88c764..3a1168ef10 100644
--- a/airflow/providers/sftp/provider.yaml
+++ b/airflow/providers/sftp/provider.yaml
@@ -21,6 +21,7 @@ name: SFTP
description: |
`SSH File Transfer Protocol (SFTP) <https://tools.ietf.org/wg/secsh/draft-ietf-secsh-filexfer/>`__
+suspended: false
versions:
- 4.2.4
- 4.2.3
diff --git a/airflow/providers/singularity/provider.yaml b/airflow/providers/singularity/provider.yaml
index ff0ab0945d..99a9468df1 100644
--- a/airflow/providers/singularity/provider.yaml
+++ b/airflow/providers/singularity/provider.yaml
@@ -21,6 +21,7 @@ name: Singularity
description: |
`Singularity <https://sylabs.io/guides/latest/user-guide/>`__
+suspended: false
versions:
- 3.1.0
- 3.0.0
diff --git a/airflow/providers/slack/provider.yaml b/airflow/providers/slack/provider.yaml
index 920033d705..7e40553dff 100644
--- a/airflow/providers/slack/provider.yaml
+++ b/airflow/providers/slack/provider.yaml
@@ -21,6 +21,7 @@ name: Slack
description: |
`Slack <https://slack.com/>`__
+suspended: false
versions:
- 7.2.0
- 7.1.1
diff --git a/airflow/providers/smtp/provider.yaml b/airflow/providers/smtp/provider.yaml
index b7b96eba23..0c707cc967 100644
--- a/airflow/providers/smtp/provider.yaml
+++ b/airflow/providers/smtp/provider.yaml
@@ -22,6 +22,7 @@ name: Simple Mail Transfer Protocol (SMTP)
description: |
`Simple Mail Transfer Protocol (SMTP) <https://tools.ietf.org/html/rfc5321>`__
+suspended: false
versions:
- 1.0.0
diff --git a/airflow/providers/snowflake/provider.yaml b/airflow/providers/snowflake/provider.yaml
index 09551be81a..d0bd2d2076 100644
--- a/airflow/providers/snowflake/provider.yaml
+++ b/airflow/providers/snowflake/provider.yaml
@@ -21,6 +21,7 @@ name: Snowflake
description: |
`Snowflake <https://www.snowflake.com/>`__
+suspended: false
versions:
- 4.0.4
- 4.0.3
diff --git a/airflow/providers/sqlite/provider.yaml b/airflow/providers/sqlite/provider.yaml
index 2c14432055..31b06edbba 100644
--- a/airflow/providers/sqlite/provider.yaml
+++ b/airflow/providers/sqlite/provider.yaml
@@ -21,6 +21,7 @@ name: SQLite
description: |
`SQLite <https://www.sqlite.org/>`__
+suspended: false
versions:
- 3.3.1
- 3.3.0
diff --git a/airflow/providers/ssh/provider.yaml b/airflow/providers/ssh/provider.yaml
index 133b32a3fb..d0903a3a79 100644
--- a/airflow/providers/ssh/provider.yaml
+++ b/airflow/providers/ssh/provider.yaml
@@ -21,6 +21,7 @@ name: SSH
description: |
`Secure Shell (SSH) <https://tools.ietf.org/html/rfc4251>`__
+suspended: false
versions:
- 3.5.0
- 3.4.0
diff --git a/airflow/providers/tableau/provider.yaml b/airflow/providers/tableau/provider.yaml
index 07b65084a5..e2719fc1c3 100644
--- a/airflow/providers/tableau/provider.yaml
+++ b/airflow/providers/tableau/provider.yaml
@@ -21,6 +21,7 @@ name: Tableau
description: |
`Tableau <https://www.tableau.com/>`__
+suspended: false
versions:
- 4.1.0
- 4.0.0
diff --git a/airflow/providers/tabular/provider.yaml b/airflow/providers/tabular/provider.yaml
index 28c265fc98..4519359c04 100644
--- a/airflow/providers/tabular/provider.yaml
+++ b/airflow/providers/tabular/provider.yaml
@@ -21,6 +21,7 @@ name: Tabular
description: |
`Tabular <https://tabular.io/>`__
+suspended: false
versions:
- 1.1.0
- 1.0.1
diff --git a/airflow/providers/telegram/provider.yaml b/airflow/providers/telegram/provider.yaml
index 922da6caf6..1365ede2d9 100644
--- a/airflow/providers/telegram/provider.yaml
+++ b/airflow/providers/telegram/provider.yaml
@@ -21,6 +21,7 @@ name: Telegram
description: |
`Telegram <https://telegram.org/>`__
+suspended: false
versions:
- 4.0.0
- 3.1.1
diff --git a/airflow/providers/trino/provider.yaml b/airflow/providers/trino/provider.yaml
index b2c91f295c..0412897ffa 100644
--- a/airflow/providers/trino/provider.yaml
+++ b/airflow/providers/trino/provider.yaml
@@ -21,6 +21,7 @@ name: Trino
description: |
`Trino <https://trino.io/>`__
+suspended: false
versions:
- 4.3.2
- 4.3.1
diff --git a/airflow/providers/vertica/provider.yaml b/airflow/providers/vertica/provider.yaml
index e6de112965..fb7853ce41 100644
--- a/airflow/providers/vertica/provider.yaml
+++ b/airflow/providers/vertica/provider.yaml
@@ -21,6 +21,7 @@ name: Vertica
description: |
`Vertica <https://www.vertica.com/>`__
+suspended: false
versions:
- 3.3.1
- 3.3.0
diff --git a/airflow/providers/yandex/provider.yaml b/airflow/providers/yandex/provider.yaml
index 5a23ce60af..b52b3d1a8e 100644
--- a/airflow/providers/yandex/provider.yaml
+++ b/airflow/providers/yandex/provider.yaml
@@ -20,7 +20,7 @@ package-name: apache-airflow-providers-yandex
name: Yandex
description: |
Yandex including `Yandex.Cloud <https://cloud.yandex.com/>`__
-
+suspended: true
versions:
- 3.3.0
- 3.2.0
diff --git a/airflow/providers/zendesk/provider.yaml b/airflow/providers/zendesk/provider.yaml
index 95d53cc759..2fcf9f618f 100644
--- a/airflow/providers/zendesk/provider.yaml
+++ b/airflow/providers/zendesk/provider.yaml
@@ -21,6 +21,7 @@ name: Zendesk
description: |
`Zendesk <https://www.zendesk.com/>`__
+suspended: false
versions:
- 4.2.0
- 4.1.0
diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
index 077bdef8ec..0b75799ab7 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -615,6 +615,7 @@ def update_expected_environment_variables(env: dict[str, str]) -> None:
set_value_to_default_if_not_set(env, "SKIP_ENVIRONMENT_INITIALIZATION", "false")
set_value_to_default_if_not_set(env, "SKIP_PROVIDER_TESTS", "false")
set_value_to_default_if_not_set(env, "SKIP_SSH_SETUP", "false")
+ set_value_to_default_if_not_set(env, "SUSPENDED_PROVIDERS_FOLDERS", "")
set_value_to_default_if_not_set(env, "TEST_TYPE", "")
set_value_to_default_if_not_set(env, "TEST_TIMEOUT", "60")
set_value_to_default_if_not_set(env, "UPGRADE_BOTO", "false")
diff --git a/dev/breeze/src/airflow_breeze/utils/path_utils.py b/dev/breeze/src/airflow_breeze/utils/path_utils.py
index 36d4c5afa5..1146c1ecc2 100644
--- a/dev/breeze/src/airflow_breeze/utils/path_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/path_utils.py
@@ -262,6 +262,9 @@ def find_airflow_sources_root_to_operate_on() -> Path:
AIRFLOW_SOURCES_ROOT = find_airflow_sources_root_to_operate_on().resolve()
+TESTS_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "tests" / "providers"
+SYSTEM_TESTS_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "tests" / "system" / "providers"
+AIRFLOW_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "airflow" / "providers"
BUILD_CACHE_DIR = AIRFLOW_SOURCES_ROOT / ".build"
WWW_CACHE_DIR = BUILD_CACHE_DIR / "www"
WWW_ASSET_COMPILE_LOCK = WWW_CACHE_DIR / ".asset_compile.lock"
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index e8911b8eb1..b327e86c52 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -24,7 +24,13 @@ from enum import Enum
from airflow_breeze.utils.exclude_from_matrix import excluded_combos
from airflow_breeze.utils.github_actions import get_ga_output
from airflow_breeze.utils.kubernetes_utils import get_kubernetes_python_combos
-from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT
+from airflow_breeze.utils.path_utils import (
+ AIRFLOW_PROVIDERS_ROOT,
+ AIRFLOW_SOURCES_ROOT,
+ SYSTEM_TESTS_PROVIDERS_ROOT,
+ TESTS_PROVIDERS_ROOT,
+)
+from airflow_breeze.utils.suspended_providers import _get_suspended_providers_folders
if sys.version_info >= (3, 8):
from functools import cached_property
@@ -188,10 +194,6 @@ TEST_TYPE_MATCHES = HashableDict(
}
)
-TESTS_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "tests" / "providers"
-SYSTEM_TESTS_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "tests" / "system" / "providers"
-AIRFLOW_PROVIDERS_ROOT = AIRFLOW_SOURCES_ROOT / "airflow" / "providers"
-
def find_provider_affected(changed_file: str) -> str | None:
file_path = AIRFLOW_SOURCES_ROOT / changed_file
@@ -230,13 +232,39 @@ def add_dependent_providers(
def find_all_providers_affected(changed_files: tuple[str, ...]) -> set[str]:
all_providers: set[str] = set()
+ dependencies = json.loads((AIRFLOW_SOURCES_ROOT / "generated" / "provider_dependencies.json").read_text())
+ all_providers_affected = False
+ suspended_providers: set[str] = set()
for changed_file in changed_files:
provider = find_provider_affected(changed_file)
if provider == "Providers":
- return set()
- if provider is not None:
- all_providers.add(provider)
- dependencies = json.loads((AIRFLOW_SOURCES_ROOT / "generated" / "provider_dependencies.json").read_text())
+ all_providers_affected = True
+ elif provider is not None:
+ if provider not in dependencies:
+ suspended_providers.add(provider)
+ else:
+ all_providers.add(provider)
+ if all_providers_affected:
+ return set()
+ if suspended_providers:
+ # We check for suspended providers only after we have checked if all providers are affected.
+ # No matter if we found that we are modifying a suspended provider individually, if all providers are
+ # affected, then it means that we are ok to proceed because likely we are running some kind of
+ # global refactoring that affects multiple providers including the suspended one. This is a
+ # potential escape hatch if someone would like to modify suspended provider,
+ # but it can be found at the review time and is anyway harmless as the provider will not be
+ # released nor tested nor used in CI anyway.
+ get_console().print("[error]You are modifying suspended providers.\n")
+ get_console().print(
+ "[info]Some providers modified by this change have been suspended, "
+ "and before attempting such changes you should fix the reason for suspension."
+ )
+ get_console().print(
+ "[info]When fixing it, you should set suspended = false in provider.yaml "
+ "to make changes to the provider."
+ )
+ get_console().print(f"Suspended providers: {suspended_providers}")
+ sys.exit(1)
for provider in list(all_providers):
add_dependent_providers(all_providers, provider, dependencies)
return all_providers
@@ -612,3 +640,7 @@ class SelectiveChecks:
@cached_property
def debug_resources(self) -> bool:
return DEBUG_CI_RESOURCES_LABEL in self._pr_labels
+
+ @cached_property
+ def suspended_providers_folders(self) -> str:
+ return " ".join(_get_suspended_providers_folders())
diff --git a/airflow/providers/apache/impala/provider.yaml b/dev/breeze/src/airflow_breeze/utils/suspended_providers.py
similarity index 50%
copy from airflow/providers/apache/impala/provider.yaml
copy to dev/breeze/src/airflow_breeze/utils/suspended_providers.py
index 0d8501a652..3bb2df088b 100644
--- a/airflow/providers/apache/impala/provider.yaml
+++ b/dev/breeze/src/airflow_breeze/utils/suspended_providers.py
@@ -14,30 +14,23 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
+from __future__ import annotations
----
-package-name: apache-airflow-providers-apache-impala
-name: Apache Impala
-description: |
- `Apache Impala <https://impala.apache.org/>`__.
+import yaml
-versions:
- - 1.0.0
+from airflow_breeze.utils.path_utils import AIRFLOW_PROVIDERS_ROOT, AIRFLOW_SOURCES_ROOT
-dependencies:
- - impyla>=0.18.0,<1.0
- - apache-airflow>=2.3.0
-integrations:
- - integration-name: Apache Impala
- external-doc-url: https://impala.apache.org
- tags: [apache]
-
-hooks:
- - integration-name: Apache Impala
- python-modules:
- - airflow.providers.apache.impala.hooks.impala
-
-connection-types:
- - hook-class-name: airflow.providers.apache.impala.hooks.impala.ImpalaHook
- connection-type: impala
+def _get_suspended_providers_folders() -> list[str]:
+ """
+ Returns a list of suspended providers folders that should be
+ skipped when running tests (without any prefix - for example apache/beam, yandex, google etc.).
+ """
+ suspended_providers = []
+ for provider_path in AIRFLOW_PROVIDERS_ROOT.glob("**/provider.yaml"):
+ provider_yaml = yaml.safe_load(provider_path.read_text())
+ if provider_yaml["suspended"]:
+ suspended_providers.append(
+ provider_path.parent.relative_to(AIRFLOW_SOURCES_ROOT).as_posix().replace("airflow/", "")
+ )
+ return suspended_providers
diff --git a/docs/apache-airflow/extra-packages-ref.rst b/docs/apache-airflow/extra-packages-ref.rst
index 24b78af6c4..598662932e 100644
--- a/docs/apache-airflow/extra-packages-ref.rst
+++ b/docs/apache-airflow/extra-packages-ref.rst
@@ -214,8 +214,6 @@ These are extras that add dependencies needed for integration with external serv
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
| vertica | ``pip install 'apache-airflow[vertica]'`` | Vertica hook support as an Airflow backend |
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
-| yandex | ``pip install 'apache-airflow[yandex]'`` | Yandex.cloud hooks and operators |
-+---------------------+-----------------------------------------------------+-----------------------------------------------------+
| zendesk | ``pip install 'apache-airflow[zendesk]'`` | Zendesk hooks |
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
diff --git a/docs/exts/docs_build/docs_builder.py b/docs/exts/docs_build/docs_builder.py
index 90baffe2ba..89c80335c4 100644
--- a/docs/exts/docs_build/docs_builder.py
+++ b/docs/exts/docs_build/docs_builder.py
@@ -298,7 +298,7 @@ class AirflowDocsBuilder:
def get_available_providers_packages():
"""Get list of all available providers packages to build."""
- return [provider["package-name"] for provider in ALL_PROVIDER_YAMLS]
+ return [provider["package-name"] for provider in ALL_PROVIDER_YAMLS if not provider["suspended"]]
def get_available_packages():
diff --git a/docs/publish_docs.py b/docs/publish_docs.py
index 9a17aa29ef..60a72e9635 100755
--- a/docs/publish_docs.py
+++ b/docs/publish_docs.py
@@ -53,7 +53,9 @@ ALL_PROVIDER_YAMLS = load_package_data()
def get_available_packages():
"""Get list of all available packages to build."""
- provider_package_names = [provider["package-name"] for provider in ALL_PROVIDER_YAMLS]
+ provider_package_names = [
+ provider["package-name"] for provider in ALL_PROVIDER_YAMLS if not provider["suspended"]
+ ]
return [
"apache-airflow",
"docker-stack",
diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json
index 0b19116b29..92881a7cd7 100644
--- a/generated/provider_dependencies.json
+++ b/generated/provider_dependencies.json
@@ -764,13 +764,6 @@
"common.sql"
]
},
- "yandex": {
- "deps": [
- "apache-airflow>=2.3.0",
- "yandexcloud>=0.173.0"
- ],
- "cross-providers-deps": []
- },
"zendesk": {
"deps": [
"apache-airflow>=2.3.0",
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index dbe5fe32c0..2b6a6e3ea3 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -2,7 +2,7 @@
# Please do not solve it but run `breeze setup regenerate-command-images`.
# This command should fix the conflict and regenerate help images that you have conflict with.
main:83de6a9bf2b1afecd1f9ce4cd0493733
-build-docs:61ddf42565c6e39b2a1b228b2a0e89de
+build-docs:b7d7168a58ce91e1b6adce6a87ebd6a8
ci:find-newer-dependencies:8fa2b57f5f0523c928743b235ee3ab5a
ci:fix-ownership:fee2c9ec9ef19686792002ae054fecdd
ci:free-space:47234aa0a60b0efd84972e6e797379f8
@@ -37,15 +37,15 @@ prod-image:verify:31bc5efada1d70a0a31990025db1a093
prod-image:79bd4cc9de03ab7e1d75f025d75eee46
release-management:create-minor-branch:6a01066dce15e09fb269a8385626657c
release-management:generate-constraints:ae30d6ad49a1b2c15b61cb29080fd957
-release-management:generate-issue-content-providers:f3c00ba74e3afc054fe29b65156740ac
+release-management:generate-issue-content-providers:20723a5f69ef3718c9b562fad302380a
release-management:prepare-airflow-package:3ac14ea6d2b09614959c0ec4fd564789
-release-management:prepare-provider-documentation:40d540fdfebf6c8ddc4cd151d52b88e6
-release-management:prepare-provider-packages:72dd7c3b19f85024bc9a4939cac5d87c
+release-management:prepare-provider-documentation:32b67e1cd48efb89507ff77543a18708
+release-management:prepare-provider-packages:39ac7c3ea29be199d47ece8e00fdd1c8
release-management:release-prod-images:c9bc40938e0efad49e51ef66e83f9527
release-management:start-rc-process:6aafbaceabd7b67b9a1af4c2f59abc4c
release-management:start-release:acb384d86e02ff5fde1bf971897be17c
release-management:verify-provider-packages:88bd609aff6d09d52ab8d80d6e055e7b
-release-management:926400d9c6d5c491f0182c5520bbfd68
+release-management:e5c2484bed22053ed08546b1ce6e781c
setup:autocomplete:03343478bf1d0cf9c101d454cdb63b68
setup:check-all-params-in-groups:4d0f8c19cbdb56290055d863b08a3376
setup:config:3ffcd35dd24b486ddf1d08b797e3d017
diff --git a/images/breeze/output_build-docs.svg b/images/breeze/output_build-docs.svg
index 2a0435a831..0100742938 100644
--- a/images/breeze/output_build-docs.svg
+++ b/images/breeze/output_build-docs.svg
@@ -35,8 +35,8 @@
.breeze-build-docs-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-build-docs-r2 { fill: #c5c8c6 }
.breeze-build-docs-r3 { fill: #d0b344;font-weight: bold }
-.breeze-build-docs-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-build-docs-r5 { fill: #868887 }
+.breeze-build-docs-r4 { fill: #868887 }
+.breeze-build-docs-r5 { fill: #68a0b3;font-weight: bold }
.breeze-build-docs-r6 { fill: #98a84b;font-weight: bold }
.breeze-build-docs-r7 { fill: #8d7b39 }
</style>
@@ -235,65 +235,65 @@
<g class="breeze-build-docs-matrix">
<text class="breeze-build-docs-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-build-docs-line-0)">
-</text><text class="breeze-build-docs-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-1)">Usage: </text><text class="breeze-build-docs-r1" x="97.6" y="44.4" textLength="231.8" clip-path="url(#breeze-build-docs-line-1)">breeze build-docs [</text><text class="breeze-build-docs-r4" x="329.4" y="44.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-1)">OPTIONS</text><text class="breeze-build-docs-r1" x="414.8" y="44.4" textLength="12.2" [...]
+</text><text class="breeze-build-docs-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-build-docs-line-1)">Usage: </text><text class="breeze-build-docs-r1" x="97.6" y="44.4" textLength="329.4" clip-path="url(#breeze-build-docs-line-1)">breeze build-docs [OPTIONS]</text><text class="breeze-build-docs-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-1)">
</text><text class="breeze-build-docs-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-2)">
</text><text class="breeze-build-docs-r2" x="12.2" y="93.2" textLength="451.4" clip-path="url(#breeze-build-docs-line-3)">Build documentation in the container.</text><text class="breeze-build-docs-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-3)">
</text><text class="breeze-build-docs-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-4)">
-</text><text class="breeze-build-docs-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-build-docs-line-5)">╭─</text><text class="breeze-build-docs-r5" x="24.4" y="142" textLength="134.2" clip-path="url(#breeze-build-docs-line-5)"> Doc flags </text><text class="breeze-build-docs-r5" x="158.6" y="142" textLength="1281" clip-path="url(#breeze-build-docs-line-5)">───────────────────────────────────────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-build-docs-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">│</text><text class="breeze-build-docs-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">-</text><text class="breeze-build-docs-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-build-docs-line-6)">-docs</text><text class="breeze-build-docs-r4" x="97.6" y="166.4" textLength="61" clip-path="url(#breeze-build-docs-line-6)">-onl [...]
-</text><text class="breeze-build-docs-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">│</text><text class="breeze-build-docs-r4" x="24.4" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">-</text><text class="breeze-build-docs-r4" x="36.6" y="190.8" textLength="134.2" clip-path="url(#breeze-build-docs-line-7)">-spellcheck</text><text class="breeze-build-docs-r4" x="170.8" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-lin [...]
-</text><text class="breeze-build-docs-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">│</text><text class="breeze-build-docs-r4" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">-</text><text class="breeze-build-docs-r4" x="36.6" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8)">-clean</text><text class="breeze-build-docs-r4" x="109.8" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8) [...]
-</text><text class="breeze-build-docs-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">│</text><text class="breeze-build-docs-r2" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-9)">before the build - useful for a clean build.                           & [...]
-</text><text class="breeze-build-docs-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-build-docs-line-10)">│</text><text class="breeze-build-docs-r4" x="24.4" y="264" textLength="12.2" clip-path="url(#breeze-build-docs-line-10)">-</text><text class="breeze-build-docs-r4" x="36.6" y="264" textLength="48.8" clip-path="url(#breeze-build-docs-line-10)">-for</text><text class="breeze-build-docs-r4" x="85.4" y="264" textLength="134.2" clip-path="url(#breeze-build-docs-line-10)">-pro [...]
-</text><text class="breeze-build-docs-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-11)">│</text><text class="breeze-build-docs-r4" x="329.4" y="288.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-11)">-</text><text class="breeze-build-docs-r4" x="341.6" y="288.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-11)">-clean</text><text class="breeze-build-docs-r4" x="414.8" y="288.4" textLength="73.2" clip-path="url(#breeze-build-docs-li [...]
-</text><text class="breeze-build-docs-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-12)">│</text><text class="breeze-build-docs-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-12)">-</text><text class="breeze-build-docs-r4" x="36.6" y="312.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-12)">-package</text><text class="breeze-build-docs-r4" x="134.2" y="312.8" textLength="85.4" clip-path="url(#breeze-build-docs-li [...]
-</text><text class="breeze-build-docs-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-13)">│</text><text class="breeze-build-docs-r7" x="329.4" y="337.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-13)">(apache-airflow | apache-airflow-providers-airbyte | apache-airflow-providers-alibaba |    </text><text class="breeze-build-docs-r5" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-build [...]
-</text><text class="breeze-build-docs-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-14)">│</text><text class="breeze-build-docs-r7" x="329.4" y="361.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-14)">apache-airflow-providers-amazon | apache-airflow-providers-apache-beam |                   </text><text class="breeze-build-docs-r5" x= [...]
-</text><text class="breeze-build-docs-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-build-docs-line-15)">│</text><text class="breeze-build-docs-r7" x="329.4" y="386" textLength="1110.2" clip-path="url(#breeze-build-docs-line-15)">apache-airflow-providers-apache-cassandra | apache-airflow-providers-apache-drill |        </text><text class="breeze-build-docs-r5" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-b [...]
-</text><text class="breeze-build-docs-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-16)">│</text><text class="breeze-build-docs-r7" x="329.4" y="410.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-16)">apache-airflow-providers-apache-druid | apache-airflow-providers-apache-flink |            </text><text class="breeze-build-docs-r5" x="1451.8" y="410.4" textLength="12.2 [...]
-</text><text class="breeze-build-docs-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-17)">│</text><text class="breeze-build-docs-r7" x="329.4" y="434.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-17)">apache-airflow-providers-apache-hdfs | apache-airflow-providers-apache-hive |              </text><text class="breeze-build-docs-r5" x="1451.8" y="434.8" textLe [...]
-</text><text class="breeze-build-docs-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-18)">│</text><text class="breeze-build-docs-r7" x="329.4" y="459.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-18)">apache-airflow-providers-apache-impala | apache-airflow-providers-apache-kylin |           </text><text class="breeze-build-docs-r5" x="1451.8" y="459.2" textLength="12.2" cli [...]
-</text><text class="breeze-build-docs-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-19)">│</text><text class="breeze-build-docs-r7" x="329.4" y="483.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-19)">apache-airflow-providers-apache-livy | apache-airflow-providers-apache-pig |               </text><text class="breeze-build-docs-r5" x="1451.8" y="483.6" t [...]
-</text><text class="breeze-build-docs-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-build-docs-line-20)">│</text><text class="breeze-build-docs-r7" x="329.4" y="508" textLength="1110.2" clip-path="url(#breeze-build-docs-line-20)">apache-airflow-providers-apache-pinot | apache-airflow-providers-apache-spark |            </text><text class="breeze-build-docs-r5" x="1451.8" y="508" textLength="12.2" clip [...]
-</text><text class="breeze-build-docs-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-21)">│</text><text class="breeze-build-docs-r7" x="329.4" y="532.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-21)">apache-airflow-providers-apache-sqoop | apache-airflow-providers-arangodb |                </text><text class="breeze-build-docs-r5" x="1451.8" y="532 [...]
-</text><text class="breeze-build-docs-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-22)">│</text><text class="breeze-build-docs-r7" x="329.4" y="556.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-22)">apache-airflow-providers-asana | apache-airflow-providers-atlassian-jira |                 </text><text class="breeze-build-docs-r5" x="1451.8" y [...]
-</text><text class="breeze-build-docs-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-23)">│</text><text class="breeze-build-docs-r7" x="329.4" y="581.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-23)">apache-airflow-providers-celery | apache-airflow-providers-cloudant |                      </text><text class="breeze-bu [...]
-</text><text class="breeze-build-docs-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-24)">│</text><text class="breeze-build-docs-r7" x="329.4" y="605.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-24)">apache-airflow-providers-cncf-kubernetes | apache-airflow-providers-common-sql |           </text><text class="breeze-build-docs-r5" x="1451.8" y="605.6" textLength="12.2" cli [...]
-</text><text class="breeze-build-docs-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-build-docs-line-25)">│</text><text class="breeze-build-docs-r7" x="329.4" y="630" textLength="1110.2" clip-path="url(#breeze-build-docs-line-25)">apache-airflow-providers-databricks | apache-airflow-providers-datadog |                   </text><text class="breeze-build-docs-r5" x="145 [...]
-</text><text class="breeze-build-docs-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-26)">│</text><text class="breeze-build-docs-r7" x="329.4" y="654.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-26)">apache-airflow-providers-dbt-cloud | apache-airflow-providers-dingding |                   </text><text class="breeze-build-docs-r5" x= [...]
-</text><text class="breeze-build-docs-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-27)">│</text><text class="breeze-build-docs-r7" x="329.4" y="678.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-27)">apache-airflow-providers-discord | apache-airflow-providers-docker |                       </text><text class="bree [...]
-</text><text class="breeze-build-docs-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-28)">│</text><text class="breeze-build-docs-r7" x="329.4" y="703.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-28)">apache-airflow-providers-elasticsearch | apache-airflow-providers-exasol |                 </text><text class="breeze-build-docs-r5" x="1451.8" y [...]
-</text><text class="breeze-build-docs-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-29)">│</text><text class="breeze-build-docs-r7" x="329.4" y="727.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-29)">apache-airflow-providers-facebook | apache-airflow-providers-ftp |                         </text><text c [...]
-</text><text class="breeze-build-docs-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-build-docs-line-30)">│</text><text class="breeze-build-docs-r7" x="329.4" y="752" textLength="1110.2" clip-path="url(#breeze-build-docs-line-30)">apache-airflow-providers-github | apache-airflow-providers-google |                        </text><text class="bre [...]
-</text><text class="breeze-build-docs-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-31)">│</text><text class="breeze-build-docs-r7" x="329.4" y="776.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-31)">apache-airflow-providers-grpc | apache-airflow-providers-hashicorp |                       </text><text class="bree [...]
-</text><text class="breeze-build-docs-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-32)">│</text><text class="breeze-build-docs-r7" x="329.4" y="800.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-32)">apache-airflow-providers-http | apache-airflow-providers-imap |                             [...]
-</text><text class="breeze-build-docs-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-33)">│</text><text class="breeze-build-docs-r7" x="329.4" y="825.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-33)">apache-airflow-providers-influxdb | apache-airflow-providers-jdbc |                        </text><text class= [...]
-</text><text class="breeze-build-docs-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-34)">│</text><text class="breeze-build-docs-r7" x="329.4" y="849.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-34)">apache-airflow-providers-jenkins | apache-airflow-providers-microsoft-azure |              </text><text class="breeze-build-docs-r5" x="1451.8" y="849.6" textLe [...]
-</text><text class="breeze-build-docs-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-build-docs-line-35)">│</text><text class="breeze-build-docs-r7" x="329.4" y="874" textLength="1110.2" clip-path="url(#breeze-build-docs-line-35)">apache-airflow-providers-microsoft-mssql | apache-airflow-providers-microsoft-psrp |       </text><text class="breeze-build-docs-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-build- [...]
-</text><text class="breeze-build-docs-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-36)">│</text><text class="breeze-build-docs-r7" x="329.4" y="898.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-36)">apache-airflow-providers-microsoft-winrm | apache-airflow-providers-mongo |                </text><text class="breeze-build-docs-r5" x="1451.8" y="898 [...]
-</text><text class="breeze-build-docs-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-37)">│</text><text class="breeze-build-docs-r7" x="329.4" y="922.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-37)">apache-airflow-providers-mysql | apache-airflow-providers-neo4j |                          </text><t [...]
-</text><text class="breeze-build-docs-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-38)">│</text><text class="breeze-build-docs-r7" x="329.4" y="947.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-38)">apache-airflow-providers-odbc | apache-airflow-providers-openfaas |                        </text><text class= [...]
-</text><text class="breeze-build-docs-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-39)">│</text><text class="breeze-build-docs-r7" x="329.4" y="971.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-39)">apache-airflow-providers-opsgenie | apache-airflow-providers-oracle |                      </text><text class="breeze-bu [...]
-</text><text class="breeze-build-docs-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-build-docs-line-40)">│</text><text class="breeze-build-docs-r7" x="329.4" y="996" textLength="1110.2" clip-path="url(#breeze-build-docs-line-40)">apache-airflow-providers-pagerduty | apache-airflow-providers-papermill |                  </text><text class="breeze-build-docs-r5" x="1451.8" [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-41)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1020.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-41)">apache-airflow-providers-plexus | apache-airflow-providers-postgres |                      </text><text class="breeze- [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-42)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1044.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-42)">apache-airflow-providers-presto | apache-airflow-providers-qubole |                        </text><text clas [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-43)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1069.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-43)">apache-airflow-providers-redis | apache-airflow-providers-salesforce |                     </text><text class="breeze-build [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-44)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1093.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-44)">apache-airflow-providers-samba | apache-airflow-providers-segment |                        </text><text clas [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-build-docs-line-45)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1118" textLength="1110.2" clip-path="url(#breeze-build-docs-line-45)">apache-airflow-providers-sendgrid | apache-airflow-providers-sftp |                        </text><text class="b [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-46)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1142.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-46)">apache-airflow-providers-singularity | apache-airflow-providers-slack |                    </text><text class="breeze-build-docs [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-47)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1166.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-47)">apache-airflow-providers-smtp | apache-airflow-providers-snowflake |                       </text><text class="br [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-48)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1191.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-48)">apache-airflow-providers-sqlite | apache-airflow-providers-ssh |                           </ [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-49)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1215.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-49)">apache-airflow-providers-tableau | apache-airflow-providers-tabular |                      </text><text class="breeze- [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-build-docs-line-50)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1240" textLength="1110.2" clip-path="url(#breeze-build-docs-line-50)">apache-airflow-providers-telegram | apache-airflow-providers-trino |                       </text><text class="breeze [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-51)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1264.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-51)">apache-airflow-providers-vertica | apache-airflow-providers-yandex |                       </text><text class="br [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-52)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1288.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-52)">apache-airflow-providers-zendesk | docker-stack | helm-chart)                            [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-53)">│</text><text class="breeze-build-docs-r4" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-53)">-</text><text class="breeze-build-docs-r4" x="36.6" y="1313.2" textLength="85.4" clip-path="url(#breeze-build-docs-line-53)">-github</text><text class="breeze-build-docs-r4" x="122" y="1313.2" textLength="134.2" clip-path="url(#breeze-build-docs- [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1337.6" textLength="1464" clip-path="url(#breeze-build-docs-line-54)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-build-docs-r2" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-54)">
-</text><text class="breeze-build-docs-r5" x="0" y="1362" textLength="24.4" clip-path="url(#breeze-build-docs-line-55)">╭─</text><text class="breeze-build-docs-r5" x="24.4" y="1362" textLength="195.2" clip-path="url(#breeze-build-docs-line-55)"> Common options </text><text class="breeze-build-docs-r5" x="219.6" y="1362" textLength="1220" clip-path="url(#breeze-build-docs-line-55)">────────────────────────────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-56)">│</text><text class="breeze-build-docs-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-56)">-</text><text class="breeze-build-docs-r4" x="36.6" y="1386.4" textLength="97.6" clip-path="url(#breeze-build-docs-line-56)">-verbose</text><text class="breeze-build-docs-r6" x="158.6" y="1386.4" textLength="24.4" clip-path="url(#breeze-build-doc [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-57)">│</text><text class="breeze-build-docs-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-57)">-</text><text class="breeze-build-docs-r4" x="36.6" y="1410.8" textLength="48.8" clip-path="url(#breeze-build-docs-line-57)">-dry</text><text class="breeze-build-docs-r4" x="85.4" y="1410.8" textLength="48.8" clip-path="url(#breeze-build-docs-lin [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-58)">│</text><text class="breeze-build-docs-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-58)">-</text><text class="breeze-build-docs-r4" x="36.6" y="1435.2" textLength="61" clip-path="url(#breeze-build-docs-line-58)">-help</text><text class="breeze-build-docs-r6" x="158.6" y="1435.2" textLength="24.4" clip-path="url(#breeze-build-docs-lin [...]
-</text><text class="breeze-build-docs-r5" x="0" y="1459.6" textLength="1464" clip-path="url(#breeze-build-docs-line-59)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-build-docs-r2" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-59)">
+</text><text class="breeze-build-docs-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-build-docs-line-5)">╭─</text><text class="breeze-build-docs-r4" x="24.4" y="142" textLength="134.2" clip-path="url(#breeze-build-docs-line-5)"> Doc flags </text><text class="breeze-build-docs-r4" x="158.6" y="142" textLength="1281" clip-path="url(#breeze-build-docs-line-5)">───────────────────────────────────────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-build-docs-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">│</text><text class="breeze-build-docs-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-6)">-</text><text class="breeze-build-docs-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-build-docs-line-6)">-docs</text><text class="breeze-build-docs-r5" x="97.6" y="166.4" textLength="61" clip-path="url(#breeze-build-docs-line-6)">-onl [...]
+</text><text class="breeze-build-docs-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">│</text><text class="breeze-build-docs-r5" x="24.4" y="190.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-7)">-</text><text class="breeze-build-docs-r5" x="36.6" y="190.8" textLength="134.2" clip-path="url(#breeze-build-docs-line-7)">-spellcheck</text><text class="breeze-build-docs-r5" x="170.8" y="190.8" textLength="61" clip-path="url(#breeze-build-docs-lin [...]
+</text><text class="breeze-build-docs-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">│</text><text class="breeze-build-docs-r5" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-8)">-</text><text class="breeze-build-docs-r5" x="36.6" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8)">-clean</text><text class="breeze-build-docs-r5" x="109.8" y="215.2" textLength="73.2" clip-path="url(#breeze-build-docs-line-8) [...]
+</text><text class="breeze-build-docs-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-9)">│</text><text class="breeze-build-docs-r2" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-9)">before the build - useful for a clean build.                           & [...]
+</text><text class="breeze-build-docs-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-build-docs-line-10)">│</text><text class="breeze-build-docs-r5" x="24.4" y="264" textLength="12.2" clip-path="url(#breeze-build-docs-line-10)">-</text><text class="breeze-build-docs-r5" x="36.6" y="264" textLength="48.8" clip-path="url(#breeze-build-docs-line-10)">-for</text><text class="breeze-build-docs-r5" x="85.4" y="264" textLength="134.2" clip-path="url(#breeze-build-docs-line-10)">-pro [...]
+</text><text class="breeze-build-docs-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-11)">│</text><text class="breeze-build-docs-r5" x="329.4" y="288.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-11)">-</text><text class="breeze-build-docs-r5" x="341.6" y="288.4" textLength="73.2" clip-path="url(#breeze-build-docs-line-11)">-clean</text><text class="breeze-build-docs-r5" x="414.8" y="288.4" textLength="73.2" clip-path="url(#breeze-build-docs-li [...]
+</text><text class="breeze-build-docs-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-12)">│</text><text class="breeze-build-docs-r5" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-12)">-</text><text class="breeze-build-docs-r5" x="36.6" y="312.8" textLength="97.6" clip-path="url(#breeze-build-docs-line-12)">-package</text><text class="breeze-build-docs-r5" x="134.2" y="312.8" textLength="85.4" clip-path="url(#breeze-build-docs-li [...]
+</text><text class="breeze-build-docs-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-13)">│</text><text class="breeze-build-docs-r7" x="329.4" y="337.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-13)">(apache-airflow | apache-airflow-providers-airbyte | apache-airflow-providers-alibaba |    </text><text class="breeze-build-docs-r4" x="1451.8" y="337.2" textLength="12.2" clip-path="url(#breeze-build [...]
+</text><text class="breeze-build-docs-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-14)">│</text><text class="breeze-build-docs-r7" x="329.4" y="361.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-14)">apache-airflow-providers-amazon | apache-airflow-providers-apache-beam |                   </text><text class="breeze-build-docs-r4" x= [...]
+</text><text class="breeze-build-docs-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-build-docs-line-15)">│</text><text class="breeze-build-docs-r7" x="329.4" y="386" textLength="1110.2" clip-path="url(#breeze-build-docs-line-15)">apache-airflow-providers-apache-cassandra | apache-airflow-providers-apache-drill |        </text><text class="breeze-build-docs-r4" x="1451.8" y="386" textLength="12.2" clip-path="url(#breeze-b [...]
+</text><text class="breeze-build-docs-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-16)">│</text><text class="breeze-build-docs-r7" x="329.4" y="410.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-16)">apache-airflow-providers-apache-druid | apache-airflow-providers-apache-flink |            </text><text class="breeze-build-docs-r4" x="1451.8" y="410.4" textLength="12.2 [...]
+</text><text class="breeze-build-docs-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-17)">│</text><text class="breeze-build-docs-r7" x="329.4" y="434.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-17)">apache-airflow-providers-apache-hdfs | apache-airflow-providers-apache-hive |              </text><text class="breeze-build-docs-r4" x="1451.8" y="434.8" textLe [...]
+</text><text class="breeze-build-docs-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-18)">│</text><text class="breeze-build-docs-r7" x="329.4" y="459.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-18)">apache-airflow-providers-apache-impala | apache-airflow-providers-apache-kylin |           </text><text class="breeze-build-docs-r4" x="1451.8" y="459.2" textLength="12.2" cli [...]
+</text><text class="breeze-build-docs-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-19)">│</text><text class="breeze-build-docs-r7" x="329.4" y="483.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-19)">apache-airflow-providers-apache-livy | apache-airflow-providers-apache-pig |               </text><text class="breeze-build-docs-r4" x="1451.8" y="483.6" t [...]
+</text><text class="breeze-build-docs-r4" x="0" y="508" textLength="12.2" clip-path="url(#breeze-build-docs-line-20)">│</text><text class="breeze-build-docs-r7" x="329.4" y="508" textLength="1110.2" clip-path="url(#breeze-build-docs-line-20)">apache-airflow-providers-apache-pinot | apache-airflow-providers-apache-spark |            </text><text class="breeze-build-docs-r4" x="1451.8" y="508" textLength="12.2" clip [...]
+</text><text class="breeze-build-docs-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-21)">│</text><text class="breeze-build-docs-r7" x="329.4" y="532.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-21)">apache-airflow-providers-apache-sqoop | apache-airflow-providers-arangodb |                </text><text class="breeze-build-docs-r4" x="1451.8" y="532 [...]
+</text><text class="breeze-build-docs-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-22)">│</text><text class="breeze-build-docs-r7" x="329.4" y="556.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-22)">apache-airflow-providers-asana | apache-airflow-providers-atlassian-jira |                 </text><text class="breeze-build-docs-r4" x="1451.8" y [...]
+</text><text class="breeze-build-docs-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-23)">│</text><text class="breeze-build-docs-r7" x="329.4" y="581.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-23)">apache-airflow-providers-celery | apache-airflow-providers-cloudant |                      </text><text class="breeze-bu [...]
+</text><text class="breeze-build-docs-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-24)">│</text><text class="breeze-build-docs-r7" x="329.4" y="605.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-24)">apache-airflow-providers-cncf-kubernetes | apache-airflow-providers-common-sql |           </text><text class="breeze-build-docs-r4" x="1451.8" y="605.6" textLength="12.2" cli [...]
+</text><text class="breeze-build-docs-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-build-docs-line-25)">│</text><text class="breeze-build-docs-r7" x="329.4" y="630" textLength="1110.2" clip-path="url(#breeze-build-docs-line-25)">apache-airflow-providers-databricks | apache-airflow-providers-datadog |                   </text><text class="breeze-build-docs-r4" x="145 [...]
+</text><text class="breeze-build-docs-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-26)">│</text><text class="breeze-build-docs-r7" x="329.4" y="654.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-26)">apache-airflow-providers-dbt-cloud | apache-airflow-providers-dingding |                   </text><text class="breeze-build-docs-r4" x= [...]
+</text><text class="breeze-build-docs-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-27)">│</text><text class="breeze-build-docs-r7" x="329.4" y="678.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-27)">apache-airflow-providers-discord | apache-airflow-providers-docker |                       </text><text class="bree [...]
+</text><text class="breeze-build-docs-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-28)">│</text><text class="breeze-build-docs-r7" x="329.4" y="703.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-28)">apache-airflow-providers-elasticsearch | apache-airflow-providers-exasol |                 </text><text class="breeze-build-docs-r4" x="1451.8" y [...]
+</text><text class="breeze-build-docs-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-29)">│</text><text class="breeze-build-docs-r7" x="329.4" y="727.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-29)">apache-airflow-providers-facebook | apache-airflow-providers-ftp |                         </text><text c [...]
+</text><text class="breeze-build-docs-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-build-docs-line-30)">│</text><text class="breeze-build-docs-r7" x="329.4" y="752" textLength="1110.2" clip-path="url(#breeze-build-docs-line-30)">apache-airflow-providers-github | apache-airflow-providers-google |                        </text><text class="bre [...]
+</text><text class="breeze-build-docs-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-31)">│</text><text class="breeze-build-docs-r7" x="329.4" y="776.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-31)">apache-airflow-providers-grpc | apache-airflow-providers-hashicorp |                       </text><text class="bree [...]
+</text><text class="breeze-build-docs-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-32)">│</text><text class="breeze-build-docs-r7" x="329.4" y="800.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-32)">apache-airflow-providers-http | apache-airflow-providers-imap |                             [...]
+</text><text class="breeze-build-docs-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-33)">│</text><text class="breeze-build-docs-r7" x="329.4" y="825.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-33)">apache-airflow-providers-influxdb | apache-airflow-providers-jdbc |                        </text><text class= [...]
+</text><text class="breeze-build-docs-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-34)">│</text><text class="breeze-build-docs-r7" x="329.4" y="849.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-34)">apache-airflow-providers-jenkins | apache-airflow-providers-microsoft-azure |              </text><text class="breeze-build-docs-r4" x="1451.8" y="849.6" textLe [...]
+</text><text class="breeze-build-docs-r4" x="0" y="874" textLength="12.2" clip-path="url(#breeze-build-docs-line-35)">│</text><text class="breeze-build-docs-r7" x="329.4" y="874" textLength="1110.2" clip-path="url(#breeze-build-docs-line-35)">apache-airflow-providers-microsoft-mssql | apache-airflow-providers-microsoft-psrp |       </text><text class="breeze-build-docs-r4" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-build- [...]
+</text><text class="breeze-build-docs-r4" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-36)">│</text><text class="breeze-build-docs-r7" x="329.4" y="898.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-36)">apache-airflow-providers-microsoft-winrm | apache-airflow-providers-mongo |                </text><text class="breeze-build-docs-r4" x="1451.8" y="898 [...]
+</text><text class="breeze-build-docs-r4" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-37)">│</text><text class="breeze-build-docs-r7" x="329.4" y="922.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-37)">apache-airflow-providers-mysql | apache-airflow-providers-neo4j |                          </text><t [...]
+</text><text class="breeze-build-docs-r4" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-38)">│</text><text class="breeze-build-docs-r7" x="329.4" y="947.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-38)">apache-airflow-providers-odbc | apache-airflow-providers-openfaas |                        </text><text class= [...]
+</text><text class="breeze-build-docs-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-39)">│</text><text class="breeze-build-docs-r7" x="329.4" y="971.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-39)">apache-airflow-providers-opsgenie | apache-airflow-providers-oracle |                      </text><text class="breeze-bu [...]
+</text><text class="breeze-build-docs-r4" x="0" y="996" textLength="12.2" clip-path="url(#breeze-build-docs-line-40)">│</text><text class="breeze-build-docs-r7" x="329.4" y="996" textLength="1110.2" clip-path="url(#breeze-build-docs-line-40)">apache-airflow-providers-pagerduty | apache-airflow-providers-papermill |                  </text><text class="breeze-build-docs-r4" x="1451.8" [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-41)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1020.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-41)">apache-airflow-providers-plexus | apache-airflow-providers-postgres |                      </text><text class="breeze- [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-42)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1044.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-42)">apache-airflow-providers-presto | apache-airflow-providers-qubole |                        </text><text clas [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-43)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1069.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-43)">apache-airflow-providers-redis | apache-airflow-providers-salesforce |                     </text><text class="breeze-build [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-44)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1093.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-44)">apache-airflow-providers-samba | apache-airflow-providers-segment |                        </text><text clas [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-build-docs-line-45)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1118" textLength="1110.2" clip-path="url(#breeze-build-docs-line-45)">apache-airflow-providers-sendgrid | apache-airflow-providers-sftp |                        </text><text class="b [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-46)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1142.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-46)">apache-airflow-providers-singularity | apache-airflow-providers-slack |                    </text><text class="breeze-build-docs [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-47)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1166.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-47)">apache-airflow-providers-smtp | apache-airflow-providers-snowflake |                       </text><text class="br [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-48)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1191.2" textLength="1110.2" clip-path="url(#breeze-build-docs-line-48)">apache-airflow-providers-sqlite | apache-airflow-providers-ssh |                           </ [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-49)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1215.6" textLength="1110.2" clip-path="url(#breeze-build-docs-line-49)">apache-airflow-providers-tableau | apache-airflow-providers-tabular |                      </text><text class="breeze- [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-build-docs-line-50)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1240" textLength="1110.2" clip-path="url(#breeze-build-docs-line-50)">apache-airflow-providers-telegram | apache-airflow-providers-trino |                       </text><text class="breeze [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-51)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1264.4" textLength="1110.2" clip-path="url(#breeze-build-docs-line-51)">apache-airflow-providers-vertica | apache-airflow-providers-zendesk | docker-stack |       </text><text class="breeze-build-docs-r4" x="1451.8" y="1264.4" textLength="12.2" clip-path= [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-52)">│</text><text class="breeze-build-docs-r7" x="329.4" y="1288.8" textLength="1110.2" clip-path="url(#breeze-build-docs-line-52)">helm-chart)                                       [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-53)">│</text><text class="breeze-build-docs-r5" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-53)">-</text><text class="breeze-build-docs-r5" x="36.6" y="1313.2" textLength="85.4" clip-path="url(#breeze-build-docs-line-53)">-github</text><text class="breeze-build-docs-r5" x="122" y="1313.2" textLength="134.2" clip-path="url(#breeze-build-docs- [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1337.6" textLength="1464" clip-path="url(#breeze-build-docs-line-54)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-build-docs-r2" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-54)">
+</text><text class="breeze-build-docs-r4" x="0" y="1362" textLength="24.4" clip-path="url(#breeze-build-docs-line-55)">╭─</text><text class="breeze-build-docs-r4" x="24.4" y="1362" textLength="195.2" clip-path="url(#breeze-build-docs-line-55)"> Common options </text><text class="breeze-build-docs-r4" x="219.6" y="1362" textLength="1220" clip-path="url(#breeze-build-docs-line-55)">────────────────────────────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-56)">│</text><text class="breeze-build-docs-r5" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-build-docs-line-56)">-</text><text class="breeze-build-docs-r5" x="36.6" y="1386.4" textLength="97.6" clip-path="url(#breeze-build-docs-line-56)">-verbose</text><text class="breeze-build-docs-r6" x="158.6" y="1386.4" textLength="24.4" clip-path="url(#breeze-build-doc [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-57)">│</text><text class="breeze-build-docs-r5" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-build-docs-line-57)">-</text><text class="breeze-build-docs-r5" x="36.6" y="1410.8" textLength="48.8" clip-path="url(#breeze-build-docs-line-57)">-dry</text><text class="breeze-build-docs-r5" x="85.4" y="1410.8" textLength="48.8" clip-path="url(#breeze-build-docs-lin [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-58)">│</text><text class="breeze-build-docs-r5" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-build-docs-line-58)">-</text><text class="breeze-build-docs-r5" x="36.6" y="1435.2" textLength="61" clip-path="url(#breeze-build-docs-line-58)">-help</text><text class="breeze-build-docs-r6" x="158.6" y="1435.2" textLength="24.4" clip-path="url(#breeze-build-docs-lin [...]
+</text><text class="breeze-build-docs-r4" x="0" y="1459.6" textLength="1464" clip-path="url(#breeze-build-docs-line-59)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-build-docs-r2" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-build-docs-line-59)">
</text>
</g>
</g>
diff --git a/images/breeze/output_release-management.svg b/images/breeze/output_release-management.svg
index c6d4cabe9e..71f1cdbf17 100644
--- a/images/breeze/output_release-management.svg
+++ b/images/breeze/output_release-management.svg
@@ -35,8 +35,8 @@
.breeze-release-management-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-release-management-r2 { fill: #c5c8c6 }
.breeze-release-management-r3 { fill: #d0b344;font-weight: bold }
-.breeze-release-management-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-release-management-r5 { fill: #868887 }
+.breeze-release-management-r4 { fill: #868887 }
+.breeze-release-management-r5 { fill: #68a0b3;font-weight: bold }
.breeze-release-management-r6 { fill: #98a84b;font-weight: bold }
</style>
@@ -105,22 +105,22 @@
<g class="breeze-release-management-matrix">
<text class="breeze-release-management-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-release-management-line-0)">
-</text><text class="breeze-release-management-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-line-1)">Usage: </text><text class="breeze-release-management-r1" x="97.6" y="44.4" textLength="329.4" clip-path="url(#breeze-release-management-line-1)">breeze release-management [</text><text class="breeze-release-management-r4" x="427" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-line-1)">OPTIONS</text><text class="breez [...]
+</text><text class="breeze-release-management-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-line-1)">Usage: </text><text class="breeze-release-management-r1" x="97.6" y="44.4" textLength="646.6" clip-path="url(#breeze-release-management-line-1)">breeze release-management [OPTIONS] COMMAND [ARGS]...</text><text class="breeze-release-management-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-release-management-line-1)">
</text><text class="breeze-release-management-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-release-management-line-2)">
</text><text class="breeze-release-management-r2" x="12.2" y="93.2" textLength="902.8" clip-path="url(#breeze-release-management-line-3)">Tools that release managers can use to prepare and manage Airflow releases</text><text class="breeze-release-management-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-line-3)">
</text><text class="breeze-release-management-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-line-4)">
-</text><text class="breeze-release-management-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-line-5)">╭─</text><text class="breeze-release-management-r5" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-release-management-line-5)"> Common options </text><text class="breeze-release-management-r5" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-release-management-line-5)">──────────────────────────────────────────────────── [...]
-</text><text class="breeze-release-management-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-line-6)">│</text><text class="breeze-release-management-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-line-6)">-</text><text class="breeze-release-management-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-release-management-line-6)">-help</text><text class="breeze-release-management-r6" x="122" y="166.4" textLeng [...]
-</text><text class="breeze-release-management-r5" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-release-management-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-line-7)">
-</text><text class="breeze-release-management-r5" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-release-management-line-8)">╭─</text><text class="breeze-release-management-r5" x="24.4" y="215.2" textLength="122" clip-path="url(#breeze-release-management-line-8)"> Commands </text><text class="breeze-release-management-r5" x="146.4" y="215.2" textLength="1293.2" clip-path="url(#breeze-release-management-line-8)">───────────────────────────────────────────────────────── [...]
-</text><text class="breeze-release-management-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-line-9)">│</text><text class="breeze-release-management-r4" x="24.4" y="239.6" textLength="414.8" clip-path="url(#breeze-release-management-line-9)">generate-constraints              </text><text class="breeze-release-management-r2" x="463.6" y="239.6" textLength="976" clip-path="url(#breeze-rel [...]
-</text><text class="breeze-release-management-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-line-10)">│</text><text class="breeze-release-management-r4" x="24.4" y="264" textLength="414.8" clip-path="url(#breeze-release-management-line-10)">generate-issue-content-providers  </text><text class="breeze-release-management-r2" x="463.6" y="264" textLength="976" clip-path="url(#breeze-release-management-line-10)">Generates content for i [...]
-</text><text class="breeze-release-management-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-line-11)">│</text><text class="breeze-release-management-r4" x="24.4" y="288.4" textLength="414.8" clip-path="url(#breeze-release-management-line-11)">prepare-airflow-package           </text><text class="breeze-release-management-r2" x="463.6" y="288.4" textLength="976" clip-path="url(#breeze-release-manageme [...]
-</text><text class="breeze-release-management-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-line-12)">│</text><text class="breeze-release-management-r4" x="24.4" y="312.8" textLength="414.8" clip-path="url(#breeze-release-management-line-12)">prepare-provider-documentation    </text><text class="breeze-release-management-r2" x="463.6" y="312.8" textLength="97.6" clip-path="url(#breeze-release-management-line-12)">Prepare </text>< [...]
-</text><text class="breeze-release-management-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-line-13)">│</text><text class="breeze-release-management-r4" x="24.4" y="337.2" textLength="414.8" clip-path="url(#breeze-release-management-line-13)">prepare-provider-packages         </text><text class="breeze-release-management-r2" x="463.6" y="337.2" textLength="976" clip-path="url(#breeze-release-management-line-13 [...]
-</text><text class="breeze-release-management-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-line-14)">│</text><text class="breeze-release-management-r4" x="24.4" y="361.6" textLength="414.8" clip-path="url(#breeze-release-management-line-14)">release-prod-images               </text><text class="breeze-release-management-r2" x="463.6" y="361.6" textLength="976" clip-path="url(#bre [...]
-</text><text class="breeze-release-management-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-line-15)">│</text><text class="breeze-release-management-r4" x="24.4" y="386" textLength="414.8" clip-path="url(#breeze-release-management-line-15)">verify-provider-packages          </text><text class="breeze-release-management-r2" x="463.6" y="386" textLength="976" clip-path="url(#breeze-release-management-line-15) [...]
-</text><text class="breeze-release-management-r5" x="0" y="410.4" textLength="1464" clip-path="url(#breeze-release-management-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-line-16)">
+</text><text class="breeze-release-management-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-line-5)">╭─</text><text class="breeze-release-management-r4" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-release-management-line-5)"> Common options </text><text class="breeze-release-management-r4" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-release-management-line-5)">──────────────────────────────────────────────────── [...]
+</text><text class="breeze-release-management-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-line-6)">│</text><text class="breeze-release-management-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-line-6)">-</text><text class="breeze-release-management-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-release-management-line-6)">-help</text><text class="breeze-release-management-r6" x="122" y="166.4" textLeng [...]
+</text><text class="breeze-release-management-r4" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-release-management-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-line-7)">
+</text><text class="breeze-release-management-r4" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-release-management-line-8)">╭─</text><text class="breeze-release-management-r4" x="24.4" y="215.2" textLength="122" clip-path="url(#breeze-release-management-line-8)"> Commands </text><text class="breeze-release-management-r4" x="146.4" y="215.2" textLength="1293.2" clip-path="url(#breeze-release-management-line-8)">───────────────────────────────────────────────────────── [...]
+</text><text class="breeze-release-management-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-line-9)">│</text><text class="breeze-release-management-r5" x="24.4" y="239.6" textLength="414.8" clip-path="url(#breeze-release-management-line-9)">generate-constraints              </text><text class="breeze-release-management-r2" x="463.6" y="239.6" textLength="976" clip-path="url(#breeze-rel [...]
+</text><text class="breeze-release-management-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-line-10)">│</text><text class="breeze-release-management-r5" x="24.4" y="264" textLength="414.8" clip-path="url(#breeze-release-management-line-10)">generate-issue-content-providers  </text><text class="breeze-release-management-r2" x="463.6" y="264" textLength="976" clip-path="url(#breeze-release-management-line-10)">Generates content for i [...]
+</text><text class="breeze-release-management-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-line-11)">│</text><text class="breeze-release-management-r5" x="24.4" y="288.4" textLength="414.8" clip-path="url(#breeze-release-management-line-11)">prepare-airflow-package           </text><text class="breeze-release-management-r2" x="463.6" y="288.4" textLength="976" clip-path="url(#breeze-release-manageme [...]
+</text><text class="breeze-release-management-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-line-12)">│</text><text class="breeze-release-management-r5" x="24.4" y="312.8" textLength="414.8" clip-path="url(#breeze-release-management-line-12)">prepare-provider-documentation    </text><text class="breeze-release-management-r2" x="463.6" y="312.8" textLength="976" clip-path="url(#breeze-release-management-line-12)">Prepare CHANGELOG [...]
+</text><text class="breeze-release-management-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-line-13)">│</text><text class="breeze-release-management-r5" x="24.4" y="337.2" textLength="414.8" clip-path="url(#breeze-release-management-line-13)">prepare-provider-packages         </text><text class="breeze-release-management-r2" x="463.6" y="337.2" textLength="976" clip-path="url(#breeze-release-management-line-13 [...]
+</text><text class="breeze-release-management-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-line-14)">│</text><text class="breeze-release-management-r5" x="24.4" y="361.6" textLength="414.8" clip-path="url(#breeze-release-management-line-14)">release-prod-images               </text><text class="breeze-release-management-r2" x="463.6" y="361.6" textLength="976" clip-path="url(#bre [...]
+</text><text class="breeze-release-management-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-line-15)">│</text><text class="breeze-release-management-r5" x="24.4" y="386" textLength="414.8" clip-path="url(#breeze-release-management-line-15)">verify-provider-packages          </text><text class="breeze-release-management-r2" x="463.6" y="386" textLength="976" clip-path="url(#breeze-release-management-line-15) [...]
+</text><text class="breeze-release-management-r4" x="0" y="410.4" textLength="1464" clip-path="url(#breeze-release-management-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-line-16)">
</text>
</g>
</g>
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 ace464046a..cb83e6c97a 100644
--- a/images/breeze/output_release-management_generate-issue-content-providers.svg
+++ b/images/breeze/output_release-management_generate-issue-content-providers.svg
@@ -35,8 +35,8 @@
.breeze-release-management-generate-issue-content-providers-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-release-management-generate-issue-content-providers-r2 { fill: #c5c8c6 }
.breeze-release-management-generate-issue-content-providers-r3 { fill: #d0b344;font-weight: bold }
-.breeze-release-management-generate-issue-content-providers-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-release-management-generate-issue-content-providers-r5 { fill: #868887 }
+.breeze-release-management-generate-issue-content-providers-r4 { fill: #868887 }
+.breeze-release-management-generate-issue-content-providers-r5 { fill: #68a0b3;font-weight: bold }
.breeze-release-management-generate-issue-content-providers-r6 { fill: #8d7b39 }
.breeze-release-management-generate-issue-content-providers-r7 { fill: #98a84b;font-weight: bold }
</style>
@@ -160,7 +160,7 @@
<g class="breeze-release-management-generate-issue-content-providers-matrix">
<text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-0)">
-</text><text class="breeze-release-management-generate-issue-content-providers-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-1)">Usage: </text><text class="breeze-release-management-generate-issue-content-providers-r1" x="97.6" y="44.4" textLength="732" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-1)">breeze release-management generate-issue-content-providers [ [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-1)">Usage: </text><text class="breeze-release-management-generate-issue-content-providers-r1" x="97.6" y="44.4" textLength="1342" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-1)">breeze release-management generate-issue-content-providers  [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="68.8" textLength="1415.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-2)">                                                 [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="93.2" textLength="1317.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-3)">                                                 [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="117.6" textLength="1342" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-4)">                                                 [...]
@@ -177,23 +177,23 @@
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="386" textLength="1366.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-15)">                                                 [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="410.4" textLength="1403" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-16)">                                                 [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="434.8" textLength="1427.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-17)">                                                [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="459.2" textLength="1427.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-18)">                                                [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r1" x="12.2" y="459.2" textLength="1317.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-18)">                                                [...]
</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-19)">
</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="12.2" y="508" textLength="585.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-20)">Generates content for issue to test the release.</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-20)">
</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-21)">
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-22)">╭─</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="556.8" textLength="366" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-22)"> Generate issue content flags </text><text class="breeze-re [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-23)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-23)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-24)">│</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="366" y="605.6" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-24)">variable set. Can be generated with:    [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-25)">│</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="366" y="630" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-25)">https://github.com/settings/tokens/new?description=Read%20sssues&scopes=repo:status [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-26)">│</text><text class="breeze-release-management-generate-issue-content-providers-r6" x="366" y="654.4" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-26)">(TEXT)              [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-27)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-27)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-28)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-28)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-29)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-29)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-30)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-30)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="3 [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="776.4" textLength="1464" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="800.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-32)">╭─</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="800.8" textLength="195.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-32)"> Common options </text><text class="breeze-release-management-gener [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-33)">│</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-33)">-</text><text class="breeze-release-management-generate-issue-content-providers-r4" [...]
-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="0" y="849.6" textLength="1464" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-22)">╭─</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="556.8" textLength="366" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-22)"> Generate issue content flags </text><text class="breeze-re [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-23)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-23)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-24)">│</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="366" y="605.6" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-24)">variable set. Can be generated with:    [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-25)">│</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="366" y="630" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-25)">https://github.com/settings/tokens/new?description=Read%20sssues&scopes=repo:status [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-26)">│</text><text class="breeze-release-management-generate-issue-content-providers-r6" x="366" y="654.4" textLength="1073.6" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-26)">(TEXT)              [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-27)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-27)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-28)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-28)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-29)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-29)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-30)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-30)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="3 [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="776.4" textLength="1464" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="800.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-32)">╭─</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="24.4" y="800.8" textLength="195.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-32)"> Common options </text><text class="breeze-release-management-gener [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-33)">│</text><text class="breeze-release-management-generate-issue-content-providers-r5" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-33)">-</text><text class="breeze-release-management-generate-issue-content-providers-r5" [...]
+</text><text class="breeze-release-management-generate-issue-content-providers-r4" x="0" y="849.6" textLength="1464" clip-path="url(#breeze-release-management-generate-issue-content-providers-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-issue-content-providers-r2" x="1464" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate [...]
</text>
</g>
</g>
diff --git a/images/breeze/output_release-management_prepare-provider-documentation.svg b/images/breeze/output_release-management_prepare-provider-documentation.svg
index 807577a6ef..ca58112146 100644
--- a/images/breeze/output_release-management_prepare-provider-documentation.svg
+++ b/images/breeze/output_release-management_prepare-provider-documentation.svg
@@ -35,8 +35,8 @@
.breeze-release-management-prepare-provider-documentation-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-release-management-prepare-provider-documentation-r2 { fill: #c5c8c6 }
.breeze-release-management-prepare-provider-documentation-r3 { fill: #d0b344;font-weight: bold }
-.breeze-release-management-prepare-provider-documentation-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-release-management-prepare-provider-documentation-r5 { fill: #868887 }
+.breeze-release-management-prepare-provider-documentation-r4 { fill: #868887 }
+.breeze-release-management-prepare-provider-documentation-r5 { fill: #68a0b3;font-weight: bold }
.breeze-release-management-prepare-provider-documentation-r6 { fill: #98a84b;font-weight: bold }
.breeze-release-management-prepare-provider-documentation-r7 { fill: #8d7b39 }
</style>
@@ -154,7 +154,7 @@
<g class="breeze-release-management-prepare-provider-documentation-matrix">
<text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-0)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-1)">Usage: </text><text class="breeze-release-management-prepare-provider-documentation-r1" x="97.6" y="44.4" textLength="707.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-1)">breeze release-management prepare-provider-documentation [</text>< [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-1)">Usage: </text><text class="breeze-release-management-prepare-provider-documentation-r1" x="97.6" y="44.4" textLength="1342" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-1)">breeze release-management prepare-provider-documentation [OPTIONS]& [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="68.8" textLength="1366.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-2)">                                                 [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="93.2" textLength="1293.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-3)">                                                 [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="117.6" textLength="1317.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-4)">                                                &# [...]
@@ -171,21 +171,21 @@
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="386" textLength="1439.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-15)">                                                 [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="410.4" textLength="1366.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-16)">                                                & [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="434.8" textLength="1342" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-17)">                                                 [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="459.2" textLength="1378.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-18)">                                                & [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r1" x="12.2" y="459.2" textLength="1268.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-18)">                                                & [...]
</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-19)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="12.2" y="508" textLength="97.6" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-20)">Prepare </text><text class="breeze-release-management-prepare-provider-documentation-r4" x="109.8" y="508" textLength="109.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-20)">CHANGELOG</text><text class="breeze-release-management-prepare-provider-documen [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="12.2" y="508" textLength="780.8" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-20)">Prepare CHANGELOG, README and COMMITS information for providers.</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-20)">
</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-21)">
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-22)">╭─</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="556.8" textLength="512.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-22)"> Provider documentation preparation flags </text><text class="bre [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-23)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-23)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-24)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-24)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-25)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-25)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y="63 [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provid [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)">╭─</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="678.8" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)"> Common options </text><text class="breeze-release-management-prepare-provi [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-28)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-28)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-29)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-29)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-30)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-30)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y="75 [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-31)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-31)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y [...]
-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="800.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provid [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-22)">╭─</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="556.8" textLength="512.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-22)"> Provider documentation preparation flags </text><text class="bre [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-23)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-23)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-24)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-24)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-25)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-25)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y="63 [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provid [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)">╭─</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="678.8" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)"> Common options </text><text class="breeze-release-management-prepare-provi [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-28)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-28)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-29)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-29)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-30)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-30)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y="75 [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-31)">│</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-31)">-</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="36.6" y [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="0" y="800.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provid [...]
</text>
</g>
</g>
diff --git a/images/breeze/output_release-management_prepare-provider-packages.svg b/images/breeze/output_release-management_prepare-provider-packages.svg
index d75838e262..12b214616a 100644
--- a/images/breeze/output_release-management_prepare-provider-packages.svg
+++ b/images/breeze/output_release-management_prepare-provider-packages.svg
@@ -35,8 +35,8 @@
.breeze-release-management-prepare-provider-packages-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-release-management-prepare-provider-packages-r2 { fill: #c5c8c6 }
.breeze-release-management-prepare-provider-packages-r3 { fill: #d0b344;font-weight: bold }
-.breeze-release-management-prepare-provider-packages-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-release-management-prepare-provider-packages-r5 { fill: #868887 }
+.breeze-release-management-prepare-provider-packages-r4 { fill: #868887 }
+.breeze-release-management-prepare-provider-packages-r5 { fill: #68a0b3;font-weight: bold }
.breeze-release-management-prepare-provider-packages-r6 { fill: #8d7b39 }
.breeze-release-management-prepare-provider-packages-r7 { fill: #98a84b;font-weight: bold }
</style>
@@ -154,7 +154,7 @@
<g class="breeze-release-management-prepare-provider-packages-matrix">
<text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-0)">
-</text><text class="breeze-release-management-prepare-provider-packages-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-1)">Usage: </text><text class="breeze-release-management-prepare-provider-packages-r1" x="97.6" y="44.4" textLength="646.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-1)">breeze release-management prepare-provider-packages [</text><text class="breeze-releas [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-1)">Usage: </text><text class="breeze-release-management-prepare-provider-packages-r1" x="97.6" y="44.4" textLength="1281" clip-path="url(#breeze-release-management-prepare-provider-packages-line-1)">breeze release-management prepare-provider-packages [OPTIONS] [airbyte |  [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="68.8" textLength="1305.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-2)">                                                  & [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="93.2" textLength="1427.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-3)">                                                  & [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="117.6" textLength="1403" clip-path="url(#breeze-release-management-prepare-provider-packages-line-4)">                                                  &# [...]
@@ -169,23 +169,23 @@
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="337.2" textLength="1439.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-13)">                                                   [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="361.6" textLength="1427.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-14)">                                                   [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="386" textLength="1390.8" clip-path="url(#breeze-release-management-prepare-provider-packages-line-15)">                                                  & [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="410.4" textLength="1415.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-16)">                                                   [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="410.4" textLength="1305.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-16)">                                                   [...]
</text><text class="breeze-release-management-prepare-provider-packages-r1" x="12.2" y="434.8" textLength="854" clip-path="url(#breeze-release-management-prepare-provider-packages-line-17)">                                                  &# [...]
</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-18)">
</text><text class="breeze-release-management-prepare-provider-packages-r2" x="12.2" y="483.6" textLength="585.6" clip-path="url(#breeze-release-management-prepare-provider-packages-line-19)">Prepare sdist/whl packages of Airflow Providers.</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-19)">
</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-20)">
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="532.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-21)">╭─</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="532.4" textLength="183" clip-path="url(#breeze-release-management-prepare-provider-packages-line-21)"> Package flags </text><text class="breeze-release-management-prepare-provider-packages-r5" x="207 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-22)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-22)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="556.8" textLength="97.6 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-23)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-23)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="581.2" textLength="97.6 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-24)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-24)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="605.6" textLength="97.6 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-25)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-25)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="630" textLength="73.2" clip [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-26)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-26)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="654.4" textLength="85.4 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="678.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-packages-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-27)">
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-28)">╭─</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="703.2" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-28)"> Common options </text><text class="breeze-release-management-prepare-provider-packages-r5" x=" [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-29)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-29)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="727.6" textLength="97.6 [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-30)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-30)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="752" textLength="48.8" clip [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-31)">│</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-31)">-</text><text class="breeze-release-management-prepare-provider-packages-r4" x="36.6" y="776.4" textLength="61" [...]
-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="0" y="800.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-packages-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-32)">
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="532.4" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-21)">╭─</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="532.4" textLength="183" clip-path="url(#breeze-release-management-prepare-provider-packages-line-21)"> Package flags </text><text class="breeze-release-management-prepare-provider-packages-r4" x="207 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-22)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-22)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="556.8" textLength="97.6 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-23)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-23)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="581.2" textLength="97.6 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-24)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-24)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="605.6" textLength="97.6 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-25)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-25)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="630" textLength="73.2" clip [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-26)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-26)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="654.4" textLength="85.4 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="678.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-packages-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-27)">
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-prepare-provider-packages-line-28)">╭─</text><text class="breeze-release-management-prepare-provider-packages-r4" x="24.4" y="703.2" textLength="195.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-28)"> Common options </text><text class="breeze-release-management-prepare-provider-packages-r4" x=" [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-29)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-29)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="727.6" textLength="97.6 [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-30)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-30)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="752" textLength="48.8" clip [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-31)">│</text><text class="breeze-release-management-prepare-provider-packages-r5" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-31)">-</text><text class="breeze-release-management-prepare-provider-packages-r5" x="36.6" y="776.4" textLength="61" [...]
+</text><text class="breeze-release-management-prepare-provider-packages-r4" x="0" y="800.8" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-packages-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-packages-r2" x="1464" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-packages-line-32)">
</text>
</g>
</g>
diff --git a/scripts/ci/docker-compose/_docker.env b/scripts/ci/docker-compose/_docker.env
index 737b7e46ef..8f848b35ba 100644
--- a/scripts/ci/docker-compose/_docker.env
+++ b/scripts/ci/docker-compose/_docker.env
@@ -61,6 +61,7 @@ SKIP_CONSTRAINTS
SKIP_ENVIRONMENT_INITIALIZATION
SKIP_PROVIDER_TESTS
SKIP_SSH_SETUP
+SUSPENDED_PROVIDERS_FOLDERS
TEST_TIMEOUT
TEST_TYPE
UPGRADE_BOTO
diff --git a/scripts/ci/docker-compose/base.yml b/scripts/ci/docker-compose/base.yml
index a35df19630..1414ee6b45 100644
--- a/scripts/ci/docker-compose/base.yml
+++ b/scripts/ci/docker-compose/base.yml
@@ -74,6 +74,7 @@ services:
- SKIP_ENVIRONMENT_INITIALIZATION=${SKIP_ENVIRONMENT_INITIALIZATION}
- SKIP_PROVIDER_TESTS=${SKIP_PROVIDER_TESTS}
- SKIP_SSH_SETUP=${SKIP_SSH_SETUP}
+ - SUSPENDED_PROVIDERS_FOLDERS=${SUSPENDED_PROVIDERS_FOLDERS}
- TEST_TYPE=${TEST_TYPE}
- TEST_TIMEOUT=${TEST_TIMEOUT}
- UPGRADE_BOTO=${UPGRADE_BOTO}
diff --git a/scripts/ci/docker-compose/devcontainer.env b/scripts/ci/docker-compose/devcontainer.env
index 86dd3e5629..c3feb3ed85 100644
--- a/scripts/ci/docker-compose/devcontainer.env
+++ b/scripts/ci/docker-compose/devcontainer.env
@@ -60,6 +60,7 @@ SKIP_CONSTRAINTS="false"
SKIP_SSH_SETUP="true"
SKIP_ENVIRONMENT_INITIALIZATION="false"
SKIP_PROVIDER_TESTS="false"
+SUSPENDED_PROVIDERS_FOLDERS=""
TEST_TYPE=
UPGRADE_BOTO="false"
UPGRADE_TO_NEWER_DEPENDENCIES="false"
diff --git a/scripts/ci/pre_commit/pre_commit_mypy.py b/scripts/ci/pre_commit/pre_commit_mypy.py
index 5c9de455b9..b64630419d 100755
--- a/scripts/ci/pre_commit/pre_commit_mypy.py
+++ b/scripts/ci/pre_commit/pre_commit_mypy.py
@@ -45,6 +45,9 @@ if __name__ == "__main__":
get_ci_image_for_pre_commits,
run_command,
)
+ from airflow_breeze.utils.suspended_providers import _get_suspended_providers_folders
+
+ suspended_providers_folders = _get_suspended_providers_folders()
files_to_test = filter_out_providers_on_non_main_branch(sys.argv[1:])
if files_to_test == ["--namespace-packages"]:
@@ -61,6 +64,8 @@ if __name__ == "__main__":
"-e",
"SKIP_ENVIRONMENT_INITIALIZATION=true",
"-e",
+ f"SUSPENDED_PROVIDERS_FOLDERS={' '.join(suspended_providers_folders)}",
+ "-e",
"BACKEND=sqlite",
"--pull",
"never",
diff --git a/scripts/ci/pre_commit/pre_commit_update_providers_dependencies.py b/scripts/ci/pre_commit/pre_commit_update_providers_dependencies.py
index b3782955a6..bd3603d875 100755
--- a/scripts/ci/pre_commit/pre_commit_update_providers_dependencies.py
+++ b/scripts/ci/pre_commit/pre_commit_update_providers_dependencies.py
@@ -47,6 +47,7 @@ errors: list[str] = []
CROSS_PROVIDERS_DEPS = "cross-providers-deps"
DEPS = "deps"
+SUSPENDED = "suspended"
ALL_DEPENDENCIES: dict[str, dict[str, list[str]]] = defaultdict(lambda: defaultdict(list))
@@ -168,13 +169,11 @@ if __name__ == "__main__":
num_files = len(ALL_PROVIDER_FILES)
num_providers = len(ALL_PROVIDERS)
console.print(f"Found {len(ALL_PROVIDERS)} providers with {len(ALL_PROVIDER_FILES)} Python files.")
-
for file in ALL_PROVIDER_FILES:
check_if_different_provider_used(file)
-
for provider, provider_yaml_content in ALL_PROVIDERS.items():
- ALL_DEPENDENCIES[provider][DEPS].extend(provider_yaml_content["dependencies"])
-
+ if not provider_yaml_content["suspended"]:
+ ALL_DEPENDENCIES[provider][DEPS].extend(provider_yaml_content["dependencies"])
if warnings:
console.print("[yellow]Warnings!\n")
for warning in warnings:
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index ef74e7ffd4..5c78b8fe91 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -317,6 +317,15 @@ EXTRA_PYTEST_ARGS=(
"-rfEX"
)
+if [[ ${SUSPENDED_PROVIDERS_FOLDERS=} != "" ]]; then
+ for provider in ${SUSPENDED_PROVIDERS_FOLDERS=}; do
+ echo "Skipping tests for suspended provider: ${provider}"
+ EXTRA_PYTEST_ARGS+=(
+ "--ignore=tests/providers/${provider}"
+ )
+ done
+fi
+
if [[ "${TEST_TYPE}" == "Helm" ]]; then
_cpus="$(grep -c 'cpu[0-9]' /proc/stat)"
echo "Running tests with ${_cpus} CPUs in parallel"
diff --git a/scripts/in_container/run_mypy.sh b/scripts/in_container/run_mypy.sh
index 3dac50faf7..55a731f570 100755
--- a/scripts/in_container/run_mypy.sh
+++ b/scripts/in_container/run_mypy.sh
@@ -20,4 +20,13 @@
. "$( dirname "${BASH_SOURCE[0]}" )/_in_container_script_init.sh"
export PYTHONPATH=${AIRFLOW_SOURCES}
-mypy "${@}"
+ADDITIONAL_MYPY_OPTIONS=()
+
+if [[ ${SUSPENDED_PROVIDERS_FOLDERS=} != "" ]];
+then
+ for folder in ${SUSPENDED_PROVIDERS_FOLDERS=}
+ do
+ ADDITIONAL_MYPY_OPTIONS+=("--exclude" "airflow/${folder}/*" "--exclude" "tests/${folder}/*")
+ done
+fi
+mypy "${ADDITIONAL_MYPY_OPTIONS[@]}" "${@}"
diff --git a/scripts/in_container/run_provider_yaml_files_check.py b/scripts/in_container/run_provider_yaml_files_check.py
index b6fc7c41c0..0d2d5343f9 100755
--- a/scripts/in_container/run_provider_yaml_files_check.py
+++ b/scripts/in_container/run_provider_yaml_files_check.py
@@ -60,6 +60,9 @@ errors: list[str] = []
console = Console(width=400, color_system="standard")
+suspended_providers: set[str] = set()
+suspended_logos: set[str] = set()
+
def _filepath_to_module(filepath: pathlib.Path) -> str:
p = filepath.resolve().relative_to(ROOT_DIR).as_posix()
@@ -85,7 +88,12 @@ def _load_package_data(package_paths: Iterable[str]):
jsonschema.validate(provider, schema=schema)
except jsonschema.ValidationError:
raise Exception(f"Unable to parse: {rel_path}.")
- result[rel_path] = provider
+ if not provider["suspended"]:
+ result[rel_path] = provider
+ else:
+ suspended_providers.add(provider["package-name"])
+ for integration in provider["integrations"]:
+ suspended_logos.add(integration["logo"])
return result
@@ -113,7 +121,7 @@ def check_integration_duplicates(yaml_files: dict[str, dict]):
sys.exit(3)
-def assert_sets_equal(set1, set2):
+def assert_sets_equal(set1, set2, allow_extra_in_set2=False):
try:
difference1 = set1.difference(set2)
except TypeError as e:
@@ -128,21 +136,19 @@ def assert_sets_equal(set1, set2):
except AttributeError as e:
raise AssertionError(f"second argument does not support set difference: {e}")
- if not (difference1 or difference2):
- return
+ if difference1 or (difference2 and not allow_extra_in_set2):
+ lines = []
+ if difference1:
+ lines.append(" -- Items in the left set but not the right:")
+ for item in sorted(difference1):
+ lines.append(f" {item!r}")
+ if difference2 and not allow_extra_in_set2:
+ lines.append(" -- Items in the right set but not the left:")
+ for item in sorted(difference2):
+ lines.append(f" {item!r}")
- lines = []
- if difference1:
- lines.append(" -- Items in the left set but not the right:")
- for item in sorted(difference1):
- lines.append(f" {item!r}")
- if difference2:
- lines.append(" -- Items in the right set but not the left:")
- for item in sorted(difference2):
- lines.append(f" {item!r}")
-
- standard_msg = "\n".join(lines)
- raise AssertionError(standard_msg)
+ standard_msg = "\n".join(lines)
+ raise AssertionError(standard_msg)
class ObjectType(Enum):
@@ -166,7 +172,7 @@ def check_if_object_exist(object_name: str, resource_type: str, yaml_file_path:
except Exception as e:
errors.append(
f"The `{object_name}` object in {resource_type} list in {yaml_file_path} does not exist "
- f"or is not a class: {e}"
+ f"or is not a {object_type.value}: {e}"
)
else:
errors.append(
@@ -384,7 +390,8 @@ def check_doc_files(yaml_files: dict[str, dict]):
current_doc_urls.extend(
op["how-to-guide"] for op in provider["transfers"] if "how-to-guide" in op
)
-
+ console.print("[yellow]Suspended providers:[/]")
+ console.print(suspended_providers)
expected_doc_urls = {
f"/docs/{f.relative_to(DOCS_DIR).as_posix()}"
for f in DOCS_DIR.glob("apache-airflow-providers-*/operators/**/*.rst")
@@ -392,11 +399,15 @@ def check_doc_files(yaml_files: dict[str, dict]):
} | {
f"/docs/{f.relative_to(DOCS_DIR).as_posix()}"
for f in DOCS_DIR.glob("apache-airflow-providers-*/operators.rst")
+ if not any(f.relative_to(DOCS_DIR).as_posix().startswith(s) for s in suspended_providers)
}
+ console.print("[yellow]Suspended logos:[/]")
+ console.print(suspended_logos)
expected_logo_urls = {
f"/{f.relative_to(DOCS_DIR).as_posix()}"
for f in DOCS_DIR.glob("integration-logos/**/*")
if f.is_file()
+ and not any(f"/{f.relative_to(DOCS_DIR).as_posix()}".startswith(s) for s in suspended_logos)
}
try:
@@ -433,7 +444,8 @@ def check_providers_are_mentioned_in_issue_template(yaml_files: dict[str, dict])
f" -- Checking providers: present in code (left), "
f"mentioned in {PROVIDER_ISSUE_TEMPLATE_PATH} (right)"
)
- assert_sets_equal(set(short_provider_names), set(all_mentioned_providers))
+ # in case of suspended providers, we still want to have them in the issue template
+ assert_sets_equal(set(short_provider_names), set(all_mentioned_providers), allow_extra_in_set2=True)
except AssertionError as ex:
print(ex)
sys.exit(1)