Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ingest/airflow): airflow plugin v2 #8853

Merged
merged 64 commits into from
Oct 4, 2023
Merged
Show file tree
Hide file tree
Changes from 60 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
d4437de
fix(airflow): fix provider loading exception
hsheth2 Sep 11, 2023
72378e1
start refactoring backend
hsheth2 Sep 12, 2023
66c20c8
start updating docs
hsheth2 Sep 19, 2023
b4545cc
update workflow
hsheth2 Sep 19, 2023
a1b43e6
Merge branch 'master' into airflow-plugin
hsheth2 Sep 22, 2023
7faeb4c
Merge branch 'master' into airflow-plugin
hsheth2 Sep 25, 2023
f875eeb
update docs
hsheth2 Sep 25, 2023
125e0d9
plugin v1 extra
hsheth2 Sep 25, 2023
0423ff3
update ci
hsheth2 Sep 25, 2023
e6dab06
update mypy + build
hsheth2 Sep 26, 2023
aa84b23
fix(ingest): bump typing-extensions
hsheth2 Sep 26, 2023
2ac887b
unify on emit method
hsheth2 Sep 26, 2023
c711a7e
add simple unit test
hsheth2 Sep 26, 2023
f73a380
start tests
hsheth2 Sep 26, 2023
048b6e9
loosen airflow req
hsheth2 Sep 26, 2023
9c8538b
start testing setup
hsheth2 Sep 26, 2023
1f8f7a7
add an emitter interface
hsheth2 Sep 26, 2023
8b0ef4c
sync file emitter
hsheth2 Sep 27, 2023
7119008
docs tweaks
hsheth2 Sep 27, 2023
3436095
most of test scaffolding
hsheth2 Sep 27, 2023
1b4f431
stuff
hsheth2 Sep 27, 2023
1ffa623
get basic plugin v1 test working
hsheth2 Sep 27, 2023
73e3acc
add another simple test
hsheth2 Sep 27, 2023
5c2ad60
set test ids
hsheth2 Sep 27, 2023
fe4e012
Merge branch 'master' into airflow-plugin
hsheth2 Sep 27, 2023
9fddd68
update tests more
hsheth2 Sep 27, 2023
09a0d17
snowflake test
hsheth2 Sep 27, 2023
ed55d67
update v2 goldens
hsheth2 Sep 27, 2023
6463500
fix mypy issues
hsheth2 Sep 27, 2023
c537166
update v1 tests
hsheth2 Sep 28, 2023
f4639cc
tweak tests
hsheth2 Sep 28, 2023
a36a036
fix _F
hsheth2 Sep 28, 2023
0952905
hack to inherit from module type
hsheth2 Sep 28, 2023
7878337
fix gradle
hsheth2 Sep 28, 2023
505f4ef
enable debug log in test
hsheth2 Sep 28, 2023
13a5e9d
list loaded plugins
hsheth2 Sep 28, 2023
d4b4161
attempt 1 at refactoring for airflow 2.3-2.4
hsheth2 Sep 28, 2023
28c99d6
make it a module for compat with <2.5
hsheth2 Sep 28, 2023
9b0e866
add tests for old plugin v2
hsheth2 Sep 28, 2023
dcc2fab
fix mypy for 2.1.4
hsheth2 Sep 28, 2023
27391ff
update test golden
hsheth2 Sep 28, 2023
77c1133
fix build and test workflow
hsheth2 Sep 28, 2023
18370cd
handle subprocess kill timeout
hsheth2 Sep 28, 2023
19a36ce
setup tox tests
hsheth2 Sep 28, 2023
83a2621
fix env list for tox
hsheth2 Sep 28, 2023
7036c43
slightly more robust tests
hsheth2 Sep 28, 2023
817c73e
logging improvements
hsheth2 Sep 28, 2023
0b04b30
refactor get_platform_from_sqlalchemy_uri into dedicated file
hsheth2 Sep 29, 2023
f787800
close schema resolver
hsheth2 Sep 29, 2023
1e8dafc
add support for arbitrary operators
hsheth2 Sep 29, 2023
9efb96d
update tests
hsheth2 Sep 29, 2023
4815c1a
update desc generation
hsheth2 Sep 29, 2023
215b5a1
fix sqlglot create table lineage
hsheth2 Sep 29, 2023
841c22e
convert downstream set to list
hsheth2 Sep 29, 2023
e558cf1
update more goldens
hsheth2 Sep 29, 2023
8c98aad
one more
hsheth2 Sep 29, 2023
6db6a34
fix issue with mcp ordering / dedup in test code
hsheth2 Sep 30, 2023
50e1130
start fixing more tests
hsheth2 Sep 30, 2023
e27729a
update v2 tests
hsheth2 Oct 1, 2023
15f5122
update v2.4 tests
hsheth2 Oct 1, 2023
5e2405b
review
hsheth2 Oct 4, 2023
3b49da8
finishing touches
hsheth2 Oct 4, 2023
d61e5e9
update example + deps
hsheth2 Oct 4, 2023
bcdb3e6
Merge branch 'master' into airflow-plugin
hsheth2 Oct 4, 2023
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: 15 additions & 10 deletions .github/workflows/airflow-plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,21 @@ jobs:
strategy:
matrix:
include:
- python-version: "3.7"
extraPythonRequirement: "apache-airflow~=2.1.0"
- python-version: "3.7"
extraPythonRequirement: "apache-airflow~=2.2.0"
- python-version: "3.8"
extra_pip_requirements: "apache-airflow~=2.1.4"
extra_pip_extras: plugin-v1
- python-version: "3.8"
extra_pip_requirements: "apache-airflow~=2.2.4"
extra_pip_extras: plugin-v1
- python-version: "3.10"
extraPythonRequirement: "apache-airflow~=2.4.0"
extra_pip_requirements: "apache-airflow~=2.4.0"
extra_pip_extras: plugin-v2
- python-version: "3.10"
extraPythonRequirement: "apache-airflow~=2.6.0"
extra_pip_requirements: "apache-airflow~=2.6.0"
extra_pip_extras: plugin-v2
- python-version: "3.10"
extraPythonRequirement: "apache-airflow>2.6.0"
extra_pip_requirements: "apache-airflow>=2.7.0"
extra_pip_extras: plugin-v2
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand All @@ -51,13 +56,13 @@ jobs:
cache: "pip"
- name: Install dependencies
run: ./metadata-ingestion/scripts/install_deps.sh
- name: Install airflow package and test (extras ${{ matrix.extraPythonRequirement }})
run: ./gradlew -Pextra_pip_requirements='${{ matrix.extraPythonRequirement }}' :metadata-ingestion-modules:airflow-plugin:lint :metadata-ingestion-modules:airflow-plugin:testQuick
- name: Install airflow package and test (extras ${{ matrix.extra_pip_requirements }})
run: ./gradlew -Pextra_pip_requirements='${{ matrix.extra_pip_requirements }}' -Pextra_pip_extras='${{ matrix.extra_pip_extras }}' :metadata-ingestion-modules:airflow-plugin:lint :metadata-ingestion-modules:airflow-plugin:testQuick
- name: pip freeze show list installed
if: always()
run: source metadata-ingestion-modules/airflow-plugin/venv/bin/activate && pip freeze
- uses: actions/upload-artifact@v3
if: ${{ always() && matrix.python-version == '3.10' && matrix.extraPythonRequirement == 'apache-airflow>2.6.0' }}
if: ${{ always() && matrix.python-version == '3.10' && matrix.extra_pip_requirements == 'apache-airflow>=2.7.0' }}
with:
name: Test Results (Airflow Plugin ${{ matrix.python-version}})
path: |
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ jobs:
matrix:
command:
[
"./gradlew build -x :metadata-ingestion:build -x :metadata-ingestion:check -x docs-website:build -x :metadata-integration:java:spark-lineage:test -x :metadata-io:test -x :metadata-ingestion-modules:airflow-plugin:build -x :datahub-frontend:build -x :datahub-web-react:build --parallel",
# metadata-ingestion and airflow-plugin each have dedicated build jobs
"./gradlew build -x :metadata-ingestion:build -x :metadata-ingestion:check -x docs-website:build -x :metadata-integration:java:spark-lineage:test -x :metadata-io:test -x :metadata-ingestion-modules:airflow-plugin:build -x :metadata-ingestion-modules:airflow-plugin:check -x :datahub-frontend:build -x :datahub-web-react:build --parallel",
"./gradlew :datahub-frontend:build :datahub-web-react:build --parallel",
"./gradlew :metadata-ingestion-modules:airflow-plugin:build --parallel"
]
timezone:
[
Expand All @@ -51,7 +51,8 @@ jobs:
java-version: 11
- uses: actions/setup-python@v4
with:
python-version: "3.7"
python-version: "3.10"
cache: pip
- name: Gradle build (and test)
run: |
${{ matrix.command }}
Expand Down Expand Up @@ -81,7 +82,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.7"
python-version: "3.10"
- name: Download YQ
uses: chrisdickinson/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion docker/airflow/local_airflow.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
:::caution

This feature is currently unmaintained. As of 0.10.0 the container described is not published alongside the DataHub CLI. If you'd like to use it, please reach out to us on the [community slack.](docs/slack.md)
This guide is currently unmaintained. As of 0.10.0 the container described is not published alongside the DataHub CLI. If you'd like to use it, please reach out to us on the [community slack.](docs/slack.md)

:::

Expand Down
1 change: 1 addition & 0 deletions docs/how/updating-datahub.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ This file documents any backwards-incompatible changes in DataHub and assists pe

### Breaking Changes
- #8810 - Removed support for SQLAlchemy 1.3.x. Only SQLAlchemy 1.4.x is supported now.
- #8853 - The Airflow plugin no longer supports Airflow 2.0.x or Python 3.7. See the docs for more details.

### Potential Downtime

Expand Down
Loading
Loading