Skip to content

Commit 6e1c81d

Browse files
committed
chore: Update documentation to clarify supported airflow/dbt versions
1 parent 6a0a9a5 commit 6e1c81d

4 files changed

Lines changed: 49 additions & 38 deletions

File tree

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[![Test coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/tomasfarias/81ef37701aa088d18db8a58ce07c79c7/raw/covbadge.json)](https://github.com/tomasfarias/airflow-dbt-python/actions)
77
[![Documentation](https://readthedocs.org/projects/airflow-dbt-python/badge/?version=latest)](https://airflow-dbt-python.readthedocs.io/en/latest/?badge=latest)
88

9-
A collection of [Airflow](https://airflow.apache.org/) operators, hooks, and utilities to execute [`dbt`](https://pypi.org/project/dbt-core/) commands.
9+
A collection of [*Airflow*](https://airflow.apache.org/) operators, hooks, and utilities to execute [*dbt*](https://pypi.org/project/dbt-core/) commands.
1010

1111
Read the [documentation](https://airflow-dbt-python.readthedocs.io) for examples, installation instructions, and more details.
1212

@@ -16,20 +16,20 @@ Read the [documentation](https://airflow-dbt-python.readthedocs.io) for examples
1616

1717
Before using *airflow-dbt-python*, ensure you meet the following requirements:
1818
* A *dbt* project using [dbt-core](https://pypi.org/project/dbt-core/) version 1.8 or later.
19-
* An Airflow environment using version 2.8 or later.
19+
* An *Airflow* deployment using version 3.0 or later.
2020

21-
* If using any managed service, like AWS MWAA or GCP Cloud Composer 2/3, ensure your environment is created with a supported version of Airflow.
22-
* If self-hosting, Airflow installation instructions can be found in their [official documentation](https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html).
21+
* If using any managed *Airflow* service, like [AWS MWAA](https://aws.amazon.com/managed-workflows-for-apache-airflow/) or [GCP Cloud Composer](https://cloud.google.com/composer), ensure your environment is created with a supported version of *Airflow*.
22+
* If self-hosting, *Airflow* installation instructions can be found in their [official documentation](https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html).
2323

24-
* Running Python 3.9 or later in your Airflow environment.
24+
* Python 3.10 or later.
2525

2626
> **Warning**
2727
>
28-
> Even though we don't impose any upper limits on versions of Airflow and *dbt*, it's possible that new versions are not supported immediately after release, particularly for *dbt*. We recommend testing the latest versions before upgrading and [reporting any issues](https://github.com/tomasfarias/airflow-dbt-python/issues/new/choose).
28+
> New versions of *Airflow* and *dbt* may introduce breaking changes. We recommend testing any new versions of *Airflow* and *dbt* before upgrading production systems; Please [report any issues](https://github.com/tomasfarias/airflow-dbt-python/issues/new/choose) that may arise during testing so they can be addressed.
2929
3030
> **Note**
3131
>
32-
> Older versions of Airflow and *dbt* may work with *airflow-dbt-python*, although we cannot guarantee this. Our testing pipeline runs the latest *dbt-core* with the latest Airflow release, and the latest version supported by [AWS MWAA](https://aws.amazon.com/managed-workflows-for-apache-airflow/) and [GCP Cloud Composer 2/3](https://aws.amazon.com/managed-workflows-for-apache-airflow/).
32+
> We only test *airflow-dbt-python* against a limited set of versions of *Airflow* and *dbt*, and try to keep up with the latest releases. For *Airflow*, our policy is to cover with tests the latest release of *Airflow*, the latest version available in [GCP Cloud Composer](https://docs.cloud.google.com/composer/docs/composer-versions), and the latest version available in [AWS MWAA](https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions). For *dbt*, our policy is to cover the last two minor versions.
3333
3434
## From PyPI
3535

@@ -45,7 +45,7 @@ As a convenience, some *dbt* adapters can be installed by specifying extras. For
4545
pip install airflow-dbt-python[redshift]
4646
```
4747

48-
## From this repo
48+
## Building from source
4949

5050
*airflow-dbt-python* can also be built from source by cloning this GitHub repository:
5151

@@ -54,10 +54,10 @@ git clone https://github.com/tomasfarias/airflow-dbt-python.git
5454
cd airflow-dbt-python
5555
```
5656

57-
And installing with *uv*:
57+
And build with *uv*:
5858

5959
``` shell
60-
uv pip install .
60+
uv build
6161
```
6262

6363
## In AWS MWAA
@@ -70,7 +70,7 @@ Read the [documentation](https://airflow-dbt-python.readthedocs.io/en/latest/get
7070

7171
Add *airflow-dbt-python* to your PyPI packages list.
7272

73-
Read the [documentation](https://cloud.google.com/composer/docs/composer-2/install-python-dependencies#install-pypi) for more a more detailed GCP Cloud Composer 2 installation breakdown.
73+
Refer to the [GCP Cloud Composer documentation](https://cloud.google.com/composer/docs/composer-3/install-python-dependencies#install-pypi) on how to do this.
7474

7575
## In other managed services
7676

docs/development.rst

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,18 @@ The additional extras install dependencies required for testing. If testing a sp
4141
Support for different versions of *Airflow*
4242
-------------------------------------------
4343

44-
*airflow-dbt-python* supports and is tested with multiple versions of Airflow; as a general rule, besides the latest version of Airflow, we test *airflow-dbt-python* against the latest version available in `AWS MWAA <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_, which usually lags behind a few minor versions. We are open to patches to improve backwards compatibility as long as they don't increase maintenance load significantly.
44+
*airflow-dbt-python* is tested against against multiple versions of *Airflow*; as a general rule, besides the latest version of Airflow, we test *airflow-dbt-python* against the latest version available in `AWS MWAA <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_, which usually lags behind a few minor versions.
4545

46-
If you wish to install a different version of Airflow for testing you may skip the *airflow-providers* extras of the previous section and use *pip* instead to install any versions of *apache-airflow* and required providers.
46+
We are open to patches to improve backwards compatibility as long as they don't increase maintenance load significantly.
47+
48+
If you wish to install a different version of *Airflow* for testing you may skip the *airflow-providers* extras of the previous section and use *pip* instead to install any versions of *apache-airflow* and required providers.
4749

4850
Modifying dependencies
4951
----------------------
5052

51-
Apache Airflow is a package of significant size that requires a lot of dependencies. Together with *dbt-core*, it's common to find dependency conflicts all over the place. Ultimately, we allow users to figure these issues out themselves, as most of the dependency conflicts are harmless: We do not interact with the *dbt* CLI, so any conflicts with CLI-specific packages can be safely ignored, but these requirements are not optional for *dbt-core*.
53+
*Apache Airflow* is a package of significant size that requires a lot of dependencies. Together with *dbt-core*, it's common to find dependency conflicts all over the place. Ultimately, we allow users to figure these issues out themselves, as most of the dependency conflicts are harmless: We do not interact with the *dbt* CLI, so any conflicts with CLI-specific packages can be safely ignored, but these requirements are not optional for *dbt-core*.
5254

53-
All being said, this presents a problem when we try to add dependencies or modify existing ones. Grabbing a constraints file from `Airflow <https://github.com/apache/airflow>`_ and adding it as an optional group in ``pyproject.toml`` can be a useful strategy.
55+
All being said, this presents a problem when we try to add dependencies or modify existing ones. Grabbing a constraints file from `*Airflow* <https://github.com/apache/airflow>`_ and adding it as an optional group in ``pyproject.toml`` can be a useful strategy.
5456

5557
Pre-commit hooks
5658
----------------
@@ -86,12 +88,12 @@ Tests are available for all operators, hooks, and utilities. That being said, on
8688
.. note::
8789
Unit tests (and *airflow-dbt-python*) assume *dbt* works correctly and do not assert the behavior of the *dbt* commands in depth.
8890

89-
Testing specific requirements
90-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
91+
Requirements
92+
^^^^^^^^^^^^
9193

9294
Unit tests interact with a `PostgreSQL <https://www.postgresql.org/>`_ database as a target to run dbt commands. This requires *PostgreSQL* to be installed in your local environment. Installation instructions for all major platforms can be found `here <https://www.postgresql.org/download/>`_.
9395

94-
An Airflow database needs to be initialized in your local environment. This requires choosing a location for it, via the ``AIRFLOW_HOME`` environment variable. The same directory where *airflow-dbt-python* was cloned to can be used for this:
96+
An *Airflow* database needs to be initialized in your local environment. This requires choosing a location for it, via the ``AIRFLOW_HOME`` environment variable. The same directory where *airflow-dbt-python* was cloned to can be used for this:
9597

9698
.. code-block:: shell
9799

docs/example_dags.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Example DAGs
44
This section contains a few DAGs showing off some dbt pipelines to get you going.
55

66
.. warning::
7-
All example DAGs are tested against against ``apache-airflow==2.2.5``. Some changes, like modifying ``import`` statements or changing types, may be required for them to work in environments running other versions of Airflow.
7+
All example DAGs are tested against a subset of *Airflow* versions. Some changes, like modifying ``import`` statements or changing types, may be required for them to work in environments running other versions of *Airflow*.
88

99
Basic DAG
1010
^^^^^^^^^

docs/getting_started.rst

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@ Requirements
1010

1111
Before using *airflow-dbt-python*, ensure you meet the following requirements:
1212
* A *dbt* project using `dbt-core <https://pypi.org/project/dbt-core/>`_ version 1.8 or later.
13-
* An Airflow environment using version 2.8 or later.
13+
* An *Airflow* environment using version 3.0 or later.
1414

15-
* If using any managed service, like AWS MWAA or GCP Cloud Composer 2/3, ensure your environment is created with a supported version of Airflow.
16-
* If self-hosting, Airflow installation instructions can be found in their `official documentation <https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html>`_.
15+
* If using any managed *Airflow* service, like `AWS MWAA <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_ or `GCP Cloud Composer <https://cloud.google.com/composer>`_, ensure your environment is created with a supported version of *Airflow*.
16+
* If self-hosting, *Airflow* installation instructions can be found in their `official documentation <https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html>`_.
1717

18-
* Running Python 3.9 or later in your Airflow environment.
18+
* Python 3.10 or later.
1919

2020
.. warning::
21-
Even though we don't impose any upper limits on versions of Airflow and *dbt*, it's possible that new versions are not supported immediately after release, particularly for *dbt*. We recommend testing the latest versions before upgrading and `reporting any issues <https://github.com/tomasfarias/airflow-dbt-python/issues/new/choose>`_.
21+
New versions of *Airflow* and *dbt* may introduce breaking changes. We recommend testing any new versions of *Airflow* and *dbt* before upgrading production systems; Please `report any issues <https://github.com/tomasfarias/airflow-dbt-python/issues/new/choose>`_ that may arise during testing so they can be addressed.
2222

2323
.. note::
24-
Older versions of Airflow and *dbt* may work with *airflow-dbt-python*, although we cannot guarantee this. Our testing pipeline runs the latest *dbt-core* with the latest Airflow release, and the latest version supported by `AWS MWAA <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_ and `GCP Cloud Composer 2/3 <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_.
24+
We only test *airflow-dbt-python* against a limited set of versions of *Airflow* and *dbt*, and try to keep up with the latest releases. For *Airflow*, our policy is to cover with tests the latest release of *Airflow*, the latest version available in `GCP Cloud Composer <https://docs.cloud.google.com/composer/docs/composer-versions>`_, and the latest version available in `AWS MWAA <https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions>`_. For *dbt*, our policy is to cover the last two minor versions.
2525

2626
Installation
2727
------------
2828

29-
Your installation will vary according to your specific Airflow environment setup. These instructions cover a general approach by installing from PyPI or the GitHub repository, and how to install it in AWS MWAA. Other serviced offerings may require different steps, check the documentation of your managed service.
29+
Your installation will vary according to your specific Airflow environment setup. These instructions cover installing from PyPI, building the GitHub repository directly, installing in AWS MWAA, and installing in GCP Cloud Composer. Other serviced offerings may require different steps, check the documentation of your managed service.
3030

3131
From PyPI
3232
^^^^^^^^^
@@ -62,24 +62,18 @@ Building from source
6262
git clone https://github.com/tomasfarias/airflow-dbt-python.git
6363
cd airflow-dbt-python
6464
65-
And installing with *pip*:
65+
And build with *uv*:
6666

6767
.. code-block:: shell
6868
69-
pip install .
69+
uv build
7070
71-
Optionally, any *dbt* adapters can be installed by specifying extras:
71+
In AWS MWAA
72+
^^^^^^^^^^^
7273

73-
.. code-block:: shell
74-
75-
pip install .[postgres, redshift, bigquery, snowflake]
76-
77-
Installing in MWAA
78-
^^^^^^^^^^^^^^^^^^
74+
Add *airflow-dbt-python* to your ``requirements.txt`` file and edit your *Airflow* environment to use this new ``requirements.txt`` file, or upload it as a plugin.
7975

80-
*airflow-dbt-python* can be installed in an Airflow environment managed by AWS via their `Managed Workflows for Apache Airflow <https://aws.amazon.com/managed-workflows-for-apache-airflow/>`_ service.
81-
82-
To do so, include *airflow-dbt-python* in the *requirements.txt* file provided to MWAA, for example:
76+
To do so, include *airflow-dbt-python* in the ``requirements.txt`` file provided to AWS MWAA, for example:
8377

8478
.. code-block:: shell
8579
:caption: requirements.txt
@@ -110,6 +104,21 @@ The wheel file can now be added to your *plugins.zip*, and the requirements can
110104
111105
/usr/local/airflow/plugins/airflow_dbt_python-X.Y.Z-py3-none-any.whl
112106
107+
In GCP Cloud Composer
108+
^^^^^^^^^^^^^^^^^^^^^
109+
110+
Add *airflow-dbt-python* to your PyPI packages list.
111+
112+
Refer to the `GCP Cloud Composer documentation <https://cloud.google.com/composer/docs/composer-3/install-python-dependencies#install-pypi>`_ on how to do this.
113+
114+
In other managed services
115+
^^^^^^^^^^^^^^^^^^^^^^^^^
116+
117+
*airflow-dbt-python* should be compatible with most or all *Airflow* managed services. Consult the documentation specific to your provider.
118+
119+
If you notice an issue when installing *airflow-dbt-python* in a specific managed service, please open an `issue <https://github.com/tomasfarias/airflow-dbt-python/issues/new/choose>`_.
120+
121+
113122
Accessing a *dbt* project
114123
-------------------------
115124

0 commit comments

Comments
 (0)