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

AIP-66: Add support for parsing DAG bundles #45532

Merged
merged 18 commits into from
Jan 13, 2025

Conversation

jedcunningham
Copy link
Member

This is #45371, which had to be reverted.

Let's start parsing DAG bundles! This moves us away from parsing a
single local directory to being able to parse many different bundles,
including optional support for versioning.

This is just the basics - it keeps the parsing loop largely untouched.
We still have a single list of "dag files" to parse, and queue of them.
However, instead of just a path, this list and queue now contain
DagFilePaths, which hold both a local path and the bundle its from.

There are a number of things that are not fully functional at this
stage, like versioned callbacks. These will be refactored later. There
is enough churn with the basics (particularly with the number of test
changes).

Let's start parsing DAG bundles! This moves us away from parsing a
single local directory to being able to parse many different bundles,
including optional support for versioning.

This is just the basics - it keeps the parsing loop largely untouched.
We still have a single list of "dag files" to parse, and queue of them.
However, instead of just a path, this list and queue now contain
`DagFilePath`s, which hold both a local path and the bundle its from.

There are a number of things that are not fully functional at this
stage, like versioned callbacks. These will be refactored later. There
is enough churn with the basics (particularly with the number of test
changes).
@ephraimbuddy ephraimbuddy merged commit 96645b1 into apache:main Jan 13, 2025
822 of 871 checks passed
@ephraimbuddy ephraimbuddy deleted the bundle-parsing branch January 13, 2025 11:50
agupta01 pushed a commit to agupta01/airflow that referenced this pull request Jan 13, 2025
* AIP-66: Add support for parsing DAG bundles

Let's start parsing DAG bundles! This moves us away from parsing a
single local directory to being able to parse many different bundles,
including optional support for versioning.

This is just the basics - it keeps the parsing loop largely untouched.
We still have a single list of "dag files" to parse, and queue of them.
However, instead of just a path, this list and queue now contain
`DagFilePath`s, which hold both a local path and the bundle its from.

There are a number of things that are not fully functional at this
stage, like versioned callbacks. These will be refactored later. There
is enough churn with the basics (particularly with the number of test
changes).

* Get existing tests happy again!

* Fix AF2 compat tests

* Fix all but 1 FAB test

* Let manager manage the db session

* DagFilePath -> DagFileInfo

* Fix OL test

* fix tests after main rebase

* review feedback & some cleanup

* Update airflow/models/dag.py

Co-authored-by: Daniel Standish <[email protected]>

* Add some new tests that cover new bundled functionality

* docstring and better consistency in new tests

* Remove example_dags support from list_py_file_paths - it's now a bundle!

* Test a theory...

* less invasive fix

* Fix bug where bundles wouldnt be refreshed at least once during first loop

---------

Co-authored-by: Daniel Standish <[email protected]>
karenbraganz pushed a commit to karenbraganz/airflow that referenced this pull request Jan 13, 2025
* AIP-66: Add support for parsing DAG bundles

Let's start parsing DAG bundles! This moves us away from parsing a
single local directory to being able to parse many different bundles,
including optional support for versioning.

This is just the basics - it keeps the parsing loop largely untouched.
We still have a single list of "dag files" to parse, and queue of them.
However, instead of just a path, this list and queue now contain
`DagFilePath`s, which hold both a local path and the bundle its from.

There are a number of things that are not fully functional at this
stage, like versioned callbacks. These will be refactored later. There
is enough churn with the basics (particularly with the number of test
changes).

* Get existing tests happy again!

* Fix AF2 compat tests

* Fix all but 1 FAB test

* Let manager manage the db session

* DagFilePath -> DagFileInfo

* Fix OL test

* fix tests after main rebase

* review feedback & some cleanup

* Update airflow/models/dag.py

Co-authored-by: Daniel Standish <[email protected]>

* Add some new tests that cover new bundled functionality

* docstring and better consistency in new tests

* Remove example_dags support from list_py_file_paths - it's now a bundle!

* Test a theory...

* less invasive fix

* Fix bug where bundles wouldnt be refreshed at least once during first loop

---------

Co-authored-by: Daniel Standish <[email protected]>
HariGS-DB pushed a commit to HariGS-DB/airflow that referenced this pull request Jan 16, 2025
* AIP-66: Add support for parsing DAG bundles

Let's start parsing DAG bundles! This moves us away from parsing a
single local directory to being able to parse many different bundles,
including optional support for versioning.

This is just the basics - it keeps the parsing loop largely untouched.
We still have a single list of "dag files" to parse, and queue of them.
However, instead of just a path, this list and queue now contain
`DagFilePath`s, which hold both a local path and the bundle its from.

There are a number of things that are not fully functional at this
stage, like versioned callbacks. These will be refactored later. There
is enough churn with the basics (particularly with the number of test
changes).

* Get existing tests happy again!

* Fix AF2 compat tests

* Fix all but 1 FAB test

* Let manager manage the db session

* DagFilePath -> DagFileInfo

* Fix OL test

* fix tests after main rebase

* review feedback & some cleanup

* Update airflow/models/dag.py

Co-authored-by: Daniel Standish <[email protected]>

* Add some new tests that cover new bundled functionality

* docstring and better consistency in new tests

* Remove example_dags support from list_py_file_paths - it's now a bundle!

* Test a theory...

* less invasive fix

* Fix bug where bundles wouldnt be refreshed at least once during first loop

---------

Co-authored-by: Daniel Standish <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AIP-66: DAG Bundle/Manifest area:API Airflow's REST/HTTP API area:CLI area:providers area:Scheduler including HA (high availability) scheduler full tests needed We need to run full set of tests for this PR to merge provider:fab provider:openlineage AIP-53
Projects
Development

Successfully merging this pull request may close these issues.

4 participants