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/05/03 07:49:12 UTC

[airflow] branch main updated: Add full automation for min Airflow version for providers (#30994)

This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new eef5bc7f16 Add full automation for min Airflow version for providers (#30994)
eef5bc7f16 is described below

commit eef5bc7f166dc357fea0cc592d39714b1a5e3c14
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Wed May 3 09:48:49 2023 +0200

    Add full automation for min Airflow version for providers (#30994)
    
    This change adds full automation for keeping and updating min
    airflow version for all community providers.
    
    It makes sure that:
    
    * all non-preinstalled providers have min-airflow-version
      set properly
    * all providers (including the preinstalled ones) additionally
      perform a runtime check on whether correct version of Airflow
      is installed.
    * allows for exceptional cases for some providers to be set
    * all providers have `version` added and exported in their
      `__init__.py`
    
    Usually just setting the airflow version in requirements should
    be enough, but since we have to install runtime check for
    preinstalled providers, it's easier to add the runtime check
    for all providers, and it will be additional verification that
    airflow version is properly set. Additionally, we can export
    correct version in the automatically generated `__init__.py`
    for all providers.
    
    The pre-installed providers cannot have explicit minimum airflow
    version specified as requirement, because this would create a
    dependency cycle with Airflow, and while such dependency cycle is
    fine for `pip`, other tools that analyse dependencies get confused
    and produce errors, claiming there cannot be dependenc cycles in
    the dependency tree (which is not generally a hard requirement,
    package dependency graph does not have to be DAG and it can contain
    cycles).
    
    This is why we have to add runtime check in the preinstalled providers
    to fail when they are installed with older Airflow versions than the
    ones that are supported by our policy.
    
    This PR automates maintenance of all the versions involved during
    prepearation of release documentation - it has been somewhat manual
    procedure so far, because it was only set in provider.yaml, but since
    now we set it in several places, it requires automation and single
    source of truth (which is prepare_provider_packages.py script that
    is used for preparation of provider documenation and packages.
---
 airflow/providers/airbyte/__init__.py              | 21 +++++
 airflow/providers/alibaba/__init__.py              | 21 +++++
 airflow/providers/amazon/__init__.py               | 22 ++++++
 airflow/providers/apache/beam/__init__.py          | 21 +++++
 airflow/providers/apache/cassandra/__init__.py     | 22 ++++++
 airflow/providers/apache/drill/__init__.py         | 21 +++++
 airflow/providers/apache/druid/__init__.py         | 21 +++++
 airflow/providers/apache/flink/__init__.py         | 21 +++++
 airflow/providers/apache/hdfs/__init__.py          | 21 +++++
 airflow/providers/apache/hive/__init__.py          | 21 +++++
 airflow/providers/apache/impala/__init__.py        | 21 +++++
 airflow/providers/apache/kafka/__init__.py         | 21 +++++
 airflow/providers/apache/kylin/__init__.py         | 22 ++++++
 airflow/providers/apache/livy/__init__.py          | 22 ++++++
 airflow/providers/apache/pig/__init__.py           | 21 +++++
 airflow/providers/apache/pinot/__init__.py         | 21 +++++
 airflow/providers/apache/spark/__init__.py         | 21 +++++
 airflow/providers/apache/sqoop/__init__.py         | 21 +++++
 airflow/providers/arangodb/__init__.py             | 22 ++++++
 airflow/providers/asana/__init__.py                | 21 +++++
 airflow/providers/atlassian/jira/__init__.py       | 22 ++++++
 airflow/providers/celery/__init__.py               | 21 +++++
 airflow/providers/cloudant/__init__.py             | 21 +++++
 airflow/providers/cncf/kubernetes/__init__.py      | 21 +++++
 airflow/providers/common/sql/__init__.py           | 22 ++++++
 airflow/providers/databricks/__init__.py           | 21 +++++
 airflow/providers/datadog/__init__.py              | 21 +++++
 airflow/providers/dbt/cloud/__init__.py            | 22 ++++++
 airflow/providers/dingding/__init__.py             | 21 +++++
 airflow/providers/discord/__init__.py              | 21 +++++
 airflow/providers/docker/__init__.py               | 21 +++++
 airflow/providers/elasticsearch/__init__.py        | 21 +++++
 airflow/providers/exasol/__init__.py               | 22 ++++++
 airflow/providers/facebook/__init__.py             | 22 ++++++
 airflow/providers/ftp/__init__.py                  | 19 +++++
 airflow/providers/github/__init__.py               | 22 ++++++
 airflow/providers/google/__init__.py               | 34 ++++----
 .../providers/google/config_templates/__init__.py  | 16 ----
 .../providers/google/config_templates/config.yml   | 27 -------
 .../google/config_templates/default_config.cfg     | 34 --------
 airflow/providers/grpc/__init__.py                 | 21 +++++
 airflow/providers/hashicorp/__init__.py            | 22 ++++++
 airflow/providers/http/__init__.py                 | 21 +++++
 airflow/providers/imap/__init__.py                 | 21 +++++
 airflow/providers/influxdb/__init__.py             | 22 ++++++
 airflow/providers/jdbc/__init__.py                 | 21 +++++
 airflow/providers/jenkins/__init__.py              | 21 +++++
 airflow/providers/microsoft/azure/__init__.py      | 21 +++++
 airflow/providers/microsoft/mssql/__init__.py      | 21 +++++
 airflow/providers/microsoft/psrp/__init__.py       | 21 +++++
 airflow/providers/microsoft/winrm/__init__.py      | 21 +++++
 airflow/providers/mongo/__init__.py                | 21 +++++
 airflow/providers/mysql/__init__.py                | 21 +++++
 airflow/providers/neo4j/__init__.py                | 21 +++++
 airflow/providers/odbc/__init__.py                 | 22 ++++++
 airflow/providers/openfaas/__init__.py             | 21 +++++
 airflow/providers/openlineage/__init__.py          | 32 ++++----
 airflow/providers/openlineage/provider.yaml        |  2 +-
 airflow/providers/opsgenie/__init__.py             | 21 +++++
 airflow/providers/oracle/__init__.py               | 21 +++++
 airflow/providers/pagerduty/__init__.py            | 21 +++++
 airflow/providers/papermill/__init__.py            | 21 +++++
 airflow/providers/plexus/__init__.py               | 22 ++++++
 airflow/providers/postgres/__init__.py             | 21 +++++
 airflow/providers/presto/__init__.py               | 21 +++++
 airflow/providers/qubole/__init__.py               | 21 +++++
 airflow/providers/redis/__init__.py                | 21 +++++
 airflow/providers/salesforce/__init__.py           | 21 +++++
 airflow/providers/samba/__init__.py                | 21 +++++
 airflow/providers/segment/__init__.py              | 21 +++++
 airflow/providers/sendgrid/__init__.py             | 22 ++++++
 airflow/providers/sftp/__init__.py                 | 22 ++++++
 airflow/providers/singularity/__init__.py          | 21 +++++
 airflow/providers/slack/__init__.py                | 21 +++++
 airflow/providers/smtp/__init__.py                 | 21 +++++
 airflow/providers/snowflake/__init__.py            | 22 ++++++
 airflow/providers/sqlite/__init__.py               | 21 +++++
 airflow/providers/ssh/__init__.py                  | 19 +++++
 airflow/providers/tableau/__init__.py              | 21 +++++
 airflow/providers/tabular/__init__.py              | 21 +++++
 airflow/providers/telegram/__init__.py             | 21 +++++
 airflow/providers/trino/__init__.py                | 21 +++++
 airflow/providers/vertica/__init__.py              | 21 +++++
 airflow/providers/yandex/__init__.py               | 22 ++++++
 airflow/providers/zendesk/__init__.py              | 21 +++++
 .../commands/release_management_commands.py        |  8 ++
 .../commands/release_management_commands_config.py |  1 +
 .../src/airflow_breeze/params/shell_params.py      |  1 +
 .../airflow_breeze/utils/docker_command_utils.py   |  2 +
 .../PROVIDER_INDEX_TEMPLATE.rst.jinja2             | 19 ++++-
 .../PROVIDER__INIT__PY_TEMPLATE.py.jinja2          | 56 ++++++++++++++
 dev/provider_packages/prepare_provider_packages.py | 84 +++++++++++++++++---
 docs/apache-airflow-providers-airbyte/index.rst    | 10 ++-
 docs/apache-airflow-providers-common-sql/index.rst | 14 +++-
 docs/apache-airflow-providers-ftp/index.rst        | 16 +++-
 .../commits.rst                                    |  4 +-
 .../apache-airflow-providers-openlineage/index.rst | 18 +++--
 docs/apache-airflow-providers-sqlite/index.rst     | 18 ++++-
 generated/provider_dependencies.json               |  2 +-
 images/breeze/output-commands-hash.txt             |  4 +-
 images/breeze/output-commands.svg                  | 90 +++++++++++-----------
 ...e-management_prepare-provider-documentation.svg | 42 ++++++----
 scripts/ci/docker-compose/_docker.env              |  1 +
 scripts/ci/docker-compose/base.yml                 |  1 +
 scripts/ci/docker-compose/devcontainer.env         |  1 +
 105 files changed, 2010 insertions(+), 201 deletions(-)

diff --git a/airflow/providers/airbyte/__init__.py b/airflow/providers/airbyte/__init__.py
index 217e5db960..0e13d7edf2 100644
--- a/airflow/providers/airbyte/__init__.py
+++ b/airflow/providers/airbyte/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-airbyte:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/alibaba/__init__.py b/airflow/providers/alibaba/__init__.py
index 217e5db960..a6bc74e15c 100644
--- a/airflow/providers/alibaba/__init__.py
+++ b/airflow/providers/alibaba/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.3.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-alibaba:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/amazon/__init__.py b/airflow/providers/amazon/__init__.py
index 13a83393a9..7f365c1c1d 100644
--- a/airflow/providers/amazon/__init__.py
+++ b/airflow/providers/amazon/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "8.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-amazon:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/beam/__init__.py b/airflow/providers/apache/beam/__init__.py
index 217e5db960..66065672f3 100644
--- a/airflow/providers/apache/beam/__init__.py
+++ b/airflow/providers/apache/beam/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-beam:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/cassandra/__init__.py b/airflow/providers/apache/cassandra/__init__.py
index 13a83393a9..9247ef51f2 100644
--- a/airflow/providers/apache/cassandra/__init__.py
+++ b/airflow/providers/apache/cassandra/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-cassandra:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/drill/__init__.py b/airflow/providers/apache/drill/__init__.py
index 217e5db960..b25c9258f8 100644
--- a/airflow/providers/apache/drill/__init__.py
+++ b/airflow/providers/apache/drill/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.3.2"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-drill:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/druid/__init__.py b/airflow/providers/apache/druid/__init__.py
index 217e5db960..ac7317c61e 100644
--- a/airflow/providers/apache/druid/__init__.py
+++ b/airflow/providers/apache/druid/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-druid:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/flink/__init__.py b/airflow/providers/apache/flink/__init__.py
index 217e5db960..3e7145ba9c 100644
--- a/airflow/providers/apache/flink/__init__.py
+++ b/airflow/providers/apache/flink/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.0.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-flink:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/hdfs/__init__.py b/airflow/providers/apache/hdfs/__init__.py
index 217e5db960..0b83ddf91a 100644
--- a/airflow/providers/apache/hdfs/__init__.py
+++ b/airflow/providers/apache/hdfs/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-hdfs:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/hive/__init__.py b/airflow/providers/apache/hive/__init__.py
index 217e5db960..4ff43c2521 100644
--- a/airflow/providers/apache/hive/__init__.py
+++ b/airflow/providers/apache/hive/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "6.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-hive:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/impala/__init__.py b/airflow/providers/apache/impala/__init__.py
index 217e5db960..627a99cbcc 100644
--- a/airflow/providers/apache/impala/__init__.py
+++ b/airflow/providers/apache/impala/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-impala:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/kafka/__init__.py b/airflow/providers/apache/kafka/__init__.py
index 217e5db960..2cef1dcb5a 100644
--- a/airflow/providers/apache/kafka/__init__.py
+++ b/airflow/providers/apache/kafka/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-kafka:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/kylin/__init__.py b/airflow/providers/apache/kylin/__init__.py
index 13a83393a9..1a168b5bfc 100644
--- a/airflow/providers/apache/kylin/__init__.py
+++ b/airflow/providers/apache/kylin/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-kylin:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/livy/__init__.py b/airflow/providers/apache/livy/__init__.py
index 13a83393a9..8aa5e34b6f 100644
--- a/airflow/providers/apache/livy/__init__.py
+++ b/airflow/providers/apache/livy/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.4.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-livy:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/pig/__init__.py b/airflow/providers/apache/pig/__init__.py
index 217e5db960..25abd9d996 100644
--- a/airflow/providers/apache/pig/__init__.py
+++ b/airflow/providers/apache/pig/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-pig:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/pinot/__init__.py b/airflow/providers/apache/pinot/__init__.py
index 217e5db960..2e5dad2e86 100644
--- a/airflow/providers/apache/pinot/__init__.py
+++ b/airflow/providers/apache/pinot/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.0.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-pinot:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/spark/__init__.py b/airflow/providers/apache/spark/__init__.py
index 217e5db960..0747bbc07b 100644
--- a/airflow/providers/apache/spark/__init__.py
+++ b/airflow/providers/apache/spark/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.0.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-spark:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/apache/sqoop/__init__.py b/airflow/providers/apache/sqoop/__init__.py
index 217e5db960..0a37bd8574 100644
--- a/airflow/providers/apache/sqoop/__init__.py
+++ b/airflow/providers/apache/sqoop/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-apache-sqoop:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/arangodb/__init__.py b/airflow/providers/arangodb/__init__.py
index 13a83393a9..7b6cc79bf1 100644
--- a/airflow/providers/arangodb/__init__.py
+++ b/airflow/providers/arangodb/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-arangodb:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/asana/__init__.py b/airflow/providers/asana/__init__.py
index 217e5db960..658536c8dd 100644
--- a/airflow/providers/asana/__init__.py
+++ b/airflow/providers/asana/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-asana:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/atlassian/jira/__init__.py b/airflow/providers/atlassian/jira/__init__.py
index 13a83393a9..abe499b4a9 100644
--- a/airflow/providers/atlassian/jira/__init__.py
+++ b/airflow/providers/atlassian/jira/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.0.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-atlassian-jira:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/celery/__init__.py b/airflow/providers/celery/__init__.py
index 217e5db960..73953913b2 100644
--- a/airflow/providers/celery/__init__.py
+++ b/airflow/providers/celery/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-celery:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/cloudant/__init__.py b/airflow/providers/cloudant/__init__.py
index 217e5db960..bc63f2c04a 100644
--- a/airflow/providers/cloudant/__init__.py
+++ b/airflow/providers/cloudant/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-cloudant:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/cncf/kubernetes/__init__.py b/airflow/providers/cncf/kubernetes/__init__.py
index 217e5db960..af4d1e4f70 100644
--- a/airflow/providers/cncf/kubernetes/__init__.py
+++ b/airflow/providers/cncf/kubernetes/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "6.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-cncf-kubernetes:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/common/sql/__init__.py b/airflow/providers/common/sql/__init__.py
index 13a83393a9..394c4265f6 100644
--- a/airflow/providers/common/sql/__init__.py
+++ b/airflow/providers/common/sql/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.4.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-common-sql:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/databricks/__init__.py b/airflow/providers/databricks/__init__.py
index 217e5db960..1be63f071c 100644
--- a/airflow/providers/databricks/__init__.py
+++ b/airflow/providers/databricks/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-databricks:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/datadog/__init__.py b/airflow/providers/datadog/__init__.py
index 217e5db960..8f80d099c1 100644
--- a/airflow/providers/datadog/__init__.py
+++ b/airflow/providers/datadog/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-datadog:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/dbt/cloud/__init__.py b/airflow/providers/dbt/cloud/__init__.py
index 13a83393a9..326a63c72f 100644
--- a/airflow/providers/dbt/cloud/__init__.py
+++ b/airflow/providers/dbt/cloud/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-dbt-cloud:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/dingding/__init__.py b/airflow/providers/dingding/__init__.py
index 217e5db960..8901f3a37f 100644
--- a/airflow/providers/dingding/__init__.py
+++ b/airflow/providers/dingding/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-dingding:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/discord/__init__.py b/airflow/providers/discord/__init__.py
index 217e5db960..33a9a527da 100644
--- a/airflow/providers/discord/__init__.py
+++ b/airflow/providers/discord/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-discord:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/docker/__init__.py b/airflow/providers/docker/__init__.py
index 217e5db960..fcdb689602 100644
--- a/airflow/providers/docker/__init__.py
+++ b/airflow/providers/docker/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.6.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-docker:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/elasticsearch/__init__.py b/airflow/providers/elasticsearch/__init__.py
index 217e5db960..ce1240d8c4 100644
--- a/airflow/providers/elasticsearch/__init__.py
+++ b/airflow/providers/elasticsearch/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.4.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-elasticsearch:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/exasol/__init__.py b/airflow/providers/exasol/__init__.py
index 13a83393a9..ef74f3e520 100644
--- a/airflow/providers/exasol/__init__.py
+++ b/airflow/providers/exasol/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.1.3"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-exasol:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/facebook/__init__.py b/airflow/providers/facebook/__init__.py
index 13a83393a9..fd2f5839b2 100644
--- a/airflow/providers/facebook/__init__.py
+++ b/airflow/providers/facebook/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-facebook:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/ftp/__init__.py b/airflow/providers/ftp/__init__.py
index 217e5db960..e1ea98453f 100644
--- a/airflow/providers/ftp/__init__.py
+++ b/airflow/providers/ftp/__init__.py
@@ -15,3 +15,22 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(f"The package `apache-airflow-providers-ftp:{version}` requires Apache Airflow 2.4.0+")
diff --git a/airflow/providers/github/__init__.py b/airflow/providers/github/__init__.py
index 13a83393a9..ff32c1263d 100644
--- a/airflow/providers/github/__init__.py
+++ b/airflow/providers/github/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-github:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/google/__init__.py b/airflow/providers/google/__init__.py
index 5eccc44ea6..1be10a01e0 100644
--- a/airflow/providers/google/__init__.py
+++ b/airflow/providers/google/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,27 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
 from __future__ import annotations
 
-import importlib
-import logging
+import packaging.version
 
-# HACK:
-# Sphinx-autoapi doesn't like imports to excluded packages in the main module.
-conf = importlib.import_module("airflow.configuration").conf  # type: ignore[attr-defined]
+import airflow
 
-PROVIDERS_GOOGLE_VERBOSE_LOGGING: bool = conf.getboolean(
-    "providers_google", "VERBOSE_LOGGING", fallback=False
-)
-if PROVIDERS_GOOGLE_VERBOSE_LOGGING:
-    for logger_name in ["google_auth_httplib2", "httplib2", "googleapiclient"]:
-        logger = logging.getLogger(logger_name)
-        logger.handlers += [
-            handler for handler in logging.getLogger().handlers if handler.name in ["task", "console"]
-        ]
-        logger.level = logging.DEBUG
-        logger.propagate = False
+__all__ = ["version"]
 
-    import httplib2
+version = "10.0.0"
 
-    httplib2.debuglevel = 4
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-google:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/google/config_templates/__init__.py b/airflow/providers/google/config_templates/__init__.py
deleted file mode 100644
index 13a83393a9..0000000000
--- a/airflow/providers/google/config_templates/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
diff --git a/airflow/providers/google/config_templates/config.yml b/airflow/providers/google/config_templates/config.yml
deleted file mode 100644
index 6c16a08650..0000000000
--- a/airflow/providers/google/config_templates/config.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
----
-providers_google:
-  description: Options for google provider
-  options:
-    verbose_logging:
-      description: |
-        Sets verbose logging for google provider
-      version_added: 2.0.0
-      type: boolean
-      example: ~
-      default: "False"
diff --git a/airflow/providers/google/config_templates/default_config.cfg b/airflow/providers/google/config_templates/default_config.cfg
deleted file mode 100644
index 8b97422564..0000000000
--- a/airflow/providers/google/config_templates/default_config.cfg
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This is the template for Airflow's default configuration. When Airflow is
-# imported, it looks for a configuration file at $AIRFLOW_HOME/airflow.cfg. If
-# it doesn't exist, Airflow uses this template to generate it by replacing
-# variables in curly braces with their global values from configuration.py.
-
-# Users should not modify this file; they should customize the generated
-# airflow.cfg instead.
-
-
-# ----------------------- TEMPLATE BEGINS HERE -----------------------
-
-[providers_google]
-
-# Options for google provider
-# Sets verbose logging for google provider
-verbose_logging = False
diff --git a/airflow/providers/grpc/__init__.py b/airflow/providers/grpc/__init__.py
index 217e5db960..a74482f9a7 100644
--- a/airflow/providers/grpc/__init__.py
+++ b/airflow/providers/grpc/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-grpc:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/hashicorp/__init__.py b/airflow/providers/hashicorp/__init__.py
index 13a83393a9..1f45195a75 100644
--- a/airflow/providers/hashicorp/__init__.py
+++ b/airflow/providers/hashicorp/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-hashicorp:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/http/__init__.py b/airflow/providers/http/__init__.py
index 217e5db960..bea522d75b 100644
--- a/airflow/providers/http/__init__.py
+++ b/airflow/providers/http/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.3.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-http:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/imap/__init__.py b/airflow/providers/imap/__init__.py
index 217e5db960..b485d4cc0b 100644
--- a/airflow/providers/imap/__init__.py
+++ b/airflow/providers/imap/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-imap:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/influxdb/__init__.py b/airflow/providers/influxdb/__init__.py
index 13a83393a9..62a4be77c5 100644
--- a/airflow/providers/influxdb/__init__.py
+++ b/airflow/providers/influxdb/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-influxdb:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/jdbc/__init__.py b/airflow/providers/jdbc/__init__.py
index 217e5db960..da38ca6a88 100644
--- a/airflow/providers/jdbc/__init__.py
+++ b/airflow/providers/jdbc/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-jdbc:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/jenkins/__init__.py b/airflow/providers/jenkins/__init__.py
index 217e5db960..f6445d1e33 100644
--- a/airflow/providers/jenkins/__init__.py
+++ b/airflow/providers/jenkins/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-jenkins:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/microsoft/azure/__init__.py b/airflow/providers/microsoft/azure/__init__.py
index 217e5db960..8337e188f7 100644
--- a/airflow/providers/microsoft/azure/__init__.py
+++ b/airflow/providers/microsoft/azure/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "6.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-microsoft-azure:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/microsoft/mssql/__init__.py b/airflow/providers/microsoft/mssql/__init__.py
index 217e5db960..f88a96ac0b 100644
--- a/airflow/providers/microsoft/mssql/__init__.py
+++ b/airflow/providers/microsoft/mssql/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.2"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-microsoft-mssql:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/microsoft/psrp/__init__.py b/airflow/providers/microsoft/psrp/__init__.py
index 217e5db960..87d29af300 100644
--- a/airflow/providers/microsoft/psrp/__init__.py
+++ b/airflow/providers/microsoft/psrp/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "2.2.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-microsoft-psrp:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/microsoft/winrm/__init__.py b/airflow/providers/microsoft/winrm/__init__.py
index 217e5db960..a158de38e4 100644
--- a/airflow/providers/microsoft/winrm/__init__.py
+++ b/airflow/providers/microsoft/winrm/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-microsoft-winrm:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/mongo/__init__.py b/airflow/providers/mongo/__init__.py
index 217e5db960..f43b087232 100644
--- a/airflow/providers/mongo/__init__.py
+++ b/airflow/providers/mongo/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-mongo:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/mysql/__init__.py b/airflow/providers/mysql/__init__.py
index 217e5db960..439edf6590 100644
--- a/airflow/providers/mysql/__init__.py
+++ b/airflow/providers/mysql/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-mysql:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/neo4j/__init__.py b/airflow/providers/neo4j/__init__.py
index 217e5db960..688592d119 100644
--- a/airflow/providers/neo4j/__init__.py
+++ b/airflow/providers/neo4j/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-neo4j:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/odbc/__init__.py b/airflow/providers/odbc/__init__.py
index 13a83393a9..d7f230b5d0 100644
--- a/airflow/providers/odbc/__init__.py
+++ b/airflow/providers/odbc/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.2.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-odbc:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/openfaas/__init__.py b/airflow/providers/openfaas/__init__.py
index 217e5db960..27fa70fe4a 100644
--- a/airflow/providers/openfaas/__init__.py
+++ b/airflow/providers/openfaas/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-openfaas:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/openlineage/__init__.py b/airflow/providers/openlineage/__init__.py
index 8373a1d08c..4668ba412a 100644
--- a/airflow/providers/openlineage/__init__.py
+++ b/airflow/providers/openlineage/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,25 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
 from __future__ import annotations
 
-__all__ = ["version"]
+import packaging.version
 
-try:
-    import importlib_metadata as metadata
-except ImportError:
-    from importlib import metadata  # type: ignore[no-redef]
+import airflow
 
-try:
-    version = metadata.version("apache-airflow-providers-openlineage")
-except metadata.PackageNotFoundError:
-    import logging
+__all__ = ["version"]
 
-    log = logging.getLogger(__name__)
-    log.warning("Package metadata could not be found. Overriding it with version found in setup.py")
-    # TODO: What should be a proper fallback?
-    # If hardcoded version from provider version
-    # there's no point to use metadata above
-    version = "1.0.0.dev"
+version = "1.0.0"
 
-del metadata
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.6.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-openlineage:{version}` requires Apache Airflow 2.6.0+"
+    )
diff --git a/airflow/providers/openlineage/provider.yaml b/airflow/providers/openlineage/provider.yaml
index b13a551506..a7f04d3be7 100644
--- a/airflow/providers/openlineage/provider.yaml
+++ b/airflow/providers/openlineage/provider.yaml
@@ -29,7 +29,7 @@ dependencies:
   # This provider depends on Airflow features available in later versions, like
   # lifecycle notifications https://github.com/apache/airflow/pull/27855
   # or direct calls to Listener API https://github.com/apache/airflow/pull/29289
-  - apache-airflow>=2.5.2
+  - apache-airflow>=2.6.0
   - apache-airflow-providers-common-sql>=1.3.1
   - attrs>=22.2
   - openlineage-integration-common>=0.22.0
diff --git a/airflow/providers/opsgenie/__init__.py b/airflow/providers/opsgenie/__init__.py
index 217e5db960..017da1de1e 100644
--- a/airflow/providers/opsgenie/__init__.py
+++ b/airflow/providers/opsgenie/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-opsgenie:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/oracle/__init__.py b/airflow/providers/oracle/__init__.py
index 217e5db960..3257e4d104 100644
--- a/airflow/providers/oracle/__init__.py
+++ b/airflow/providers/oracle/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.6.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-oracle:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/pagerduty/__init__.py b/airflow/providers/pagerduty/__init__.py
index 217e5db960..5d722840b6 100644
--- a/airflow/providers/pagerduty/__init__.py
+++ b/airflow/providers/pagerduty/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-pagerduty:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/papermill/__init__.py b/airflow/providers/papermill/__init__.py
index 217e5db960..100e803677 100644
--- a/airflow/providers/papermill/__init__.py
+++ b/airflow/providers/papermill/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-papermill:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/plexus/__init__.py b/airflow/providers/plexus/__init__.py
index 13a83393a9..54d0a3e4f2 100644
--- a/airflow/providers/plexus/__init__.py
+++ b/airflow/providers/plexus/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-plexus:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/postgres/__init__.py b/airflow/providers/postgres/__init__.py
index 217e5db960..83da75b4dd 100644
--- a/airflow/providers/postgres/__init__.py
+++ b/airflow/providers/postgres/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.4.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-postgres:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/presto/__init__.py b/airflow/providers/presto/__init__.py
index 217e5db960..4fb9e8baf2 100644
--- a/airflow/providers/presto/__init__.py
+++ b/airflow/providers/presto/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-presto:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/qubole/__init__.py b/airflow/providers/qubole/__init__.py
index 217e5db960..e571995e84 100644
--- a/airflow/providers/qubole/__init__.py
+++ b/airflow/providers/qubole/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-qubole:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/redis/__init__.py b/airflow/providers/redis/__init__.py
index 217e5db960..cab2ee7176 100644
--- a/airflow/providers/redis/__init__.py
+++ b/airflow/providers/redis/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-redis:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/salesforce/__init__.py b/airflow/providers/salesforce/__init__.py
index 217e5db960..3d543ce5d4 100644
--- a/airflow/providers/salesforce/__init__.py
+++ b/airflow/providers/salesforce/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.3.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-salesforce:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/samba/__init__.py b/airflow/providers/samba/__init__.py
index 217e5db960..94cd8a1ebf 100644
--- a/airflow/providers/samba/__init__.py
+++ b/airflow/providers/samba/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-samba:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/segment/__init__.py b/airflow/providers/segment/__init__.py
index 217e5db960..e687081777 100644
--- a/airflow/providers/segment/__init__.py
+++ b/airflow/providers/segment/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-segment:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/sendgrid/__init__.py b/airflow/providers/sendgrid/__init__.py
index 13a83393a9..140bcf4069 100644
--- a/airflow/providers/sendgrid/__init__.py
+++ b/airflow/providers/sendgrid/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-sendgrid:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/sftp/__init__.py b/airflow/providers/sftp/__init__.py
index 13a83393a9..308949a634 100644
--- a/airflow/providers/sftp/__init__.py
+++ b/airflow/providers/sftp/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.2.4"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-sftp:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/singularity/__init__.py b/airflow/providers/singularity/__init__.py
index 217e5db960..6a64fc3e04 100644
--- a/airflow/providers/singularity/__init__.py
+++ b/airflow/providers/singularity/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-singularity:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/slack/__init__.py b/airflow/providers/slack/__init__.py
index 217e5db960..cd6a404a66 100644
--- a/airflow/providers/slack/__init__.py
+++ b/airflow/providers/slack/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "7.2.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-slack:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/smtp/__init__.py b/airflow/providers/smtp/__init__.py
index 217e5db960..7a87cc68d3 100644
--- a/airflow/providers/smtp/__init__.py
+++ b/airflow/providers/smtp/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.0.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-smtp:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/snowflake/__init__.py b/airflow/providers/snowflake/__init__.py
index 13a83393a9..3f424ec137 100644
--- a/airflow/providers/snowflake/__init__.py
+++ b/airflow/providers/snowflake/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.0.5"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-snowflake:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/sqlite/__init__.py b/airflow/providers/sqlite/__init__.py
index 217e5db960..077bfcb63a 100644
--- a/airflow/providers/sqlite/__init__.py
+++ b/airflow/providers/sqlite/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.2"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-sqlite:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/ssh/__init__.py b/airflow/providers/ssh/__init__.py
index 217e5db960..25571ef346 100644
--- a/airflow/providers/ssh/__init__.py
+++ b/airflow/providers/ssh/__init__.py
@@ -15,3 +15,22 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.6.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(f"The package `apache-airflow-providers-ssh:{version}` requires Apache Airflow 2.4.0+")
diff --git a/airflow/providers/tableau/__init__.py b/airflow/providers/tableau/__init__.py
index 217e5db960..c85ee190d0 100644
--- a/airflow/providers/tableau/__init__.py
+++ b/airflow/providers/tableau/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-tableau:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/tabular/__init__.py b/airflow/providers/tabular/__init__.py
index 217e5db960..b2c057b03f 100644
--- a/airflow/providers/tabular/__init__.py
+++ b/airflow/providers/tabular/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "1.1.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-tabular:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/telegram/__init__.py b/airflow/providers/telegram/__init__.py
index 217e5db960..5940a44eff 100644
--- a/airflow/providers/telegram/__init__.py
+++ b/airflow/providers/telegram/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-telegram:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/trino/__init__.py b/airflow/providers/trino/__init__.py
index 217e5db960..066e438ae3 100644
--- a/airflow/providers/trino/__init__.py
+++ b/airflow/providers/trino/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "5.0.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-trino:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/vertica/__init__.py b/airflow/providers/vertica/__init__.py
index 217e5db960..abe899b373 100644
--- a/airflow/providers/vertica/__init__.py
+++ b/airflow/providers/vertica/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.1"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-vertica:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/yandex/__init__.py b/airflow/providers/yandex/__init__.py
index 13a83393a9..30355bdf5e 100644
--- a/airflow/providers/yandex/__init__.py
+++ b/airflow/providers/yandex/__init__.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "3.3.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-yandex:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/airflow/providers/zendesk/__init__.py b/airflow/providers/zendesk/__init__.py
index 217e5db960..11fbc71a34 100644
--- a/airflow/providers/zendesk/__init__.py
+++ b/airflow/providers/zendesk/__init__.py
@@ -15,3 +15,24 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "4.2.0"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("2.4.0"):
+    raise RuntimeError(
+        f"The package `apache-airflow-providers-zendesk:{version}` requires Apache Airflow 2.4.0+"
+    )
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index b4ccfa9c4e..be8f915752 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -220,8 +220,14 @@ def prepare_airflow_packages(
     "--base-branch",
     type=str,
     default="main",
+    help="Base branch to use as diff for documentation generation (used for releasing from old branch)",
 )
 @option_github_repository
+@click.option(
+    "--only-min-version-update",
+    is_flag=True,
+    help="Only update minimum version in __init__.py files and regenerate corresponding documentation",
+)
 @option_verbose
 @option_dry_run
 @option_answer
@@ -230,6 +236,7 @@ def prepare_provider_documentation(
     base_branch: str,
     debug: bool,
     packages: list[str],
+    only_min_version_update: bool,
 ):
     perform_environment_checks()
     check_remote_ghcr_io_commands()
@@ -239,6 +246,7 @@ def prepare_provider_documentation(
         github_repository=github_repository,
         python=DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
         base_branch=base_branch,
+        only_min_version_update=only_min_version_update,
         skip_environment_initialization=True,
     )
     rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index 0c11f2cf45..a5076365e9 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -100,6 +100,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
                 "--debug",
                 "--github-repository",
                 "--base-branch",
+                "--only-min-version-update",
             ],
         }
     ],
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 8c39bbd312..ee3ab61f82 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -117,6 +117,7 @@ class ShellParams:
     dry_run: bool = False
     verbose: bool = False
     upgrade_boto: bool = False
+    only_min_version_update: bool = False
 
     def clone_with_test(self, test_type: str) -> ShellParams:
         new_params = deepcopy(self)
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 1c5099728a..f3f8573bfc 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -623,6 +623,7 @@ def update_expected_environment_variables(env: dict[str, str]) -> None:
     set_value_to_default_if_not_set(env, "INSTALL_PROVIDERS_FROM_SOURCES", "true")
     set_value_to_default_if_not_set(env, "LOAD_DEFAULT_CONNECTIONS", "false")
     set_value_to_default_if_not_set(env, "LOAD_EXAMPLES", "false")
+    set_value_to_default_if_not_set(env, "ONLY_MIN_VERSION_UPDATE", "false")
     set_value_to_default_if_not_set(env, "PACKAGE_FORMAT", ALLOWED_PACKAGE_FORMATS[0])
     set_value_to_default_if_not_set(env, "PYTHONDONTWRITEBYTECODE", "true")
     set_value_to_default_if_not_set(env, "REMOVE_ARM_PACKAGES", "false")
@@ -670,6 +671,7 @@ DERIVE_ENV_VARIABLES_FROM_ATTRIBUTES = {
     "MSSQL_VERSION": "mssql_version",
     "MYSQL_VERSION": "mysql_version",
     "NUM_RUNS": "num_runs",
+    "ONLY_MIN_VERSION_UPDATE": "only_min_version_update",
     "PACKAGE_FORMAT": "package_format",
     "POSTGRES_VERSION": "postgres_version",
     "PYTHON_MAJOR_MINOR_VERSION": "python",
diff --git a/dev/provider_packages/PROVIDER_INDEX_TEMPLATE.rst.jinja2 b/dev/provider_packages/PROVIDER_INDEX_TEMPLATE.rst.jinja2
index 4c6cd2ad80..d73359f2c1 100644
--- a/dev/provider_packages/PROVIDER_INDEX_TEMPLATE.rst.jinja2
+++ b/dev/provider_packages/PROVIDER_INDEX_TEMPLATE.rst.jinja2
@@ -50,13 +50,30 @@ Installation
 You can install this package on top of an existing Airflow 2 installation (see ``Requirements`` below)
 for the minimum Airflow version supported) via
 ``pip install {{PACKAGE_PIP_NAME}}``
-{%- if PIP_REQUIREMENTS %}
 
 Requirements
 ------------
 
+The minimum Apache Airflow version supported by this provider package is ``{{ MIN_AIRFLOW_VERSION }}``.
+
+{%- if PREINSTALLED_PROVIDER %}
+
+This provider package is preinstalled by default when Apache Airflow is installed. You do not need to
+install it separately. You can upgrade and downgrade it independently of Apache Airflow package though.
+
+.. note::
+
+    The minimum Apache Airflow version for this package is {{ MIN_AIRFLOW_VERSION }} and it will fail
+    import at runtime if the version of Airflow is lower even if there is no requirement specified in
+    the dependencies - this is because the provider is preinstalled and specifying minimum Apache
+    Airflow version would create a dependency cycle, which confuses dependency tools.
+
+{%- endif %}
+
+{%- if PIP_REQUIREMENTS %}
 {{  PIP_REQUIREMENTS_TABLE_RST | safe}}
 {%- endif %}
+
 {%- if CROSS_PROVIDERS_DEPENDENCIES %}
 
 Cross provider package dependencies
diff --git a/dev/provider_packages/PROVIDER__INIT__PY_TEMPLATE.py.jinja2 b/dev/provider_packages/PROVIDER__INIT__PY_TEMPLATE.py.jinja2
new file mode 100644
index 0000000000..719f49d46a
--- /dev/null
+++ b/dev/provider_packages/PROVIDER__INIT__PY_TEMPLATE.py.jinja2
@@ -0,0 +1,56 @@
+{#
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+#}#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
+# OVERWRITTEN WHEN PREPARING DOCUMENTATION FOR THE PACKAGES.
+#
+# IF YOU WANT TO MODIFY IT, YOU SHOULD MODIFY THE TEMPLATE
+# `PROVIDER__INIT__PY_TEMPLATE.py.jinja2` IN the `dev/provider_packages` DIRECTORY
+#
+from __future__ import annotations
+
+import packaging.version
+
+import airflow
+
+__all__ = ["version"]
+
+version = "{{ RELEASE }}{{ VERSION_SUFFIX }}"
+
+if packaging.version.parse(airflow.version.version) < packaging.version.parse("{{ MIN_AIRFLOW_VERSION }}"):
+    raise RuntimeError(
+        f"The package `{{ PACKAGE_PIP_NAME }}:{version}` requires Apache Airflow {{ MIN_AIRFLOW_VERSION }}+"
+    )
diff --git a/dev/provider_packages/prepare_provider_packages.py b/dev/provider_packages/prepare_provider_packages.py
index c0123ece42..5f994e9432 100755
--- a/dev/provider_packages/prepare_provider_packages.py
+++ b/dev/provider_packages/prepare_provider_packages.py
@@ -54,6 +54,12 @@ from yaml import safe_load
 
 ALL_PYTHON_VERSIONS = ["3.7", "3.8", "3.9", "3.10"]
 
+MIN_AIRFLOW_VERSION = "2.4.0"
+# In case you have some providers that you want to have different min-airflow version for,
+# Add them as exceptions here. Make sure to remove it once the min-airflow version is bumped
+# to the same version that is required by the exceptional provider
+MIN_AIRFLOW_VERSION_EXCEPTIONS = {"openlineage": "2.6.0"}
+
 INITIAL_CHANGELOG_CONTENT = """
 
 
@@ -1109,6 +1115,9 @@ def get_provider_jinja_context(
     python_requires = "~=3.7"
     for p in provider_details.excluded_python_versions:
         python_requires += f", !={p}"
+    min_airflow_version = MIN_AIRFLOW_VERSION
+    if MIN_AIRFLOW_VERSION_EXCEPTIONS.get(provider_details.provider_package_id):
+        min_airflow_version = MIN_AIRFLOW_VERSION_EXCEPTIONS[provider_details.provider_package_id]
     context: dict[str, Any] = {
         "ENTITY_TYPES": list(EntityType),
         "README_FILE": "README.rst",
@@ -1146,6 +1155,8 @@ def get_provider_jinja_context(
         "SUPPORTED_PYTHON_VERSIONS": supported_python_versions,
         "PYTHON_REQUIRES": python_requires,
         "PLUGINS": provider_details.plugins,
+        "MIN_AIRFLOW_VERSION": min_airflow_version,
+        "PREINSTALLED_PROVIDER": provider_details.provider_package_id in PREINSTALLED_PROVIDERS,
     }
     return context
 
@@ -1318,6 +1329,25 @@ def update_release_notes(
     return True
 
 
+def update_min_airflow_version(provider_package_id: str, version_suffix: str):
+    provider_details = get_provider_details(provider_package_id)
+    provider_info = get_provider_info_from_provider_yaml(provider_package_id)
+    jinja_context = get_provider_jinja_context(
+        provider_info=provider_info,
+        provider_details=provider_details,
+        current_release_version=provider_details.versions[0],
+        version_suffix=version_suffix,
+    )
+    generate_init_py_file_for_provider(
+        context=jinja_context,
+        target_path=provider_details.source_provider_package_path,
+    )
+    if not jinja_context["PREINSTALLED_PROVIDER"]:
+        replace_min_airflow_version_in_provider_yaml(
+            context=jinja_context, target_path=provider_details.source_provider_package_path
+        )
+
+
 def update_setup_files(
     provider_package_id: str,
     version_suffix: str,
@@ -1413,6 +1443,37 @@ def update_commits_rst(
     replace_content(index_file_path, old_text, new_text, provider_package_id)
 
 
+def replace_min_airflow_version_in_provider_yaml(
+    context: dict[str, Any],
+    target_path: str,
+):
+    provider_yaml_path = os.path.join(target_path, "provider.yaml")
+    with open(provider_yaml_path) as provider_yaml_file:
+        provider_yaml_txt = provider_yaml_file.read()
+    provider_yaml_txt = re.sub(
+        r"  - apache-airflow>=.*", f"  - apache-airflow>={context['MIN_AIRFLOW_VERSION']}", provider_yaml_txt
+    )
+    with open(provider_yaml_path, "w") as provider_yaml_file:
+        provider_yaml_file.write(provider_yaml_txt)
+
+
+def generate_init_py_file_for_provider(
+    context: dict[str, Any],
+    target_path: str,
+):
+    init_py_content = black_format(
+        render_template(
+            template_name="PROVIDER__INIT__PY",
+            context=context,
+            extension=".py",
+            keep_trailing_newline=True,
+        )
+    )
+    init_py_path = os.path.join(target_path, "__init__.py")
+    with open(init_py_path, "w") as init_py_file:
+        init_py_file.write(init_py_content)
+
+
 @lru_cache(maxsize=None)
 def black_mode() -> Mode:
     config = parse_pyproject_toml(os.path.join(AIRFLOW_SOURCES_ROOT_PATH, "pyproject.toml"))
@@ -1567,16 +1628,19 @@ def update_package_documentation(
     with with_group(f"Update release notes for package '{provider_package_id}' "):
         console.print("Updating documentation for the latest release version.")
         make_sure_remote_apache_exists_and_fetch(git_update, verbose)
-        if not update_release_notes(
-            provider_package_id,
-            version_suffix,
-            force=force,
-            verbose=verbose,
-            answer=answer,
-            base_branch=base_branch,
-        ):
-            # Returns 64 in case of skipped package
-            sys.exit(64)
+        only_min_version_upgrade = os.environ.get("ONLY_MIN_VERSION_UPDATE", "false").lower() == "true"
+        if not only_min_version_upgrade:
+            if not update_release_notes(
+                provider_package_id,
+                version_suffix,
+                force=force,
+                verbose=verbose,
+                answer=answer,
+                base_branch=base_branch,
+            ):
+                # Returns 64 in case of skipped package
+                sys.exit(64)
+        update_min_airflow_version(provider_package_id=provider_package_id, version_suffix=version_suffix)
 
 
 def tag_exists_for_version(provider_package_id: str, current_tag: str, verbose: bool):
diff --git a/docs/apache-airflow-providers-airbyte/index.rst b/docs/apache-airflow-providers-airbyte/index.rst
index 2aeb25b245..b13e37efdb 100644
--- a/docs/apache-airflow-providers-airbyte/index.rst
+++ b/docs/apache-airflow-providers-airbyte/index.rst
@@ -64,7 +64,7 @@ Package apache-airflow-providers-airbyte
 `Airbyte <https://airbyte.io/>`__
 
 
-Release: 3.2.1
+Release: 3.2.2
 
 Provider package
 ----------------
@@ -82,10 +82,12 @@ for the minimum Airflow version supported) via
 Requirements
 ------------
 
+The minimum Apache Airflow version supported by this provider package is ``2.4.0``.
+
 =================================  ==================
 PIP package                        Version required
 =================================  ==================
-``apache-airflow``                 ``>=2.3.0``
+``apache-airflow``                 ``>=2.4.0``
 ``apache-airflow-providers-http``
 =================================  ==================
 
@@ -114,7 +116,7 @@ Downloading official packages
 You can download officially released packages and verify their checksums and signatures from the
 `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
 
-* `The apache-airflow-providers-airbyte 3.2.1 sdist package <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.1.tar.gz.sha512>`__)
-* `The apache-airflow-providers-airbyte 3.2.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.1-py3-none-any.whl.sha512>`__)
+* `The apache-airflow-providers-airbyte 3.2.2 sdist package <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache-airflow-providers-airbyte-3.2.2.tar.gz.sha512>`__)
+* `The apache-airflow-providers-airbyte 3.2.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_airbyte-3.2.2-py3-none-any.whl.sha512>`__)
 
 .. include:: ../../airflow/providers/airbyte/CHANGELOG.rst
diff --git a/docs/apache-airflow-providers-common-sql/index.rst b/docs/apache-airflow-providers-common-sql/index.rst
index 52c449e891..5915876be1 100644
--- a/docs/apache-airflow-providers-common-sql/index.rst
+++ b/docs/apache-airflow-providers-common-sql/index.rst
@@ -64,7 +64,7 @@ Package apache-airflow-providers-common-sql
 `Common SQL Provider <https://en.wikipedia.org/wiki/SQL>`__
 
 
-Release: 1.4.0
+Release: 1.4.1
 
 Provider package
 ----------------
@@ -82,6 +82,18 @@ for the minimum Airflow version supported) via
 Requirements
 ------------
 
+The minimum Apache Airflow version supported by this provider package is ``2.4.0``.
+
+This provider package is preinstalled by default when Apache Airflow is installed. You do not need to
+install it separately. You can upgrade and downgrade it independently of Apache Airflow package though.
+
+.. note::
+
+    The minimum Apache Airflow version for this package is 2.4.0 and it will fail
+    import at runtime if the version of Airflow is lower even if there is no requirement specified in
+    the dependencies - this is because the provider is preinstalled and specifying minimum Apache
+    Airflow version would create a dependency cycle, which confuses dependency tools.
+
 =============  ==================
 PIP package    Version required
 =============  ==================
diff --git a/docs/apache-airflow-providers-ftp/index.rst b/docs/apache-airflow-providers-ftp/index.rst
index 6609fa211b..7ca984a4dd 100644
--- a/docs/apache-airflow-providers-ftp/index.rst
+++ b/docs/apache-airflow-providers-ftp/index.rst
@@ -70,7 +70,6 @@ Package apache-airflow-providers-ftp
 
 `File Transfer Protocol (FTP) <https://tools.ietf.org/html/rfc114>`__
 
-
 Release: 3.3.1
 
 Provider package
@@ -86,4 +85,19 @@ You can install this package on top of an existing Airflow 2 installation (see `
 for the minimum Airflow version supported) via
 ``pip install apache-airflow-providers-ftp``
 
+Requirements
+------------
+
+The minimum Apache Airflow version supported by this provider package is ``2.4.0``.
+
+This provider package is preinstalled by default when Apache Airflow is installed. You do not need to
+install it separately. You can upgrade and downgrade it independently of Apache Airflow package though.
+
+.. note::
+
+    The minimum Apache Airflow version for this package is 2.4.0 and it will fail
+    import at runtime if the version of Airflow is lower even if there is no requirement specified in
+    the dependencies - this is because the provider is preinstalled and specifying minimum Apache
+    Airflow version would create a dependency cycle, which confuses dependency tools.
+
 .. include:: ../../airflow/providers/ftp/CHANGELOG.rst
diff --git a/docs/apache-airflow-providers-openlineage/commits.rst b/docs/apache-airflow-providers-openlineage/commits.rst
index e071470a5a..8fc779f848 100644
--- a/docs/apache-airflow-providers-openlineage/commits.rst
+++ b/docs/apache-airflow-providers-openlineage/commits.rst
@@ -18,9 +18,9 @@
 
 
 Package apache-airflow-providers-openlineage
---------------------------------------------
+------------------------------------------------------
 
-`OpenLineage Provider <https://openlineage.io>`__
+`OpenLineage <https://openlineage.io/>`__
 
 
 This is detailed commit list of changes for versions provider package: ``openlineage``.
diff --git a/docs/apache-airflow-providers-openlineage/index.rst b/docs/apache-airflow-providers-openlineage/index.rst
index e54f3a1fca..4793015162 100644
--- a/docs/apache-airflow-providers-openlineage/index.rst
+++ b/docs/apache-airflow-providers-openlineage/index.rst
@@ -70,7 +70,7 @@ Content
 
 
 Package apache-airflow-providers-openlineage
---------------------------------------------
+------------------------------------------------------
 
 `OpenLineage <https://openlineage.io/>`__
 
@@ -93,10 +93,16 @@ for the minimum Airflow version supported) via
 Requirements
 ------------
 
-==================  ==================
-PIP package         Version required
-==================  ==================
-``apache-airflow``  ``>=2.6.0``
-==================  ==================
+The minimum Apache Airflow version supported by this provider package is ``2.6.0``.
+
+=======================================  ==================
+PIP package                              Version required
+=======================================  ==================
+``apache-airflow``                       ``>=2.6.0``
+``apache-airflow-providers-common-sql``  ``>=1.3.1``
+``attrs``                                ``>=22.2``
+``openlineage-integration-common``       ``>=0.22.0``
+``openlineage-python``                   ``>=0.22.0``
+=======================================  ==================
 
 .. include:: ../../airflow/providers/openlineage/CHANGELOG.rst
diff --git a/docs/apache-airflow-providers-sqlite/index.rst b/docs/apache-airflow-providers-sqlite/index.rst
index 9dbd0ba801..556014021e 100644
--- a/docs/apache-airflow-providers-sqlite/index.rst
+++ b/docs/apache-airflow-providers-sqlite/index.rst
@@ -65,7 +65,7 @@ Package apache-airflow-providers-sqlite
 `SQLite <https://www.sqlite.org/>`__
 
 
-Release: 3.3.2
+Release: 3.3.3
 
 Provider package
 ----------------
@@ -83,6 +83,18 @@ for the minimum Airflow version supported) via
 Requirements
 ------------
 
+The minimum Apache Airflow version supported by this provider package is ``2.4.0``.
+
+This provider package is preinstalled by default when Apache Airflow is installed. You do not need to
+install it separately. You can upgrade and downgrade it independently of Apache Airflow package though.
+
+.. note::
+
+    The minimum Apache Airflow version for this package is 2.4.0 and it will fail
+    import at runtime if the version of Airflow is lower even if there is no requirement specified in
+    the dependencies - this is because the provider is preinstalled and specifying minimum Apache
+    Airflow version would create a dependency cycle, which confuses dependency tools.
+
 =======================================  ==================
 PIP package                              Version required
 =======================================  ==================
@@ -114,7 +126,7 @@ Downloading official packages
 You can download officially released packages and verify their checksums and signatures from the
 `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
 
-* `The apache-airflow-providers-sqlite 3.3.2 sdist package <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.2.tar.gz.sha512>`__)
-* `The apache-airflow-providers-sqlite 3.3.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.2-py3-none-any.whl.sha512>`__)
+* `The apache-airflow-providers-sqlite 3.3.3 sdist package <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache-airflow-providers-sqlite-3.3.3.tar.gz.sha512>`__)
+* `The apache-airflow-providers-sqlite 3.3.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_sqlite-3.3.3-py3-none-any.whl.sha512>`__)
 
 .. include:: ../../airflow/providers/sqlite/CHANGELOG.rst
diff --git a/generated/provider_dependencies.json b/generated/provider_dependencies.json
index 7ea21d517a..3622cd77ee 100644
--- a/generated/provider_dependencies.json
+++ b/generated/provider_dependencies.json
@@ -565,7 +565,7 @@
   "openlineage": {
     "deps": [
       "apache-airflow-providers-common-sql>=1.3.1",
-      "apache-airflow>=2.5.2",
+      "apache-airflow>=2.6.0",
       "attrs>=22.2",
       "openlineage-integration-common>=0.22.0",
       "openlineage-python>=0.22.0"
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index 44538a16b6..0ebd325d59 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -39,13 +39,13 @@ release-management:generate-constraints:ae30d6ad49a1b2c15b61cb29080fd957
 release-management:generate-issue-content-providers:421c1b186818a6251c16f7f3b7807292
 release-management:install-provider-packages:5838b06b78e3c5c6e8380024867a1a8d
 release-management:prepare-airflow-package:3ac14ea6d2b09614959c0ec4fd564789
-release-management:prepare-provider-documentation:b48d9c8af27d5e110364ed2454d23959
+release-management:prepare-provider-documentation:13f5fa922825a922c3525b5a57b2a80c
 release-management:prepare-provider-packages:cf41c33c6d6121efef1f1d97333e8710
 release-management:release-prod-images:c9bc40938e0efad49e51ef66e83f9527
 release-management:start-rc-process:6aafbaceabd7b67b9a1af4c2f59abc4c
 release-management:start-release:acb384d86e02ff5fde1bf971897be17c
 release-management:verify-provider-packages:566c60fb1bfdc5ed7c4be590736891b2
-release-management:a6d6b27d8705294bd55cd1281b05f4c8
+release-management:c0ecc3e5cd4a9f1aac18a9d6eb1ddfb6
 setup:autocomplete:03343478bf1d0cf9c101d454cdb63b68
 setup:check-all-params-in-groups:c3aca085350fc09451a6d502be9ee821
 setup:config:3ffcd35dd24b486ddf1d08b797e3d017
diff --git a/images/breeze/output-commands.svg b/images/breeze/output-commands.svg
index b2174143d6..d1ce7944df 100644
--- a/images/breeze/output-commands.svg
+++ b/images/breeze/output-commands.svg
@@ -35,8 +35,8 @@
     .breeze-help-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-help-r2 { fill: #c5c8c6 }
 .breeze-help-r3 { fill: #d0b344;font-weight: bold }
-.breeze-help-r4 { fill: #868887 }
-.breeze-help-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-help-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-help-r5 { fill: #868887 }
 .breeze-help-r6 { fill: #98a84b;font-weight: bold }
 .breeze-help-r7 { fill: #8d7b39 }
     </style>
@@ -190,50 +190,50 @@
     
     <g class="breeze-help-matrix">
     <text class="breeze-help-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-help-line-0)">
-</text><text class="breeze-help-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-help-line-1)">Usage:&#160;</text><text class="breeze-help-r1" x="97.6" y="44.4" textLength="414.8" clip-path="url(#breeze-help-line-1)">breeze&#160;[OPTIONS]&#160;COMMAND&#160;[ARGS]...</text><text class="breeze-help-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-help-line-1)">
+</text><text class="breeze-help-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-help-line-1)">Usage:&#160;</text><text class="breeze-help-r1" x="97.6" y="44.4" textLength="97.6" clip-path="url(#breeze-help-line-1)">breeze&#160;[</text><text class="breeze-help-r4" x="195.2" y="44.4" textLength="85.4" clip-path="url(#breeze-help-line-1)">OPTIONS</text><text class="breeze-help-r1" x="280.6" y="44.4" textLength="24.4" clip-path="url(#breeze-help-line-1)">]&#160;</text><text cl [...]
 </text><text class="breeze-help-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-help-line-2)">
-</text><text class="breeze-help-r4" x="0" y="93.2" textLength="24.4" clip-path="url(#breeze-help-line-3)">╭─</text><text class="breeze-help-r4" x="24.4" y="93.2" textLength="158.6" clip-path="url(#breeze-help-line-3)">&#160;Basic&#160;flags&#160;</text><text class="breeze-help-r4" x="183" y="93.2" textLength="1256.6" clip-path="url(#breeze-help-line-3)">───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-help-r [...]
-</text><text class="breeze-help-r4" x="0" y="117.6" textLength="12.2" clip-path="url(#breeze-help-line-4)">│</text><text class="breeze-help-r5" x="24.4" y="117.6" textLength="12.2" clip-path="url(#breeze-help-line-4)">-</text><text class="breeze-help-r5" x="36.6" y="117.6" textLength="85.4" clip-path="url(#breeze-help-line-4)">-python</text><text class="breeze-help-r6" x="305" y="117.6" textLength="24.4" clip-path="url(#breeze-help-line-4)">-p</text><text class="breeze-help-r2" x="353.8" [...]
-</text><text class="breeze-help-r4" x="0" y="142" textLength="12.2" clip-path="url(#breeze-help-line-5)">│</text><text class="breeze-help-r4" x="353.8" y="142" textLength="732" clip-path="url(#breeze-help-line-5)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-help-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-help-line-6)">│</text><text class="breeze-help-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-help-line-6)">-</text><text class="breeze-help-r5" x="36.6" y="166.4" textLength="97.6" clip-path="url(#breeze-help-line-6)">-backend</text><text class="breeze-help-r6" x="305" y="166.4" textLength="24.4" clip-path="url(#breeze-help-line-6)">-b</text><text class="breeze-help-r2" x="353.8 [...]
-</text><text class="breeze-help-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-help-line-7)">│</text><text class="breeze-help-r5" x="24.4" y="190.8" textLength="12.2" clip-path="url(#breeze-help-line-7)">-</text><text class="breeze-help-r5" x="36.6" y="190.8" textLength="109.8" clip-path="url(#breeze-help-line-7)">-postgres</text><text class="breeze-help-r5" x="146.4" y="190.8" textLength="97.6" clip-path="url(#breeze-help-line-7)">-version</text><text class="breeze-help-r6 [...]
-</text><text class="breeze-help-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-help-line-8)">│</text><text class="breeze-help-r5" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-help-line-8)">-</text><text class="breeze-help-r5" x="36.6" y="215.2" textLength="73.2" clip-path="url(#breeze-help-line-8)">-mysql</text><text class="breeze-help-r5" x="109.8" y="215.2" textLength="97.6" clip-path="url(#breeze-help-line-8)">-version</text><text class="breeze-help-r6" x= [...]
-</text><text class="breeze-help-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-help-line-9)">│</text><text class="breeze-help-r5" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-help-line-9)">-</text><text class="breeze-help-r5" x="36.6" y="239.6" textLength="73.2" clip-path="url(#breeze-help-line-9)">-mssql</text><text class="breeze-help-r5" x="109.8" y="239.6" textLength="97.6" clip-path="url(#breeze-help-line-9)">-version</text><text class="breeze-help-r6" x= [...]
-</text><text class="breeze-help-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-help-line-10)">│</text><text class="breeze-help-r5" x="24.4" y="264" textLength="12.2" clip-path="url(#breeze-help-line-10)">-</text><text class="breeze-help-r5" x="36.6" y="264" textLength="146.4" clip-path="url(#breeze-help-line-10)">-integration</text><text class="breeze-help-r2" x="353.8" y="264" textLength="1085.8" clip-path="url(#breeze-help-line-10)">Integration(s)&#160;to&#160;enable&#160;w [...]
-</text><text class="breeze-help-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-help-line-11)">│</text><text class="breeze-help-r7" x="353.8" y="288.4" textLength="1085.8" clip-path="url(#breeze-help-line-11)">(all&#160;|&#160;all-testable&#160;|&#160;cassandra&#160;|&#160;celery&#160;|&#160;kafka&#160;|&#160;kerberos&#160;|&#160;mongo&#160;|&#160;otel&#160;|&#160;pinot&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r4" x="1451.8" y="288.4" textLength="1 [...]
-</text><text class="breeze-help-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-help-line-12)">│</text><text class="breeze-help-r7" x="353.8" y="312.8" textLength="1085.8" clip-path="url(#breeze-help-line-12)">statsd&#160;|&#160;statsd&#160;|&#160;trino)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-help-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-help-line-13)">│</text><text class="breeze-help-r5" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-help-line-13)">-</text><text class="breeze-help-r5" x="36.6" y="337.2" textLength="97.6" clip-path="url(#breeze-help-line-13)">-forward</text><text class="breeze-help-r5" x="134.2" y="337.2" textLength="146.4" clip-path="url(#breeze-help-line-13)">-credentials</text><text class="breeze- [...]
-</text><text class="breeze-help-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-help-line-14)">│</text><text class="breeze-help-r5" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-help-line-14)">-</text><text class="breeze-help-r5" x="36.6" y="361.6" textLength="36.6" clip-path="url(#breeze-help-line-14)">-db</text><text class="breeze-help-r5" x="73.2" y="361.6" textLength="73.2" clip-path="url(#breeze-help-line-14)">-reset</text><text class="breeze-help-r6" x="3 [...]
-</text><text class="breeze-help-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-help-line-15)">│</text><text class="breeze-help-r5" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-help-line-15)">-</text><text class="breeze-help-r5" x="36.6" y="386" textLength="48.8" clip-path="url(#breeze-help-line-15)">-max</text><text class="breeze-help-r5" x="85.4" y="386" textLength="61" clip-path="url(#breeze-help-line-15)">-time</text><text class="breeze-help-r2" x="353.8" y="3 [...]
-</text><text class="breeze-help-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-help-line-16)">│</text><text class="breeze-help-r7" x="353.8" y="410.4" textLength="1049.2" clip-path="url(#breeze-help-line-16)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-help-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-help-line-17)">│</text><text class="breeze-help-r5" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-help-line-17)">-</text><text class="breeze-help-r5" x="36.6" y="434.8" textLength="85.4" clip-path="url(#breeze-help-line-17)">-github</text><text class="breeze-help-r5" x="122" y="434.8" textLength="134.2" clip-path="url(#breeze-help-line-17)">-repository</text><text class="breeze-help [...]
-</text><text class="breeze-help-r4" x="0" y="459.2" textLength="1464" clip-path="url(#breeze-help-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-help-line-18)">
-</text><text class="breeze-help-r4" x="0" y="483.6" textLength="24.4" clip-path="url(#breeze-help-line-19)">╭─</text><text class="breeze-help-r4" x="24.4" y="483.6" textLength="195.2" clip-path="url(#breeze-help-line-19)">&#160;Common&#160;options&#160;</text><text class="breeze-help-r4" x="219.6" y="483.6" textLength="1220" clip-path="url(#breeze-help-line-19)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze- [...]
-</text><text class="breeze-help-r4" x="0" y="508" textLength="12.2" clip-path="url(#breeze-help-line-20)">│</text><text class="breeze-help-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-help-line-20)">-</text><text class="breeze-help-r5" x="36.6" y="508" textLength="97.6" clip-path="url(#breeze-help-line-20)">-verbose</text><text class="breeze-help-r6" x="158.6" y="508" textLength="24.4" clip-path="url(#breeze-help-line-20)">-v</text><text class="breeze-help-r2" x="207.4"  [...]
-</text><text class="breeze-help-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-help-line-21)">│</text><text class="breeze-help-r5" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-help-line-21)">-</text><text class="breeze-help-r5" x="36.6" y="532.4" textLength="48.8" clip-path="url(#breeze-help-line-21)">-dry</text><text class="breeze-help-r5" x="85.4" y="532.4" textLength="48.8" clip-path="url(#breeze-help-line-21)">-run</text><text class="breeze-help-r6" x="15 [...]
-</text><text class="breeze-help-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-help-line-22)">│</text><text class="breeze-help-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-help-line-22)">-</text><text class="breeze-help-r5" x="36.6" y="556.8" textLength="85.4" clip-path="url(#breeze-help-line-22)">-answer</text><text class="breeze-help-r6" x="158.6" y="556.8" textLength="24.4" clip-path="url(#breeze-help-line-22)">-a</text><text class="breeze-help-r2" x=" [...]
-</text><text class="breeze-help-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-help-line-23)">│</text><text class="breeze-help-r5" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-help-line-23)">-</text><text class="breeze-help-r5" x="36.6" y="581.2" textLength="61" clip-path="url(#breeze-help-line-23)">-help</text><text class="breeze-help-r6" x="158.6" y="581.2" textLength="24.4" clip-path="url(#breeze-help-line-23)">-h</text><text class="breeze-help-r2" x="207. [...]
-</text><text class="breeze-help-r4" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-help-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-help-line-24)">
-</text><text class="breeze-help-r4" x="0" y="630" textLength="24.4" clip-path="url(#breeze-help-line-25)">╭─</text><text class="breeze-help-r4" x="24.4" y="630" textLength="317.2" clip-path="url(#breeze-help-line-25)">&#160;Basic&#160;developer&#160;commands&#160;</text><text class="breeze-help-r4" x="341.6" y="630" textLength="1098" clip-path="url(#breeze-help-line-25)">──────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-h [...]
-</text><text class="breeze-help-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-help-line-26)">│</text><text class="breeze-help-r5" x="24.4" y="654.4" textLength="219.6" clip-path="url(#breeze-help-line-26)">start-airflow&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="654.4" textLength="1171.2" clip-path="url(#breeze-help-line-26)">Enter&#160;breeze&#160;environment&#160;and&#160;starts&#160;all&#160;Airflow&#160;components&#160;in&#160;the&#16 [...]
-</text><text class="breeze-help-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-help-line-27)">│</text><text class="breeze-help-r2" x="268.4" y="678.8" textLength="1171.2" clip-path="url(#breeze-help-line-27)">if&#160;contents&#160;of&#160;www&#160;directory&#160;changed.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-help-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-help-line-28)">│</text><text class="breeze-help-r5" x="24.4" y="703.2" textLength="219.6" clip-path="url(#breeze-help-line-28)">static-checks&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="703.2" textLength="1171.2" clip-path="url(#breeze-help-line-28)">Run&#160;static&#160;checks.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-help-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-help-line-29)">│</text><text class="breeze-help-r5" x="24.4" y="727.6" textLength="219.6" clip-path="url(#breeze-help-line-29)">build-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="727.6" textLength="1171.2" clip-path="url(#breeze-help-line-29)">Build&#160;documentation&#160;in&#160;the&#160;container.&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-help-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-help-line-30)">│</text><text class="breeze-help-r5" x="24.4" y="752" textLength="219.6" clip-path="url(#breeze-help-line-30)">stop&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="752" textLength="1171.2" clip-path="url(#breeze-help-line-30)">Stop&#160;running&#160;breeze&#160;environment.&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-help-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-help-line-31)">│</text><text class="breeze-help-r5" x="24.4" y="776.4" textLength="219.6" clip-path="url(#breeze-help-line-31)">shell&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="776.4" textLength="1171.2" clip-path="url(#breeze-help-line-31)">Enter&#160;breeze&#160;environment.&#160;this&#160;is&#160;the&#160;defaul [...]
-</text><text class="breeze-help-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-help-line-32)">│</text><text class="breeze-help-r5" x="24.4" y="800.8" textLength="219.6" clip-path="url(#breeze-help-line-32)">exec&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="800.8" textLength="1171.2" clip-path="url(#breeze-help-line-32)">Joins&#160;the&#160;interactive&#160;shell&#160;of&#160;running&#160; [...]
-</text><text class="breeze-help-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-help-line-33)">│</text><text class="breeze-help-r5" x="24.4" y="825.2" textLength="219.6" clip-path="url(#breeze-help-line-33)">compile-www-assets</text><text class="breeze-help-r2" x="268.4" y="825.2" textLength="1171.2" clip-path="url(#breeze-help-line-33)">Compiles&#160;www&#160;assets.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-help-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-help-line-34)">│</text><text class="breeze-help-r5" x="24.4" y="849.6" textLength="219.6" clip-path="url(#breeze-help-line-34)">cleanup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="849.6" textLength="1171.2" clip-path="url(#breeze-help-line-34)">Cleans&#160;the&#160;cache&#160;of&#160;parameters,&#160;docker&#160;cache&#160;and& [...]
-</text><text class="breeze-help-r4" x="0" y="874" textLength="1464" clip-path="url(#breeze-help-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-help-line-35)">
-</text><text class="breeze-help-r4" x="0" y="898.4" textLength="24.4" clip-path="url(#breeze-help-line-36)">╭─</text><text class="breeze-help-r4" x="24.4" y="898.4" textLength="305" clip-path="url(#breeze-help-line-36)">&#160;Advanced&#160;command&#160;groups&#160;</text><text class="breeze-help-r4" x="329.4" y="898.4" textLength="1110.2" clip-path="url(#breeze-help-line-36)">───────────────────────────────────────────────────────────────────────────────────────────</text><text class="br [...]
-</text><text class="breeze-help-r4" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r5" x="24.4" y="922.8" textLength="280.6" clip-path="url(#breeze-help-line-37)">testing&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="922.8" textLength="1110.2" clip-path="url(#breeze-help-line-37)">Tools&#160;that&#160;developers&#160;can&#160;use&#160 [...]
-</text><text class="breeze-help-r4" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r5" x="24.4" y="947.2" textLength="280.6" clip-path="url(#breeze-help-line-38)">ci-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="947.2" textLength="1110.2" clip-path="url(#breeze-help-line-38)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&# [...]
-</text><text class="breeze-help-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r5" x="24.4" y="971.6" textLength="280.6" clip-path="url(#breeze-help-line-39)">k8s&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="971.6" textLength="1110.2" clip-path="url(#breeze-help-line-39)">Tools&#160;that&#160;developers&#1 [...]
-</text><text class="breeze-help-r4" x="0" y="996" textLength="12.2" clip-path="url(#breeze-help-line-40)">│</text><text class="breeze-help-r5" x="24.4" y="996" textLength="280.6" clip-path="url(#breeze-help-line-40)">prod-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="996" textLength="1110.2" clip-path="url(#breeze-help-line-40)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#160;manually&#16 [...]
-</text><text class="breeze-help-r4" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r5" x="24.4" y="1020.4" textLength="280.6" clip-path="url(#breeze-help-line-41)">setup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1020.4" textLength="1110.2" clip-path="url(#breeze-help-line-41)">Tools&#160;that&#160;developers&#160;can& [...]
-</text><text class="breeze-help-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-help-line-42)">│</text><text class="breeze-help-r5" x="24.4" y="1044.8" textLength="280.6" clip-path="url(#breeze-help-line-42)">release-management&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1044.8" textLength="1110.2" clip-path="url(#breeze-help-line-42)">Tools&#160;that&#160;release&#160;managers&#160;can&#160;use&#160;to&#160;prepare&#160;and&#160;manage&#16 [...]
-</text><text class="breeze-help-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-help-line-43)">│</text><text class="breeze-help-r5" x="24.4" y="1069.2" textLength="280.6" clip-path="url(#breeze-help-line-43)">ci&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1069.2" textLength="1110.2" clip-path="url(#breeze-help-line-43)">Tools&#160;that&#160;CI&#1 [...]
-</text><text class="breeze-help-r4" x="0" y="1093.6" textLength="1464" clip-path="url(#breeze-help-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="1093.6" textLength="12.2" clip-path="url(#breeze-help-line-44)">
+</text><text class="breeze-help-r5" x="0" y="93.2" textLength="24.4" clip-path="url(#breeze-help-line-3)">╭─</text><text class="breeze-help-r5" x="24.4" y="93.2" textLength="158.6" clip-path="url(#breeze-help-line-3)">&#160;Basic&#160;flags&#160;</text><text class="breeze-help-r5" x="183" y="93.2" textLength="1256.6" clip-path="url(#breeze-help-line-3)">───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-help-r [...]
+</text><text class="breeze-help-r5" x="0" y="117.6" textLength="12.2" clip-path="url(#breeze-help-line-4)">│</text><text class="breeze-help-r4" x="24.4" y="117.6" textLength="12.2" clip-path="url(#breeze-help-line-4)">-</text><text class="breeze-help-r4" x="36.6" y="117.6" textLength="85.4" clip-path="url(#breeze-help-line-4)">-python</text><text class="breeze-help-r6" x="305" y="117.6" textLength="24.4" clip-path="url(#breeze-help-line-4)">-p</text><text class="breeze-help-r2" x="353.8" [...]
+</text><text class="breeze-help-r5" x="0" y="142" textLength="12.2" clip-path="url(#breeze-help-line-5)">│</text><text class="breeze-help-r5" x="353.8" y="142" textLength="732" clip-path="url(#breeze-help-line-5)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-help-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-help-line-6)">│</text><text class="breeze-help-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-help-line-6)">-</text><text class="breeze-help-r4" x="36.6" y="166.4" textLength="97.6" clip-path="url(#breeze-help-line-6)">-backend</text><text class="breeze-help-r6" x="305" y="166.4" textLength="24.4" clip-path="url(#breeze-help-line-6)">-b</text><text class="breeze-help-r2" x="353.8 [...]
+</text><text class="breeze-help-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-help-line-7)">│</text><text class="breeze-help-r4" x="24.4" y="190.8" textLength="12.2" clip-path="url(#breeze-help-line-7)">-</text><text class="breeze-help-r4" x="36.6" y="190.8" textLength="109.8" clip-path="url(#breeze-help-line-7)">-postgres</text><text class="breeze-help-r4" x="146.4" y="190.8" textLength="97.6" clip-path="url(#breeze-help-line-7)">-version</text><text class="breeze-help-r6 [...]
+</text><text class="breeze-help-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-help-line-8)">│</text><text class="breeze-help-r4" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-help-line-8)">-</text><text class="breeze-help-r4" x="36.6" y="215.2" textLength="73.2" clip-path="url(#breeze-help-line-8)">-mysql</text><text class="breeze-help-r4" x="109.8" y="215.2" textLength="97.6" clip-path="url(#breeze-help-line-8)">-version</text><text class="breeze-help-r6" x= [...]
+</text><text class="breeze-help-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-help-line-9)">│</text><text class="breeze-help-r4" x="24.4" y="239.6" textLength="12.2" clip-path="url(#breeze-help-line-9)">-</text><text class="breeze-help-r4" x="36.6" y="239.6" textLength="73.2" clip-path="url(#breeze-help-line-9)">-mssql</text><text class="breeze-help-r4" x="109.8" y="239.6" textLength="97.6" clip-path="url(#breeze-help-line-9)">-version</text><text class="breeze-help-r6" x= [...]
+</text><text class="breeze-help-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-help-line-10)">│</text><text class="breeze-help-r4" x="24.4" y="264" textLength="12.2" clip-path="url(#breeze-help-line-10)">-</text><text class="breeze-help-r4" x="36.6" y="264" textLength="146.4" clip-path="url(#breeze-help-line-10)">-integration</text><text class="breeze-help-r2" x="353.8" y="264" textLength="1085.8" clip-path="url(#breeze-help-line-10)">Integration(s)&#160;to&#160;enable&#160;w [...]
+</text><text class="breeze-help-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-help-line-11)">│</text><text class="breeze-help-r7" x="353.8" y="288.4" textLength="1085.8" clip-path="url(#breeze-help-line-11)">(all&#160;|&#160;all-testable&#160;|&#160;cassandra&#160;|&#160;celery&#160;|&#160;kafka&#160;|&#160;kerberos&#160;|&#160;mongo&#160;|&#160;otel&#160;|&#160;pinot&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r5" x="1451.8" y="288.4" textLength="1 [...]
+</text><text class="breeze-help-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-help-line-12)">│</text><text class="breeze-help-r7" x="353.8" y="312.8" textLength="1085.8" clip-path="url(#breeze-help-line-12)">statsd&#160;|&#160;statsd&#160;|&#160;trino)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-help-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-help-line-13)">│</text><text class="breeze-help-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-help-line-13)">-</text><text class="breeze-help-r4" x="36.6" y="337.2" textLength="97.6" clip-path="url(#breeze-help-line-13)">-forward</text><text class="breeze-help-r4" x="134.2" y="337.2" textLength="146.4" clip-path="url(#breeze-help-line-13)">-credentials</text><text class="breeze- [...]
+</text><text class="breeze-help-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-help-line-14)">│</text><text class="breeze-help-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-help-line-14)">-</text><text class="breeze-help-r4" x="36.6" y="361.6" textLength="36.6" clip-path="url(#breeze-help-line-14)">-db</text><text class="breeze-help-r4" x="73.2" y="361.6" textLength="73.2" clip-path="url(#breeze-help-line-14)">-reset</text><text class="breeze-help-r6" x="3 [...]
+</text><text class="breeze-help-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-help-line-15)">│</text><text class="breeze-help-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-help-line-15)">-</text><text class="breeze-help-r4" x="36.6" y="386" textLength="48.8" clip-path="url(#breeze-help-line-15)">-max</text><text class="breeze-help-r4" x="85.4" y="386" textLength="61" clip-path="url(#breeze-help-line-15)">-time</text><text class="breeze-help-r2" x="353.8" y="3 [...]
+</text><text class="breeze-help-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-help-line-16)">│</text><text class="breeze-help-r7" x="353.8" y="410.4" textLength="1049.2" clip-path="url(#breeze-help-line-16)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-help-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-help-line-17)">│</text><text class="breeze-help-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-help-line-17)">-</text><text class="breeze-help-r4" x="36.6" y="434.8" textLength="85.4" clip-path="url(#breeze-help-line-17)">-github</text><text class="breeze-help-r4" x="122" y="434.8" textLength="134.2" clip-path="url(#breeze-help-line-17)">-repository</text><text class="breeze-help [...]
+</text><text class="breeze-help-r5" x="0" y="459.2" textLength="1464" clip-path="url(#breeze-help-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="459.2" textLength="12.2" clip-path="url(#breeze-help-line-18)">
+</text><text class="breeze-help-r5" x="0" y="483.6" textLength="24.4" clip-path="url(#breeze-help-line-19)">╭─</text><text class="breeze-help-r5" x="24.4" y="483.6" textLength="195.2" clip-path="url(#breeze-help-line-19)">&#160;Common&#160;options&#160;</text><text class="breeze-help-r5" x="219.6" y="483.6" textLength="1220" clip-path="url(#breeze-help-line-19)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze- [...]
+</text><text class="breeze-help-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-help-line-20)">│</text><text class="breeze-help-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-help-line-20)">-</text><text class="breeze-help-r4" x="36.6" y="508" textLength="97.6" clip-path="url(#breeze-help-line-20)">-verbose</text><text class="breeze-help-r6" x="158.6" y="508" textLength="24.4" clip-path="url(#breeze-help-line-20)">-v</text><text class="breeze-help-r2" x="207.4"  [...]
+</text><text class="breeze-help-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-help-line-21)">│</text><text class="breeze-help-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-help-line-21)">-</text><text class="breeze-help-r4" x="36.6" y="532.4" textLength="48.8" clip-path="url(#breeze-help-line-21)">-dry</text><text class="breeze-help-r4" x="85.4" y="532.4" textLength="48.8" clip-path="url(#breeze-help-line-21)">-run</text><text class="breeze-help-r6" x="15 [...]
+</text><text class="breeze-help-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-help-line-22)">│</text><text class="breeze-help-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-help-line-22)">-</text><text class="breeze-help-r4" x="36.6" y="556.8" textLength="85.4" clip-path="url(#breeze-help-line-22)">-answer</text><text class="breeze-help-r6" x="158.6" y="556.8" textLength="24.4" clip-path="url(#breeze-help-line-22)">-a</text><text class="breeze-help-r2" x=" [...]
+</text><text class="breeze-help-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-help-line-23)">│</text><text class="breeze-help-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-help-line-23)">-</text><text class="breeze-help-r4" x="36.6" y="581.2" textLength="61" clip-path="url(#breeze-help-line-23)">-help</text><text class="breeze-help-r6" x="158.6" y="581.2" textLength="24.4" clip-path="url(#breeze-help-line-23)">-h</text><text class="breeze-help-r2" x="207. [...]
+</text><text class="breeze-help-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-help-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-help-line-24)">
+</text><text class="breeze-help-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-help-line-25)">╭─</text><text class="breeze-help-r5" x="24.4" y="630" textLength="317.2" clip-path="url(#breeze-help-line-25)">&#160;Basic&#160;developer&#160;commands&#160;</text><text class="breeze-help-r5" x="341.6" y="630" textLength="1098" clip-path="url(#breeze-help-line-25)">──────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-h [...]
+</text><text class="breeze-help-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-help-line-26)">│</text><text class="breeze-help-r4" x="24.4" y="654.4" textLength="219.6" clip-path="url(#breeze-help-line-26)">start-airflow&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="654.4" textLength="1171.2" clip-path="url(#breeze-help-line-26)">Enter&#160;breeze&#160;environment&#160;and&#160;starts&#160;all&#160;Airflow&#160;components&#160;in&#160;the&#16 [...]
+</text><text class="breeze-help-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-help-line-27)">│</text><text class="breeze-help-r2" x="268.4" y="678.8" textLength="1171.2" clip-path="url(#breeze-help-line-27)">if&#160;contents&#160;of&#160;www&#160;directory&#160;changed.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-help-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-help-line-28)">│</text><text class="breeze-help-r4" x="24.4" y="703.2" textLength="219.6" clip-path="url(#breeze-help-line-28)">static-checks&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="703.2" textLength="1171.2" clip-path="url(#breeze-help-line-28)">Run&#160;static&#160;checks.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-help-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-help-line-29)">│</text><text class="breeze-help-r4" x="24.4" y="727.6" textLength="219.6" clip-path="url(#breeze-help-line-29)">build-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="727.6" textLength="1171.2" clip-path="url(#breeze-help-line-29)">Build&#160;documentation&#160;in&#160;the&#160;container.&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-help-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-help-line-30)">│</text><text class="breeze-help-r4" x="24.4" y="752" textLength="219.6" clip-path="url(#breeze-help-line-30)">stop&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="752" textLength="1171.2" clip-path="url(#breeze-help-line-30)">Stop&#160;running&#160;breeze&#160;environment.&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-help-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-help-line-31)">│</text><text class="breeze-help-r4" x="24.4" y="776.4" textLength="219.6" clip-path="url(#breeze-help-line-31)">shell&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="776.4" textLength="1171.2" clip-path="url(#breeze-help-line-31)">Enter&#160;breeze&#160;environment.&#160;this&#160;is&#160;the&#160;defaul [...]
+</text><text class="breeze-help-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-help-line-32)">│</text><text class="breeze-help-r4" x="24.4" y="800.8" textLength="219.6" clip-path="url(#breeze-help-line-32)">exec&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="800.8" textLength="1171.2" clip-path="url(#breeze-help-line-32)">Joins&#160;the&#160;interactive&#160;shell&#160;of&#160;running&#160; [...]
+</text><text class="breeze-help-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-help-line-33)">│</text><text class="breeze-help-r4" x="24.4" y="825.2" textLength="219.6" clip-path="url(#breeze-help-line-33)">compile-www-assets</text><text class="breeze-help-r2" x="268.4" y="825.2" textLength="1171.2" clip-path="url(#breeze-help-line-33)">Compiles&#160;www&#160;assets.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-help-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-help-line-34)">│</text><text class="breeze-help-r4" x="24.4" y="849.6" textLength="219.6" clip-path="url(#breeze-help-line-34)">cleanup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="268.4" y="849.6" textLength="805.2" clip-path="url(#breeze-help-line-34)">Cleans&#160;the&#160;cache&#160;of&#160;parameters,&#160;docker&#160;cache&#160;and&# [...]
+</text><text class="breeze-help-r5" x="0" y="874" textLength="1464" clip-path="url(#breeze-help-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-help-line-35)">
+</text><text class="breeze-help-r5" x="0" y="898.4" textLength="24.4" clip-path="url(#breeze-help-line-36)">╭─</text><text class="breeze-help-r5" x="24.4" y="898.4" textLength="305" clip-path="url(#breeze-help-line-36)">&#160;Advanced&#160;command&#160;groups&#160;</text><text class="breeze-help-r5" x="329.4" y="898.4" textLength="1110.2" clip-path="url(#breeze-help-line-36)">───────────────────────────────────────────────────────────────────────────────────────────</text><text class="br [...]
+</text><text class="breeze-help-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r4" x="24.4" y="922.8" textLength="280.6" clip-path="url(#breeze-help-line-37)">testing&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="922.8" textLength="1110.2" clip-path="url(#breeze-help-line-37)">Tools&#160;that&#160;developers&#160;can&#160;use&#160 [...]
+</text><text class="breeze-help-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r4" x="24.4" y="947.2" textLength="280.6" clip-path="url(#breeze-help-line-38)">ci-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="947.2" textLength="597.8" clip-path="url(#breeze-help-line-38)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#1 [...]
+</text><text class="breeze-help-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r4" x="24.4" y="971.6" textLength="280.6" clip-path="url(#breeze-help-line-39)">k8s&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="971.6" textLength="1110.2" clip-path="url(#breeze-help-line-39)">Tools&#160;that&#160;developers&#1 [...]
+</text><text class="breeze-help-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-help-line-40)">│</text><text class="breeze-help-r4" x="24.4" y="996" textLength="280.6" clip-path="url(#breeze-help-line-40)">prod-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="996" textLength="597.8" clip-path="url(#breeze-help-line-40)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#160;manually&#160 [...]
+</text><text class="breeze-help-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r4" x="24.4" y="1020.4" textLength="280.6" clip-path="url(#breeze-help-line-41)">setup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1020.4" textLength="1110.2" clip-path="url(#breeze-help-line-41)">Tools&#160;that&#160;developers&#160;can& [...]
+</text><text class="breeze-help-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-help-line-42)">│</text><text class="breeze-help-r4" x="24.4" y="1044.8" textLength="280.6" clip-path="url(#breeze-help-line-42)">release-management&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1044.8" textLength="1110.2" clip-path="url(#breeze-help-line-42)">Tools&#160;that&#160;release&#160;managers&#160;can&#160;use&#160;to&#160;prepare&#160;and&#160;manage&#16 [...]
+</text><text class="breeze-help-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-help-line-43)">│</text><text class="breeze-help-r4" x="24.4" y="1069.2" textLength="280.6" clip-path="url(#breeze-help-line-43)">ci&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-help-r2" x="329.4" y="1069.2" textLength="134.2" clip-path="url(#breeze-help-line-43)">Tools&#160;that&#160;</text [...]
+</text><text class="breeze-help-r5" x="0" y="1093.6" textLength="1464" clip-path="url(#breeze-help-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-help-r2" x="1464" y="1093.6" textLength="12.2" clip-path="url(#breeze-help-line-44)">
 </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 64ea91aaac..107d4ae100 100644
--- a/images/breeze/output_release-management_prepare-provider-documentation.svg
+++ b/images/breeze/output_release-management_prepare-provider-documentation.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 855.1999999999999" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 952.8" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-prepare-provider-documentation-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="804.1999999999999" />
+      <rect x="0" y="0" width="1463.0" height="901.8" />
     </clipPath>
     <clipPath id="breeze-release-management-prepare-provider-documentation-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -141,9 +141,21 @@
 <clipPath id="breeze-release-management-prepare-provider-documentation-line-31">
     <rect x="0" y="757.9" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-release-management-prepare-provider-documentation-line-32">
+    <rect x="0" y="782.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-prepare-provider-documentation-line-33">
+    <rect x="0" y="806.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-prepare-provider-documentation-line-34">
+    <rect x="0" y="831.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-prepare-provider-documentation-line-35">
+    <rect x="0" y="855.5" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="853.2" rx="8"/><text class="breeze-release-management-prepare-provider-documentation-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;prepare-provider-documentation</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="950.8" rx="8"/><text class="breeze-release-management-prepare-provider-documentation-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;prepare-provider-documentation</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -176,16 +188,20 @@
 </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&#160;</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="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)">&#160;Provider&#160;documentation&#160;preparation&#160;flags&#160;</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)">&#160;Common&#160;options&#160;</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-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="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-26)">│</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="402.6" y="654.4" textLength="1037" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-26)">branch)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)">│</text><text class="breeze-release-management-prepare-provider-documentation-r7" x="402.6" y="678.8" textLength="1037" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-27)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</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-r2" x="402.6" y="727.6" textLength="1037" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-29)">documentation&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-d [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="776.4" textLength="24.4" 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="195.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-31)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-prepare-provi [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-32)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-32)">-</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="825.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-33)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-33)">-</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="849.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-34)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-34)">-</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="874" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-35)">│</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-35)">-</text><text class="breeze-release-management-prepare-provider-documentation-r4" x="36.6" y="87 [...]
+</text><text class="breeze-release-management-prepare-provider-documentation-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-release-management-prepare-provider-documentation-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-prepare-provider-documentation-r2" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-prepare-provid [...]
 </text>
     </g>
     </g>
diff --git a/scripts/ci/docker-compose/_docker.env b/scripts/ci/docker-compose/_docker.env
index 2a342e136a..5df75461fe 100644
--- a/scripts/ci/docker-compose/_docker.env
+++ b/scripts/ci/docker-compose/_docker.env
@@ -55,6 +55,7 @@ LOAD_DEFAULT_CONNECTIONS
 LOAD_EXAMPLES
 MYSQL_VERSION
 NUM_RUNS
+ONLY_MIN_VERSION_UPDATE
 PACKAGE_FORMAT
 POSTGRES_VERSION
 PYTHONDONTWRITEBYTECODE
diff --git a/scripts/ci/docker-compose/base.yml b/scripts/ci/docker-compose/base.yml
index 2b7214c0a0..f075431412 100644
--- a/scripts/ci/docker-compose/base.yml
+++ b/scripts/ci/docker-compose/base.yml
@@ -68,6 +68,7 @@ services:
       - LOAD_EXAMPLES=${LOAD_EXAMPLES}
       - MYSQL_VERSION=${MYSQL_VERSION}
       - NUM_RUNS=${NUM_RUNS}
+      - ONLY_MIN_VERSION_UPDATE=${ONLY_MIN_VERSION_UPDATE}
       - PACKAGE_FORMAT=${PACKAGE_FORMAT}
       - POSTGRES_VERSION=${POSTGRES_VERSION}
       - PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
diff --git a/scripts/ci/docker-compose/devcontainer.env b/scripts/ci/docker-compose/devcontainer.env
index 6ac0cf18ef..7536a89a93 100644
--- a/scripts/ci/docker-compose/devcontainer.env
+++ b/scripts/ci/docker-compose/devcontainer.env
@@ -55,6 +55,7 @@ LOAD_DEFAULT_CONNECTIONS=
 LOAD_EXAMPLES=
 MYSQL_VERSION=5.7
 NUM_RUNS=
+ONLY_MIN_VERSION_UPDATE="false"
 PACKAGE_FORMAT=
 POSTGRES_VERSION=10
 PYTHONDONTWRITEBYTECODE="true"