Thanks Kamil for putting the document together. I wasn't able to respond
earlier since I was giving Airflow workshops throughout Europe :-)

*Case 1: *Solution A → Remove everything from contrib into a single
package.

To make it easier to the end-user, my preference would be to get rid of the
contrib package altogether. What's in contrib or not is a tricky question,
I think this is already reflected in the document since "maturity" is in
quotes. What would be the moment to transfer the operator to the core or
vice versa? I'm afraid that renaming contrib to incubating will confuse the
user even more. For people who aren't as known with Airflow it isn't that
transparent which operator lives where, especially if you don't use an IDE
such as Ash ;) Besides that I don't think it is worth changing the public
API just for a different name.

*Case 2:* Slight preference to Solution B (let's say a +0)

I like to search on Github with t, and then search for BashOperator. After
the change, you should search for Operator/Bash.

Jarek, I'm confused with your vote on this, from your mail you state: -
*Case 2: B: Airflow.operators.foo_operator.FooOperator could become
airflow.operators.foo.FooOperator*. But the B solution is keeping it the
same, so that would mean - *Case 2: B:
Airflow.operators.foo_operator.FooOperator *would stay
airflow.operators.foo_operator*.FooOperator*

*Case 3:* I'm leaning towards B

Mostly because it isn't as trivial to decide when it gets its own package
or not. Besides the cloud providers, there are companies like Databricks
and Qubole which might also end up with their own package because their
integration is getting richer over time. Moving this is a bit painful
because we need to deprecate the old path and move everything which
introduces noise into version control etc.

*C**ase 4: *B: No namespace introduction

*Case 5: *B: Keep "Operator" (and "Sensor") suffixes on class names

For the import is might look redundant, but for the UI I like to have it
explicit. Also when you have Python code itself, I prefer DummyOperator( ..
) instead of Dummy( .. ). Let's quote the Python zen here: Explicit is
better than implicit.

*Case 6: *+1 Consistency is king.

*Case 7:* Python native solution

Jarek, what's your vote on this?

---

Apart from all, great work!

Cheers, Fokko


Op di 23 jul. 2019 om 21:27 schreef Felix Uellendall <felue...@pm.me.invalid
>:

> I have no strong "No" against any proposed change of these cases. So I go
> with +1 (non-binding).
>
> P.S. Thanks Jarek for bringing this up again and your intense work towards
> airflow currently :) and thanks to Kamil for even creating this document. I
> like how the code is getting more and more consistent and clean :)
>
> Kind regards,
> Felix
>
> Sent from ProtonMail mobile
>
> -------- Original Message --------
> On Jul 23, 2019, 18:34, Jarek Potiuk wrote:
>
> > Hello everyone,
> >
> > This email is calling a vote on the changes in import paths. It's been
> > discussed in
> >
> https://lists.apache.org/thread.html/4e648d9421c792d4537f5ac66f1a16dce468f816fc5221a9f9db9433@%3Cdev.airflow.apache.org%3E
> >
> > The vote will last for at least 1 week (July 30th 6pm CEST), and at least
> > three +1 (binding) votes have been cast.
> >
> > The proposal to vote is based on the document from Kamil
> > <
> https://docs.google.com/document/d/1F8zve5S78DXcjpPttW89HnqT0M0iKjT6fo9jX57Ef6A/edit#
> >
> >
> > The proposed solution is:
> >
> > - *Case 1: B: Contrib vs not: we move all that are "well" tested and
> > rename contrib to "incubating" or similar.*
> > - *Case 2: B: Airflow.operators.foo_operator.FooOperator could
> > become airflow.operators.foo.FooOperator*
> > - *Case 3: C:
> > airflow.contrib.operators.gcp_bigtable_operator.BigTableOperator could
> > become airflow.gcp.operators.bigtable.BigTableOperator*
> > - *Case 4: B: no namespace introduction*
> > - *Case 5: B: Keep "Operator" (and "Sensor") suffixes on class names*
> > - *Case 6: We will treat isolated cases on case-by-case (and my team can
> > do the job of GCP-related operators)*
> >
> > This is my (binding) +1 vote.
> >
> > Best regards,
> >
> > J.
> >
> > --
> >
> > Jarek Potiuk
> > Polidea <https://www.polidea.com/> | Principal Software Engineer
> >
> > M: [+48 660 796 129](tel:+48660796129) <[+48660796129](tel:+48660796129)>
> > [image: Polidea] <https://www.polidea.com/>

Reply via email to