Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 16 additions & 9 deletions contributing-docs/11_provider_packages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,23 @@ How to manage provider's dependencies
-------------------------------------

If you want to add dependencies to the provider, you should add them to the corresponding ``pyproject.toml``
file.
file. For regular local virtualenv development you also need to run ``uv sync --extra PROVIDER`` after you
do it or run ``pip install -e ./providers/PROVIDER`` to install the provider in development mode in your venv
and IDE. If you are using breeze you should also run the below command to regenerate all files that
needs to be updated after you change dependencies:

Providers are not packaged together with the core when you build "apache-airflow" package.
.. code:: bash

breeze static-checks --type update-providers-dependencies --all-files

If you have ``pre-commit`` installed, this will be done automatically for you when you commit the changes and
you should do it before you make a PR with such changed dependency changes

Also, you should rebuild the image ``breeze ci-image build`` or answer ``y`` when you are asked to rebuild the
image for the new dependencies to be used in the Breeze CI environment.

Provider's cross-dependencies
-----------------------------

Some of the packages have cross-dependencies with other providers packages. This typically happens for
transfer operators where operators use hooks from the other providers in case they are transferring
Expand All @@ -114,13 +128,6 @@ you need functionality from the other provider package you can install it adding
``pip install apache-airflow-providers-google[amazon]`` in case you want to use GCP
transfer operators from Amazon ECS.

If you add a new dependency between different providers packages, it will be detected automatically during
and pre-commit will generate new entry in ``generated/provider_dependencies.json`` and update
``pyproject.toml`` in the new providers so that the package extra dependencies are properly handled when
package might be installed when breeze is restarted or by your IDE or by running ``uv sync --extra PROVIDER``
or when you run ``pip install -e "./providers"`` or ``pip install -e "./providers/<PROVIDER>"`` for the new
provider structure.

How to reuse code between tests in different providers
------------------------------------------------------

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,10 @@ classifiers = [
]
requires-python = "{{ REQUIRES_PYTHON }}"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
{{ INSTALL_REQUIREMENTS }}
]
Expand Down
2 changes: 1 addition & 1 deletion providers/airbyte/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Airbyte <https://airbyte.com/>`__

state: ready
source-date-epoch: 1737371678
source-date-epoch: 1740734068
# note that those versions are maintained by release manager - do not update them manually
versions:
- 5.0.0
Expand Down
4 changes: 3 additions & 1 deletion providers/airbyte/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"airbyte-api>=0.52.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Airbyte",
"description": "`Airbyte <https://airbyte.com/>`__\n",
"state": "ready",
"source-date-epoch": 1737371678,
"source-date-epoch": 1740734068,
"versions": [
"5.0.0",
"4.0.0",
Expand Down
2 changes: 1 addition & 1 deletion providers/alibaba/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
Alibaba Cloud integration (including `Alibaba Cloud <https://www.alibabacloud.com/>`__).

state: ready
source-date-epoch: 1734526745
source-date-epoch: 1740734069
# note that those versions are maintained by release manager - do not update them manually
versions:
- 3.0.0
Expand Down
4 changes: 3 additions & 1 deletion providers/alibaba/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"oss2>=2.14.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Alibaba",
"description": "Alibaba Cloud integration (including `Alibaba Cloud <https://www.alibabacloud.com/>`__).\n",
"state": "ready",
"source-date-epoch": 1734526745,
"source-date-epoch": 1740734069,
"versions": [
"3.0.0",
"2.9.1",
Expand Down
1 change: 1 addition & 0 deletions providers/amazon/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ Dependent package
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
`apache-airflow-providers-common-sql <https://airflow.apache.org/docs/apache-airflow-providers-common-sql>`_ ``common.sql``
`apache-airflow-providers-exasol <https://airflow.apache.org/docs/apache-airflow-providers-exasol>`_ ``exasol``
`apache-airflow-providers-fab <https://airflow.apache.org/docs/apache-airflow-providers-fab>`_ ``fab``
`apache-airflow-providers-ftp <https://airflow.apache.org/docs/apache-airflow-providers-ftp>`_ ``ftp``
`apache-airflow-providers-google <https://airflow.apache.org/docs/apache-airflow-providers-google>`_ ``google``
`apache-airflow-providers-http <https://airflow.apache.org/docs/apache-airflow-providers-http>`_ ``http``
Expand Down
2 changes: 1 addition & 1 deletion providers/amazon/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).

state: ready
source-date-epoch: 1739958314
source-date-epoch: 1740734072
# note that those versions are maintained by release manager - do not update them manually
versions:
- 9.4.0
Expand Down
4 changes: 3 additions & 1 deletion providers/amazon/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"apache-airflow-providers-common-compat>=1.3.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Amazon",
"description": "Amazon integration (including `Amazon Web Services (AWS) <https://aws.amazon.com/>`__).\n",
"state": "ready",
"source-date-epoch": 1739958314,
"source-date-epoch": 1740734072,
"versions": [
"9.4.0",
"9.2.0",
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/beam/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Beam <https://beam.apache.org/>`__.

state: ready
source-date-epoch: 1739958460
source-date-epoch: 1740734074
# note that those versions are maintained by release manager - do not update them manually
versions:
- 6.0.2
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/beam/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
# Apache Beam > 2.53.0 and pyarrow > 14.0.1 fix https://nvd.nist.gov/vuln/detail/CVE-2023-47248.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Beam",
"description": "`Apache Beam <https://beam.apache.org/>`__.\n",
"state": "ready",
"source-date-epoch": 1739958460,
"source-date-epoch": 1740734074,
"versions": [
"6.0.2",
"6.0.0",
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/cassandra/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Cassandra <https://cassandra.apache.org/>`__.

state: ready
source-date-epoch: 1734527695
source-date-epoch: 1740734076
# note that those versions are maintained by release manager - do not update them manually
versions:
- 3.7.0
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/cassandra/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"cassandra-driver>=3.29.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Cassandra",
"description": "`Apache Cassandra <https://cassandra.apache.org/>`__.\n",
"state": "ready",
"source-date-epoch": 1734527695,
"source-date-epoch": 1740734076,
"versions": [
"3.7.0",
"3.6.0",
Expand Down
8 changes: 4 additions & 4 deletions providers/apache/drill/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,13 @@ Requirements

The minimum Apache Airflow version supported by this provider package is ``2.9.0``.

======================================= ==================
======================================= ===========================
PIP package Version required
======================================= ==================
======================================= ===========================
``apache-airflow`` ``>=2.9.0``
``apache-airflow-providers-common-sql`` ``>=1.20.0``
``sqlalchemy-drill`` ``>=1.1.0``
======================================= ==================
``sqlalchemy-drill`` ``>=1.1.0,!=1.1.6,!=1.1.7``
======================================= ===========================

Cross provider package dependencies
-----------------------------------
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/drill/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Drill <https://drill.apache.org/>`__.

state: ready
source-date-epoch: 1734527755
source-date-epoch: 1740734077
# note that those versions are maintained by release manager - do not update them manually
versions:
- 3.0.0
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/drill/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"apache-airflow-providers-common-sql>=1.20.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Drill",
"description": "`Apache Drill <https://drill.apache.org/>`__.\n",
"state": "ready",
"source-date-epoch": 1734527755,
"source-date-epoch": 1740734077,
"versions": [
"3.0.0",
"2.8.1",
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/druid/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Druid <https://druid.apache.org/>`__.

state: ready
source-date-epoch: 1734527841
source-date-epoch: 1740734079
# note that those versions are maintained by release manager - do not update them manually
versions:
- 4.0.0
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/druid/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"apache-airflow-providers-common-sql>=1.20.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Druid",
"description": "`Apache Druid <https://druid.apache.org/>`__.\n",
"state": "ready",
"source-date-epoch": 1734527841,
"source-date-epoch": 1740734079,
"versions": [
"4.0.0",
"3.12.1",
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/flink/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Flink <https://flink.apache.org/>`__

state: ready
source-date-epoch: 1734527925
source-date-epoch: 1740734081
# note that those versions are maintained by release manager - do not update them manually
versions:
- 1.6.0
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/flink/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"cryptography>=41.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Flink",
"description": "`Apache Flink <https://flink.apache.org/>`__\n",
"state": "ready",
"source-date-epoch": 1734527925,
"source-date-epoch": 1740734081,
"versions": [
"1.6.0",
"1.5.1",
Expand Down
9 changes: 4 additions & 5 deletions providers/apache/hdfs/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,11 @@ Requirements

The minimum Apache Airflow version supported by this provider package is ``2.9.0``.

================================= =========================================
================================= =====================================
PIP package Version required
================================= =========================================
================================= =====================================
``apache-airflow`` ``>=2.9.0``
``hdfs[avro,dataframe,kerberos]`` ``>=2.5.4; python_version < "3.12"``
``hdfs[avro,dataframe,kerberos]`` ``>=2.7.3; python_version >= "3.12"``
``pandas`` ``>=2.1.2,<2.2; python_version >= "3.9"``
``pandas`` ``>=1.5.3,<2.2; python_version < "3.9"``
================================= =========================================
``pandas`` ``>=2.1.2,<2.2``
================================= =====================================
2 changes: 1 addition & 1 deletion providers/apache/hdfs/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ description: |
and `WebHDFS <https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html>`__.

state: ready
source-date-epoch: 1734527971
source-date-epoch: 1740734082
# note that those versions are maintained by release manager - do not update them manually
versions:
- 4.7.0
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/hdfs/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
'hdfs[avro,dataframe,kerberos]>=2.5.4;python_version<"3.12"',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache HDFS",
"description": "`Hadoop Distributed File System (HDFS) <https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html>`__\nand `WebHDFS <https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html>`__.\n",
"state": "ready",
"source-date-epoch": 1734527971,
"source-date-epoch": 1740734082,
"versions": [
"4.7.0",
"4.6.0",
Expand Down
2 changes: 1 addition & 1 deletion providers/apache/hive/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ description: |
`Apache Hive <https://hive.apache.org/>`__

state: ready
source-date-epoch: 1739958611
source-date-epoch: 1740734084
# note that those versions are maintained by release manager - do not update them manually
versions:
- 9.0.2
Expand Down
4 changes: 3 additions & 1 deletion providers/apache/hive/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ classifiers = [
]
requires-python = "~=3.9"

# The dependencies should be modified in place in the generated file
# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
dependencies = [
"apache-airflow>=2.9.0",
"apache-airflow-providers-common-sql>=1.20.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_provider_info():
"name": "Apache Hive",
"description": "`Apache Hive <https://hive.apache.org/>`__\n",
"state": "ready",
"source-date-epoch": 1739958611,
"source-date-epoch": 1740734084,
"versions": [
"9.0.2",
"9.0.0",
Expand Down
Loading