+1
Similar view to Jed. I view this as adding a feature, rather than
breaking compatibility.


On Thu, Aug 4, 2022 at 3:20 PM Jed Cunningham <jedcunning...@apache.org>
wrote:

> +1. I view it as adding a feature vs breaking compatibility.
>
> On Thu, Aug 4, 2022 at 4:15 PM Ferruzzi, Dennis
> <ferru...@amazon.com.invalid> wrote:
>
>> I definitely like it, I love reducing boilerplate code like that.
>>
>>
>> ------------------------------
>> *From:* Ash Berlin-Taylor <a...@apache.org>
>> *Sent:* Tuesday, August 2, 2022 3:43 AM
>> *To:* dev@airflow.apache.org
>> *Subject:* [EXTERNAL] Auto-registering of DAGs in DAG file? (no `as dag`
>> needed?)
>>
>>
>> *CAUTION*: This email originated from outside of the organization. Do
>> not click links or open attachments unless you can confirm the sender and
>> know the content is safe.
>>
>> Hello all,
>>
>> I'm on a bit of a kick thinking about developer (specifically DAG author)
>> experience  and if there is anything we can
>>
>> Some time ago there was a previous conversation about if we should/could
>> "autoregister" DAGs, rather than just looking at the objects in the top
>> level (globals()) of a file, an I knocked up this PR
>>
>> https://github.com/apache/airflow/pull/23592
>>
>> The question I have for you all is do we think this is  good idea? It
>> does somewhat subtly change the behaviour in a few cases. Lets take this
>> example this from the docs
>> https://airflow.apache.org/docs/apache-airflow/stable/concepts/dags.html#loading-dags
>>
>> dag_1 = DAG('this_dag_will_be_discovered')
>> def my_function():
>>     dag_2 = DAG('but_this_dag_will_not')
>>
>>
>> my_function()
>>
>> As implemented right now the second dag won't get picked up (as the auto
>> registration is handled in the context manager, but if the example was
>> changed to use a context manager it will get loaded/discovered:
>>
>> with DAG('this_dag_will_be_discovered'):
>>
>>     EmptyOperator(task_id='task')
>>
>>
>> def my_function(): with DAG('so_will_this_dag_now'):
>>
>>         EmptyOperator(task_id='task')
>>
>>
>> my_function()
>>
>> With the change in my PR both DAGs would be picked up. Does that count
>> as a breaking change do you think? Is this behaviour more helpful to users,
>> or do we think it would be confusing?
>>
>> (If I get a few thumbs up I will update the docs in my PR to cover this
>> new behaviour.)
>>
>> -ash
>>
>>

Reply via email to