There is something to be said for the ease of putting plugins in the airflow 
home folder too that I would still like to keep, as it makes deploying site 
specific plugins much easier.

On 14 April 2019 04:13:52 BST, Jarek Potiuk <jarek.pot...@polidea.com> wrote:
>+1 for using more entrypoints as discovery mechanism. Maybe we should
>also
>start to use the 'console_scripts' entrypoint group for "airflow"
>binary
>instead of copying the binary airflow script (
>https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point
>) as well as for plugginable extensions.
>
>J.
>
>On Sat, Apr 13, 2019 at 11:15 PM Maxime Beauchemin <
>maximebeauche...@gmail.com> wrote:
>
>> I'd say it could be great to deprecate the whole plugin system and
>use
>> Python's "entry points" instead. I just didn't know that was an
>option and
>> the standard way to do this when I originally wrote it... The current
>> plugin system is a minefield for circular dependencies...
>>
>> On Sat, Apr 13, 2019 at 10:50 AM Jarek Potiuk
><jarek.pot...@polidea.com>
>> wrote:
>>
>> > One comment here - The current connections.py file screams to get
>dynamic
>> > discovery similar to what sqlalchemy does for dialects (for
>example).
>> >
>> > But on the other hand, I am not sure if this "registration" is
>really
>> > needed. Maybe I am totally wrong, but somehow I don't find it
>> particularly
>> > useful to get hook by connection_type.
>> >
>> > I believe connection_type is useful for the UI to be able to select
>the
>> > connection when you create it and have different UI fields defined
>by
>> > connection. But nearly universally in other places, when operator
>is
>> > instantiated, it also instantiates the hook it expects to use,
>rather
>> than
>> > rely on get_hook() or parse_from_uri() of the connection. Each
>operator
>> > knows what connection type it needs.
>> >
>> > I checked it quickly and it seems the "get by connection type" or
>> > parse_from_uri functionality is almost exclusively used by tests.
>> >
>> > Again - maybe I am completely wrong but maybe we should rethink the
>whole
>> > "connection" class and get rid of the need of "registering" new
>> connection
>> > types at all (or move the relevant stuff to be UI only).
>> >
>> >
>> >
>> > On Fri, Apr 12, 2019 at 6:07 PM Daniel Imberman <
>> daniel.imber...@gmail.com
>> > >
>> > wrote:
>> >
>> > > I think that's the important distinction. This wouldn't be
>removing
>> > custom
>> > > hooks and operators, this is just removing the python magic that
>has
>> you
>> > > placing them in a plugins folder. I can see the value in having
>the
>> DAGs
>> > > being real-time parsed as users might want to make small changes
>to
>> > those,
>> > > but operators/hooks should be fairly static once created.
>> > >
>> > > On Fri, Apr 12, 2019 at 8:53 AM Ash Berlin-Taylor
><a...@apache.org>
>> > wrote:
>> > >
>> > > > Can you give an example?
>> > > >
>> > > > We can still have custom hooks/operators per install, I'm just
>saying
>> > > they
>> > > > don't need to be implemented/"registered" with airflow.plugin
>-- all
>> > that
>> > > > provides is another way of having that be imported.
>> > > >
>> > > > -ash
>> > > >
>> > > > > On 12 Apr 2019, at 16:21, Chen Tong <cix...@gmail.com> wrote:
>> > > > >
>> > > > > IMHO, it's worth to have such dynamic hooks adding ability. I
>met
>> > > issues
>> > > > > before that the current hook cannot satisfy the needs. I have
>to
>> > write
>> > > my
>> > > > > own hook and hacked Connections. If hook is not coupled
>tightly
>> with
>> > > > > Connections, it will be easier by switching to another python
>> > package.
>> > > > >
>> > > > > On Fri, Apr 12, 2019 at 11:14 AM Daniel Imberman <
>> > > > daniel.imber...@gmail.com>
>> > > > > wrote:
>> > > > >
>> > > > >> I am all for this. The only complexity is ensuring the
>> operator/hook
>> > > > >> exists in the workers too, but overall highly for.
>> > > > >> On Apr 12, 2019, 7:37 AM -0700, James Meickle <
>> > > jmeic...@quantopian.com
>> > > > .invalid>,
>> > > > >> wrote:
>> > > > >>> YES - I strongly agree with this! I first did it this way
>> because I
>> > > > >> wanted
>> > > > >>> to follow the instructions, assuming there was some Airflow
>> magic,
>> > > and
>> > > > >>> later found it really frustrating to maintain. We should be
>clear
>> > > that
>> > > > >>> standard Python packaging is the way to go.
>> > > > >>>
>> > > > >>> That being said, what if Airflow had an official
>Cookiecutter
>> > > template
>> > > > >> for
>> > > > >>> Airflow operator packages, and suggested that as a way to
>manage
>> > your
>> > > > >>> operators in the docs? That would probably help people who
>aren't
>> > as
>> > > > >>> familiar with Python, and over time might increase quality
>of
>> third
>> > > > party
>> > > > >>> operators (if it ships by default with linting/etc.)
>> > > > >>>
>> > > > >>> On Fri, Apr 12, 2019 at 3:54 AM Ash Berlin-Taylor <
>> a...@apache.org>
>> > > > >> wrote:
>> > > > >>>
>> > > > >>>> This is something I've said a number of times (but
>possibly
>> never
>> > on
>> > > > >> the
>> > > > >>>> list):
>> > > > >>>>
>> > > > >>>> I think we should deprecate adding Operators and Hooks via
>the
>> > > Airflow
>> > > > >>>> plugin mechanism.
>> > > > >>>>
>> > > > >>>> I think plugins should be reserved for any mechanism that
>a
>> > plain-ol
>> > > > >>>> python module import won't work for (which is basically
>anything
>> > > that
>> > > > >> needs
>> > > > >>>> to tie deeply in to the Webserver or Scheduler process).
>> > > > >>>>
>> > > > >>>> To that endI think we should deprecate adding operators
>via
>> > plugins:
>> > > > >>>>
>> > > > >>>> from airflow.operators.my_plugin import MyOperator
>> > > > >>>>
>> > > > >>>> can become
>> > > > >>>>
>> > > > >>>> from my_plugin import MyOperator
>> > > > >>>>
>> > > > >>>> with no impact on functionality.
>> > > > >>>>
>> > > > >>>> The same could be said for hooks, with one possible
>feature
>> > > addition:
>> > > > >>>> Right now the list of connection types in the Connections
>screen
>> > is
>> > > > >>>> hard-coded. Is it possible worth making that dynamic
>somehow
>> based
>> > > on
>> > > > >> the
>> > > > >>>> Hook classes that are loaded? i.e. adding the ability for
>hooks
>> > > added
>> > > > >> in
>> > > > >>>> plguins to add items to that list?
>> > > > >>>>
>> > > > >>>> -ash
>> > > > >>
>> > > >
>> > > >
>> > >
>> >
>> >
>> > --
>> >
>> > Jarek Potiuk
>> > Polidea <https://www.polidea.com/> | Principal Software Engineer
>> >
>> > M: +48 660 796 129 <+48660796129>
>> > E: jarek.pot...@polidea.com
>> >
>>
>
>
>-- 
>
>Jarek Potiuk
>Polidea <https://www.polidea.com/> | Principal Software Engineer
>
>M: +48 660 796 129 <+48660796129>
>E: jarek.pot...@polidea.com

Reply via email to