This is a good idea for now. I'm also not overly concerned about these few 
non-cloud examples - FTPtoS3Operator can stay where it is and doesn't have to 
move under 'aws.' to my mind.

Longer term I'd like to go back to making the "transfer/copy/transform" 
operators "composable" so that we can have a single DataCopyOperator, and give 
it a source and destination, and it uses hooks to do the work. This is not a 
small undertaking though to do well and efficiently though.

-ash

> On 30 Jul 2019, at 20:54, Tomasz Urbaszek <tomasz.urbas...@polidea.com> wrote:
> 
> Maybe we can put all those AtoB operators under one name like “transfer”,
> then it would be easier to look for such operator?
> 
> Best,
> Tomek
> 
> On Tue, 30 Jul 2019 at 21:39, Chen Tong <cix...@gmail.com> wrote:
> 
>> Daniel mentioned a good point. Such composed operator may also involves
>> both cloud and non-cloud provider saying FTPtoS3Operator. Should it in AWS
>> folder?
>> 
>> Also, saying in the future, another cloud provider is growing large enough.
>> Will we rename all plugins related to this provider? What's the criteria we
>> say it's big enough? And option D gives an impression like these tools may
>> be maintained and supported by the Cloud provider. I am not sure if it will
>> be a truth or not.
>> 
>> Best,
>> 
>> 
>> On Tue, Jul 30, 2019 at 11:18 AM Daniel Standish <dpstand...@gmail.com>
>> wrote:
>> 
>>> One wrinkle with case 3+4 option D is inter-provider operators.  Mainly
>>> it's storage I think e.g. XToS3Operator or XToGCSOperator where the X is
>> a
>>> service some different provider.
>>> 
>>> Maybe the rule should be to locate the operator according to the first
>>> provider referenced.  So e.g. s3_to_gcs_transfer_operator.py would go to
>>> aws.
>>> 
>>> 
>>> On Tue, Jul 30, 2019 at 6:21 AM Kamil Breguła <kamil.breg...@polidea.com
>>> 
>>> wrote:
>>> 
>>>> Yes. All changes will be backwards compatible. In the case of using
>>>> the old path, a message containing a proposal for change will be
>>>> reported to the user.
>>>> 
>>>> I prepared an example of how to change the name of a class in a case
>>>> with the use of a native solution.
>>>> Source code:
>>>> 
>> https://github.com/mik-laj/airflow-deprecation-sample/tree/master/rename
>>>> Preview from IDE: https://imgur.com/a/45NxS5W
>>>> 
>>>> On Tue, Jul 30, 2019 at 2:28 PM Ash Berlin-Taylor <a...@apache.org>
>>> wrote:
>>>>> 
>>>>> Just cos I'm not sure it's _explicitly_ stated, but all of the moves
>>>> will have a deprecation of the old name right?
>>>>> 
>>>>> 3+4 case D gets my vote too.
>>>>> 
>>>>> -a
>>>>> 
>>>>>> On 30 Jul 2019, at 09:58, Jarek Potiuk <jarek.pot...@polidea.com>
>>>> wrote:
>>>>>> 
>>>>>> I went ahead and updated the page (just to speed it up) as I think
>> it
>>>>>> really makes sense to join those two cases (and I do not see any
>>>> drawbacks
>>>>>> - I think the options we have cover all possible approaches) and we
>>> can
>>>>>> always go back if we need to.
>>>>>> 
>>>>>> 
>>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths#AIP-21:Changesinimportpaths-Summaryoftheproposal
>>>>>> 
>>>>>> My vote is *D*.
>>>>>> 
>>>>>>  - airflow/contrib/operators/gcp_bigtable_operator.py  →
>>> airflow/gcp
>>>>>>  /operators/bigtable_operator.py
>>>>>>  - airflow/contrib/operators/ssh_operator.py ->
>>>>>>  airflow/operators/ssh_operator.py
>>>>>> 
>>>>>> I updated the page with my vote.
>>>>>> I propose that we vote till Friday on that one (all the rest is
>>> already
>>>>>> agreed).
>>>>>> 
>>>>>> J.
>>>>>> 
>>>>>> 
>>>>>> On Tue, Jul 30, 2019 at 9:42 AM Jarek Potiuk <
>>> jarek.pot...@polidea.com
>>>>> 
>>>>>> wrote:
>>>>>> 
>>>>>>> I think almost everyone voted and we have almost perfect
>> consensus.
>>>> We all
>>>>>>> agree amongst other on moving all operators out of contrib
>> (Great!).
>>>>>>> 
>>>>>>> The only doubts are for *Case 3* (Cloud provider prefix) and *Case
>>> 4*
>>>>>>> (Using Namespaces).
>>>>>>> I think there was actually an overlap between those two. Also
>> Ash's
>>>>>>> comment/veto on that is quite clear.
>>>>>>> So I have final (I hope!) proposal to join those two cases and
>> have
>>>> one
>>>>>>> voting (till Friday) only on that.
>>>>>>> 
>>>>>>> I will update the doc if you all agree with me that makes more
>> sense
>>>> as
>>>>>>> single case to vote on:
>>>>>>> 
>>>>>>> *[Case 3 + Case 4]: Grouping Cloud Provider operators.*
>>>>>>> 
>>>>>>> *Option A*. Keep operators/sensors/hooks in
>>> airflow/operators(sensors,
>>>>>>> hooks) and keep/add prefixes in file names.
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/sns_publish_operator.py  becomes
>>>>>>>  airflow/operators/**aws_sns_publish_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  - *airflow/contrib/operators/dataproc_operator.py*
>>>>>>> becomes *airflow/operators/gcp_dataproc_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/hooks/gcp_bigtable_hook.py  *becomes *airflow/*
>>>>>>>  *hooks/gcp_bigtable_hook.py*
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/ssh_operator.py  *becomes *airflow/*
>>>>>>>  *operators/ssh_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> *Option B*. Group operators/sensors/hooks in
>>>> airflow/operators(sensors,
>>>>>>> hooks)/*<PROVIDER>.* Non-cloud provider ones are moved to
>>>>>>> airflow/operators(sensors/hooks), Drop the prefix.
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/sns_publish_operator.py
>>>>>>>  becomes airflow/operators/**aws/sns_publish_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  - *airflow/contrib/operators/dataproc_operator.py*
>>>>>>> becomes *airflow/operators/gcp/dataproc_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/gcp_bigtable_operator.py  *becomes
>>>> *airflow/*
>>>>>>>  *operators/gcp/bigtable_operator.py*
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/ssh_operator.py  *becomes *airflow/*
>>>>>>>  *operators/ssh_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>> *Option C*. Group operators/sensors/hooks in
>>>> airflow/operators(sensors,
>>>>>>> hooks)*/<PROVIDER>.* Non-cloud provider ones are moved to
>>>>>>> airflow/operators(sensors/hooks), Keep the prefix.
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/sns_publish_operator.py
>>>>>>>  becomes airflow/operators/**aws/aws_sns_publish_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  - *airflow/contrib/operators/dataproc_operator.py*
>>>>>>> becomes *airflow/operators/gcp/gcp_dataproc_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/gcp_bigtable_operator.py  *becomes
>>>> *airflow/*
>>>>>>>  *operators/gcp/gcp_bigtable_operator.py*
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/ssh_operator.py  *becomes *airflow/*
>>>>>>>  *operators/ssh_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>> *Option D.* Group operators/sensors/hooks in
>>>> *airflow/<PROVIDER>*/operators(sensors,
>>>>>>> hooks). Non-cloud provider ones are moved to
>>>>>>> airflow/operators(sensors/hooks). Drop the prefix.
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/sns_publish_operator.py
>>>>>>>  becomes airflow/aws/operators/**sns_publish_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  - *airflow/contrib/operators/dataproc_operator.py*
>>>>>>> becomes *airflow/gcp/operators/dataproc_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/gcp_bigtable_operator.py  *becomes
>>>> *airflow/*
>>>>>>>  *gcp/operators/bigtable_operator.py*
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/ssh_operator.py  *becomes *airflow/*
>>>>>>>  *operators/ssh_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>> *Option E.* Group operators/sensors/hooks in
>>>> *airflow/<PROVIDER>*/operators(sensors,
>>>>>>> hooks). Non-cloud provider ones are moved to
>>>>>>> airflow/operators(sensors/hooks).* Keep the prefix*.
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/sns_publish_operator.py
>>>>>>>  becomes airflow/aws/operators/aws_**sns_publish_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  - *airflow/contrib/operators/dataproc_operator.py*
>>>>>>> becomes *airflow/gcp/operators/gcp_dataproc_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/gcp_bigtable_operator.py  *becomes
>>>> *airflow/*
>>>>>>>  *gcp/operators/gcp_bigtable_operator.py*
>>>>>>>  -
>>>>>>> *airflow/contrib/operators/ssh_operator.py  *becomes *airflow/*
>>>>>>>  *operators/ssh_operator.py*
>>>>>>> 
>>>>>>> 
>>>>>>> Shall I proceed with updating the page ?
>>>>>>> 
>>>>>>> 
>>>>>>> J.
>>>>>>> 
>>>>>>> 
>>>>>>> On Mon, Jul 29, 2019 at 11:18 AM Kaxil Naik <kaxiln...@gmail.com>
>>>> wrote:
>>>>>>> 
>>>>>>>> Thanks Jarek, adding my vote.
>>>>>>>> 
>>>>>>>> On Mon, Jul 29, 2019 at 2:40 PM Ash Berlin-Taylor <
>> a...@apache.org>
>>>> wrote:
>>>>>>>> 
>>>>>>>>> Thanks Jarek, much clearer. I have voted there too.
>>>>>>>>> 
>>>>>>>>> -ash
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On 29 Jul 2019, at 08:13, Driesprong, Fokko
>> <fo...@driesprong.frl
>>>> 
>>>>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Thanks Jarek, the Wiki works much better for me. I've added my
>>> vote
>>>>>>>> there
>>>>>>>>>> as well.
>>>>>>>>>> 
>>>>>>>>>> You've convinced me on the second case. I've changed my vote on
>>>> Case 2
>>>>>>>>> from
>>>>>>>>>> A to B :-)
>>>>>>>>>> 
>>>>>>>>>> Maybe we should leave the vote open a bit longer since it
>>> involves
>>>>>>>> quite
>>>>>>>>>> some reading, and I would like to get some proper feedback and
>>>>>>>> opinions
>>>>>>>>> on
>>>>>>>>>> this. Plus I only see two votes right now. If we don't think
>> this
>>>>>>>>> through,
>>>>>>>>>> it might be that we're having this vote again in the near
>> future
>>>> :-)
>>>>>>>>>> 
>>>>>>>>>> Cheers, Fokko
>>>>>>>>>> 
>>>>>>>>>> Op zo 28 jul. 2019 om 10:49 schreef Jarek Potiuk <
>>>>>>>>> jarek.pot...@polidea.com>:
>>>>>>>>>> 
>>>>>>>>>>> I updated the AIP-21 proposal in the way that should answer
>> all
>>>> the
>>>>>>>>>>> concerns in this thread.
>>>>>>>>>>> 
>>>>>>>>>>> NOTE! There is an action for all of those who are interested:
>>>> Please
>>>>>>>>>>> fill-in your voting in the voting table till Tuesday 30th of
>>> July
>>>> 6pm
>>>>>>>>> CEST
>>>>>>>>>>> (5pm BST, 9 am PST).
>>>>>>>>>>> 
>>>>>>>>>>> I created a summary of the proposal
>>>>>>>>>>> <
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths#AIP-21:Changesinimportpaths-Summaryoftheproposal
>>>>>>>>>>>> 
>>>>>>>>>>> in table form - which contains also examples for each case.
>>>>>>>>>>> 
>>>>>>>>>>> I added a voting table
>>>>>>>>>>> <
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths#AIP-21:Changesinimportpaths-Voting
>>>>>>>>>>>> 
>>>>>>>>>>> where you should add your votes:
>>>>>>>>>>> 
>>>>>>>>>>> I propose this voting mechanism:
>>>>>>>>>>> 
>>>>>>>>>>> Voting will take place till *Tuesday* 30 Jul 2019 6pm CEST  (5
>>> pm
>>>>>>>> BST,
>>>>>>>>> 9am
>>>>>>>>>>> PST) .
>>>>>>>>>>> 
>>>>>>>>>>> After the choice, the final consistent set of choices will be
>>>>>>>> announced
>>>>>>>>>>> (taking into account majority of binding vote, also including
>>>>>>>> potential
>>>>>>>>>>> vetos and consistency between the choices. Non-binding votes
>>> will
>>>> be
>>>>>>>>> taken
>>>>>>>>>>> into account in case there is a draw. The final set of choices
>>>> will
>>>>>>>> be
>>>>>>>>>>> announced at devlist thread
>>>>>>>>>>> <
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>> 
>>> 
>> https://lists.apache.org/thread.html/4cedc94bee53ad908eee8333a56b58be8b5641881e73f69b97e436a9@%3Cdev.airflow.apache.org%3E
>>>>>>>>>>>> 
>>>>>>>>>>> after
>>>>>>>>>>> the voting completes.
>>>>>>>>>>> 
>>>>>>>>>>> Unless there is a veto raised to the final proposal, the final
>>>>>>>> proposal
>>>>>>>>> is
>>>>>>>>>>> accepted by Lazy Consensus
>>>>>>>>>>> <https://community.apache.org/committers/lazyConsensus.html>
>>> on
>>>>>>>>> *Friday*
>>>>>>>>>>> 02
>>>>>>>>>>> Aug 2019 at 6pm CEST (5 pm BST, 9am PST).
>>>>>>>>>>> 
>>>>>>>>>>> Please let me know if what I proposed can be further improved
>> to
>>>>>>>> avoid
>>>>>>>>>>> chaos.
>>>>>>>>>>> 
>>>>>>>>>>> J.
>>>>>>>>>>> 
>>>>>>>>>>> On Sat, Jul 27, 2019 at 11:41 AM Jarek Potiuk <
>>>>>>>> jarek.pot...@polidea.com
>>>>>>>>>> 
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Ok. I see that indeed voting could have been organised a bit
>>>> better
>>>>>>>> -
>>>>>>>>> dev
>>>>>>>>>>>> list does not seem to cope well with such a complex case :).
>>>>>>>>>>>> 
>>>>>>>>>>>> As Kamil noticed - we already have a formal AIP-21
>>>>>>>>>>>> <
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths
>>>>>>>>>>>> 
>>>>>>>>>>>> in the Wiki - which I should have mentioned before. I have
>> not
>>>> much
>>>>>>>>> time
>>>>>>>>>>>> today - but tomorrow I will try to summarise the options -
>>> based
>>>> on
>>>>>>>>> some
>>>>>>>>>>>> real code examples (to make it easier to digest). I think the
>>>> best
>>>>>>>>>>> approach
>>>>>>>>>>>> will be to make a voting matrix in the AIP-21 Wiki page where
>>>> people
>>>>>>>>> will
>>>>>>>>>>>> be able to state their preferences for each case (by adding a
>>>> row to
>>>>>>>>> the
>>>>>>>>>>>> table). I think that might provide much better clarity and a
>>>> single
>>>>>>>>> place
>>>>>>>>>>>> which will show the current aggregated state of voting.
>>>>>>>>>>>> 
>>>>>>>>>>>> However - as Ash also stated - some of the options are
>>>>>>>> inter-dependent
>>>>>>>>> so
>>>>>>>>>>>> at the end we will have to adjust the results in case they
>> are
>>>> not
>>>>>>>>>>>> consistent  - and make final voting on aggregated set of
>> cases
>>> -
>>>>>>>> but I
>>>>>>>>>>>> think in this case following "lasy consensus" - i,e. if noone
>>>>>>>> objects
>>>>>>>>> to
>>>>>>>>>>>> final set of cases, we will proceed with it..
>>>>>>>>>>>> 
>>>>>>>>>>>> Do you think that will work better ?
>>>>>>>>>>>> 
>>>>>>>>>>>> J.
>>>>>>>>>>>> 
>>>>>>>>>>>> Principal Software Engineer
>>>>>>>>>>>> Phone: +48660796129
>>>>>>>>>>>> 
>>>>>>>>>>>> sob., 27 lip 2019, 09:26 użytkownik Kamil Breguła <
>>>>>>>>>>>> kamil.breg...@polidea.com> napisał:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Document is also available as AIP on wiki:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Sat, Jul 27, 2019, 9:07 AM Driesprong, Fokko
>>>>>>>> <fo...@driesprong.frl
>>>>>>>>>> 
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I agree with all, this is a bit chaotic. For the sake of
>>>> clarity,
>>>>>>>> I
>>>>>>>>>>>>> would
>>>>>>>>>>>>>> suggest moving the Google Doc to the Wiki as an AIP.
>> Create a
>>>>>>>>>>> structural
>>>>>>>>>>>>>> code improvement AIP and then and add a matrix of
>> users/cases
>>>>>>>> where
>>>>>>>>>>>>>> everybody can add his vote per case. This gives also the
>>>>>>>> opportunity
>>>>>>>>>>> for
>>>>>>>>>>>>>> changing your vote on a specific case. WDYT?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Cheers, Fokko
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Op vr 26 jul. 2019 om 22:28 schreef Chen Tong <
>>>> cix...@gmail.com>:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I agree with Ash. It is clear to vote on each case rather
>>> than
>>>>>>>> all
>>>>>>>>>>>>>>> together.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On Fri, Jul 26, 2019 at 3:54 PM Ash Berlin-Taylor <
>>>>>>>> a...@apache.org>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> A number of proposals overlap or add on to each other,
>> so I
>>>>>>>> think
>>>>>>>>>>>>> (?) a
>>>>>>>>>>>>>>>> single vote makes sense.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> To be clear, my vote is -1 until it's clear exactly what
>> we
>>>> are
>>>>>>>>>>>>> voting
>>>>>>>>>>>>>> on.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> On 26 July 2019 20:39:56 BST, Kaxil Naik <
>>>> kaxiln...@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> 
>>>>>>>>>>> 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
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> 
>>>>>>> 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/>
>>>>> 
>>>> 
>>> 
>> 

Reply via email to