uranusjr commented on a change in pull request #17927: URL: https://github.com/apache/airflow/pull/17927#discussion_r723764445
########## File path: docs/apache-airflow/concepts/tasks.rst ########## @@ -36,16 +36,30 @@ Relationships The key part of using Tasks is defining how they relate to each other - their *dependencies*, or as we say in Airflow, their *upstream* and *downstream* tasks. You declare your Tasks first, and then you declare their dependencies second. -There are two ways of declaring dependencies - using the ``>>`` and ``<<`` (bitshift) operators:: +There are three ways of declaring dependencies: + +Option 1: using the ``>>`` and ``<<`` (bitshift) operators:: first_task >> second_task >> [third_task, fourth_task] -Or the more explicit ``set_upstream`` and ``set_downstream`` methods:: +Option 2: The more explicit ``set_upstream`` and ``set_downstream`` methods:: first_task.set_downstream(second_task) third_task.set_upstream(second_task) -These both do exactly the same thing, but in general we recommend you use the bitshift operators, as they are easier to read in most cases. +Option 3: The @task decorator provided by TaskFlow API, see :ref:`TaskFlow <concepts:taskflow>`:: + + @task + def second_task(some_parameter): + ... + @task + def first_task(): + ... Review comment: ```suggestion @task def second_task(some_parameter): ... @task def first_task(): ... ``` (I hope the linter won't complain this needs two empty lines.) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org