I agree with Ash and instead of voting on all 7 Cases together, how about
separate vote emails for all the cases? Each email can have the description
copied over from the doc.

It would probably be a bit easier to track a decision in the future as well.

What do you guys think? @Jarek Potiuk <jarek.pot...@polidea.com>  @Driesprong,
Fokko <fo...@driesprong.frl>

On Sat, Jul 27, 2019 at 1:03 AM Kaxil Naik <kaxiln...@gmail.com> wrote:

> *Case #1* airflow.contrib.{resources} : *Solution A *
>
> *Case #2* git *_{operator/sensor}{/s}.py : *Solution A *
>
> *Case #3* {aws/azure/gcp}_* : *Solution C*
>
> *Case #4* Separate namespace for resources :
> *Solution A*
>
> *Case #5* *Operator : *Solution A*
>
> *Case #7* : *Solution A*
>
> On Fri, Jul 26, 2019 at 11:09 PM Daniel Standish <dpstand...@gmail.com>
> wrote:
>
>> I have tried to add some clarification to Jarek's summary, but I am a
>> little fuzzy on exact proposal for case 3 so hopefully Jarek can further
>> clarify.
>>
>> According to my reading, in this motion cases 4,5,6 are all either
>> proposal
>> *rejections* or otherwise have no effect, so attention can be focused on
>> cases 1,2,3 and 7.
>>
>> *Motion is to adopt the following:*
>>
>> Case 1 - Solution A - Get rid of contrib
>> All objects will be moved out of contrib folder and into respective
>> non-contrib folder.
>>
>> Case 2 - Solution A - Remove object type suffix from modules
>> Example:
>> Airflow.operators.foo_operator.FooOperator becomes
>> airflow.operators.foo.FooOperator
>> Example:
>> Airflow.hooks.foo_hook.FooOperator becomes airflow.hooks.foo.FooHook
>>
>> Case 3 - conventions for cloud provider etc prefixes
>> *I am not sure exactly what the proposal is.*
>> Example case is airflow/contrib/operators/gcp_bigtable_operator.py
>> Since motion adopts case 1 solution A, we can assume it is now named like
>> so: airflow/operators/gcp_bigtable_operator.py
>> So what is proposed for this case?
>>
>> Case 4 - Solution B - *no change*
>> This proposal was about namespaces but the motion is to reject the
>> proposal.
>>
>> Case 5 - Solution B - *no change*
>> The proposal was to remove class type suffix e.g. remove the Operator in
>> FooOperator, but the motion is to reject this proposal -- i.e. motion is
>> no
>> change on this case, i.e. we resolve to keep "Operator" (and "Sensor")
>> suffixes on class names
>>
>> Case 6 - *No change*
>> This case concerns object naming inconsistencies, but motion does not
>> enact
>> any specific proposal.
>>
>> Case 7 - Solution A - use warnings.warn template for deprecation warnings
>> (instead of zope)
>> Example:
>>
>> # in old_package/old_mod.py
>>
>> import warnings
>> from new_package.new_mod import *
>> warnings.warn("old_package.old_mod has moved to new_package.new_mod.
>> Import
>> of "
>> "old_package.old_mod will become unsupported in version 2",
>> DeprecationWarning, 2)
>>
>> Reference implementation here:
>>
>> https://github.com/mik-laj/airflow-deprecation-sample/tree/master/solution1
>>
>>
>> FWIW +1 (non-binding) on 1,2,7 -- unsure on 3.
>>
>> I am very happy that this motion now gets rid of contrib.  Thank you
>> Sergio
>> for turning the tide with your effective argumentation ;)
>>
>>
>>
>>
>>
>> On Fri, Jul 26, 2019 at 3:16 AM Ash Berlin-Taylor <a...@apache.org> wrote:
>>
>> > Could someone summarise what the proposed name changes are, here, in
>> this
>> > thread? Pointing at a google doc and only giving partial examples is 1)
>> a
>> > bit difficult to quickly work out what we are voting on, and 2) using a
>> > google doc isn't great for a longer term record.
>> >
>> > Thanks,
>> > Ash
>> >
>> > > On 26 Jul 2019, at 09:14, Jarek Potiuk <jarek.pot...@polidea.com>
>> wrote:
>> > >
>> > > I would like to recast the vote. Let's start from 0 :) . I would like
>> to
>> > > keep the July 30th 6pm CEST date, and at least three +1 (binding)
>> votes
>> > are
>> > > needed to pass. I marked in red the modifications to the previous
>> > proposal.
>> > >
>> > > Here is the proposal (details here
>> > > <
>> >
>> https://docs.google.com/document/d/1F8zve5S78DXcjpPttW89HnqT0M0iKjT6fo9jX57Ef6A/edit#heading=h.j4jc3i70qszo
>> > >
>> > > )
>> > >
>> > >   - *Case 1: A: Get rid of contrib,*
>> > >   - *Case 2: A: 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)*
>> > >   - *Case 7: Native python solution (with better IDE integration)*
>> > >
>> > > This is my binding (+1) vote.
>> > >
>> > >
>> > >
>> > > On Fri, Jul 26, 2019 at 10:08 AM Jarek Potiuk <
>> jarek.pot...@polidea.com>
>> > > wrote:
>> > >
>> > >> Hey Felix,
>> > >>
>> > >> For 7* -> I am in favour of trying the native one as well (I use IDE
>> > quite
>> > >> often ;) )
>> > >>
>> > >> J.
>> > >>
>> > >> On Wed, Jul 24, 2019 at 9:34 AM Driesprong, Fokko
>> <fo...@driesprong.frl
>> > >
>> > >> wrote:
>> > >>
>> > >>> 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.
>> > >>>
>> > >>
>> > >> Ok. I am convinced. I will re-cast the vote with this. It will make
>> > easier
>> > >> as we will not have to define other rules as those that we already
>> have.
>> > >>
>> > >>
>> > >>> *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*
>> > >>>
>> > >>> My mistake. It was of course A. I think there is a little confusion
>> > here.
>> > >> This case is not for changing BashOperator into Bash but for changing
>> > the
>> > >> *module* name not the *class* name. So bash_operator.BashOperator ->
>> > >> bash.BashOperator :) . you will still search for BashOperator in this
>> > case.
>> > >>
>> > >>
>> > >>> *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.
>> > >>
>> > >>
>> > >> I'd say, we should go for C. As I proposed. It's not as difficult as
>> it
>> > >> seems to group operators in packages and it has numerous advantages.
>> The
>> > >> nice thing about deprecations - we can do them in the __init__.py of
>> the
>> > >> packages which causes the noise fairly small (Git will actually
>> realise
>> > >> that the file has been moved and you can follow that. Maybe not as
>> super
>> > >> easy to merge changes later to 1.10.4  but it's not a rocket science
>> > either.
>> > >>
>> > >>
>> > >>> *Case 7:* Python native solution
>> > >>>
>> > >>
>> > >> Yes.
>> > >>
>> > >>
>> > >>>
>> > >>> ---
>> > >>>
>> > >>> 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/>
>> > >>>
>> > >>
>> > >>
>> > >> --
>> > >>
>> > >> Jarek Potiuk
>> > >> Polidea <https://www.polidea.com/> | Principal Software Engineer
>> > >>
>> > >> M: +48 660 796 129 <+48660796129>
>> > >> [image: Polidea] <https://www.polidea.com/>
>> > >>
>> > >>
>> > >
>> > > --
>> > >
>> > > Jarek Potiuk
>> > > Polidea <https://www.polidea.com/> | Principal Software Engineer
>> > >
>> > > M: +48 660 796 129 <+48660796129>
>> > > [image: Polidea] <https://www.polidea.com/>
>> >
>> >
>>
>
>
> --
> *Kaxil Naik*
> *Big Data Consultant | DevOps Data Engineer*
> *Certified *Google Cloud Data Engineer | *Certified* Apache Spark & Neo4j
> Developer
> *LinkedIn*: https://www.linkedin.com/in/kaxil
>


-- 
*Kaxil Naik*
*Big Data Consultant | DevOps Data Engineer*
*Certified *Google Cloud Data Engineer | *Certified* Apache Spark & Neo4j
Developer
*LinkedIn*: https://www.linkedin.com/in/kaxil

Reply via email to