+1(not binding)

On Wed, Jun 17, 2020 at 3:03 AM Gerard Casas Saez
<gcasass...@twitter.com.invalid> wrote:

> Hi everyone,
>
> Sending an email here to consolidate an update to the AIP-31 that has
> happened while we have been implementing this.
>
> When AIP-31 was proposed, the proposal mentioned that all operators would
> have a __call__ method which would be used to define DAG in a functional
> manner. While implementing this with the SIG Functional Ops team, we
> decided to change that requirement and replace it with a better integration
> with templated_fields and a new property in BaseOperator called output. The
> idea is that (see AIP DAG example for variable reference) get_ip() ==
> get_ip.output.
>
> I updated the AIP-31 doc to reflect those changes. Also took the chance to
> clean the doc a bit to reword some smaller stuff, in order to make it
> easier for consumption by people outside of this group in the future.
>         Update diff:
> https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=148638736&selectedPageVersions=12&selectedPageVersions=11
>         Updated AIP-31:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=148638736
>
> Regarding the output property change, you can follow this discussion in
> the current Airflow PR between me and Ash, to understand better the
> motivations behind it:
> https://github.com/apache/airflow/pull/8962/files#r441004317.
>
> A short summary:
>         The main reason for this change was that sometimes templated args
> in operators are required on initialization
> (example: subject on EmailOperator). This meant that you needed to add a
> placeholder value on initialization, and then specify the XComArg that
> needed to be used instead in the __call__ method. This seemed a bit
> confusing, so when implementing we decided to rollback
> the __call__ addition to BaseOperator.
>
>         This made it difficult to get XComArg from an operator as the
> initializer returns an instance of the operator instead of
> an XComArg compared to the proposed __call__ method. For that, we proposed
> to add a new property output to BaseOperator that would generate an XComArg
> for the operator with return_value as the default key.
>
> An example of how different the DAG looks between the previous AIP and the
> new update can be found here:
> https://github.com/apache/airflow/pull/8962/files#r441013469
>
> With that said, I will follow Ash recommendation and try to get a lazy
> consensus on this change:
>         Allow 48h for committers and developers to comment/bring up
> objections on the change.
>
> If no objection is raised by Thursday June 18th at 1PM MST, we will move
> forward with the change  and merge
> https://github.com/apache/airflow/pull/8962 PR.
>
> Thanks everyone for all the work on this change! 🎉
>
> Gerard Casas Saez
> Twitter | Cortex | @casassaez
>

Reply via email to