Happy to see the engagement on this one. Thanks to everyone for thinking it through and contributing their thoughts.
re niko > - Context managers: > I found most of the context manager syntax proposals a little hard to > understand, but some better than others. Ultimately if I put my DAG author > hat on, I find this declaration the most straightforward, clear and it's > easy to update existing code: chain(create_notification_channel.as_setup(), > ... other tasks ... > delete_notification_channel.teardown_for(create_notification_channel),...) +1 yeah i like this approach and, exactly -- it's the simplest syntax for updating existing code to use the feature and requires essentially no change in dag structure. re short circuit 1. it is a classic 80s movie 2. yeah no objections let's make short circuit not skip teardowns, it seems like a reasonable default... that said were someone down the line to create a PR with an option that let's you do it, in a manner that is very clear about the consequences, or maybe instead a distinct ShortCircuitNuclearOperator, it would not bother me. and if either of those were to be rejected, it would not be hard to implement such for your own project, or achieve same effect through other means.