-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Add a new graph inside of the grid view #29413
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
Conversation
|
Looks great! I'm sure you've already thought of these use cases but just in case two things I'd be worried about with this style of straight lines is:
The current curve lines means even though it's messy the angle of lines means it's almost always possible to unambiguously follow them, e.g.: import datetime
from airflow.models import DAG
from airflow.operators.empty import EmptyOperator
with DAG(
dag_id="test",
schedule_interval="@once",
start_date=datetime.datetime(2000, 1, 1),
) as test:
upstream_tasks = [EmptyOperator(task_id=f"upstream_{i}") for i in range(4)]
downstream_tasks = [EmptyOperator(task_id=f"downstream_{i}") for i in range(4)]
for upstream_task in upstream_tasks:
upstream_task >> downstream_tasks
other_tasks = [EmptyOperator(task_id=f"other_{i}") for i in range(16)]
upstream_tasks[0] >> other_tasks |
This is super cool! |
|
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ |
Yeah I didn't want to kick of a design discussion in this PR and slow work down, I'm sure once this lands people will have lots of suggestions. I just wanted to check this didn't introduce regressions in being able to follow edges in complicated graphs, and from that perspective it seems good! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally and looks great! 🎉
I have a small warning complaining for width/height of parent container:

Also it looks like the webpack css loader is not working when being reloaded. (I mean hot realoding):
- start breeze in dev mode
tail -f .build/www/asset_compile_dev_mode.out- notice that asset compilation is successful
- update the code and observe asset rebuild, I have a css loading error on reactflow/dist/style.css. Let me know if you also experience this.
|
So looking forward to this. This looks great! |
|
this feature looks amazing! |
airflow/www/webpack.config.js
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This allows us to import the css file for react-flow inside of react
airflow/www/views.py
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We already have tests that cover task_group_to_dict() and dag_edges()
ashb
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(partial review only)
3a6ead0 to
995698c
Compare
pierrejeambrun
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice! 🎉
Co-authored-by: Jed Cunningham <66968678+jedcunningham@users.noreply.github.com>
|
Failing check is not because of this PR. Merging. |
|
(#protm) |




Embed the graph view inside of the grid view so a user can see history and dependencies at the same time.
Closes: #19939
Task Groups:

A complex DAG:

Dynamic task groups:

Edge labels:

Allows users to quickly clear a task group. Closes: #29380
The current graph is built off of dagre-d3 which has been deprecated for quite some time now. So in one way or another we had to update the graph.
Follow up PRs:
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rstor{issue_number}.significant.rst, in newsfragments.