Hello - any comments on that? I am happy to make it into an AIP :)? On Sun, Oct 13, 2019 at 5:53 PM Jarek Potiuk <jarek.pot...@polidea.com> wrote:
> *Motivation* > > I think we really should start thinking about making it easier to migrate > to 2.0 for our users. After implementing some recent changes related to > AIP-21- > Changes in import paths > <https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-21%3A+Changes+in+import+paths> > I > think I have an idea that might help with it. > > *Proposal* > > We could package some of the new and improved 2.0 operators (moved to > "providers" package) and let them be used in Python 3 environment of > airflow 1.10.x. > > This can be done case-by-case per "cloud provider". It should not be > obligatory, should be largely driven by each provider. It's not yet full AIP-8 > Split Hooks/Operators into separate packages > <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=100827303>. > It's > merely backporting of some operators/hooks to get it work in 1.10. But by > doing it we might try out the concept of splitting, learn about maintenance > problems and maybe implement full *AIP-8 *approach in 2.1 consistently > across the board. > > *Context* > > Part of the AIP-21 was to move import paths for Cloud providers to > separate providers/<PROVIDER> package. An example for that (the first > provider we already almost migrated) was providers/google package (further > divided into gcp/gsuite etc). > > We've done a massive migration of all the Google-related operators, > created a few missing ones and retrofitted some old operators to follow GCP > best practices and fixing a number of problems - also implementing Python3 > and Pylint compatibility. Some of these operators/hooks are not backwards > compatible. Those that are compatible are still available via the old > imports with deprecation warning. > > We've added missing tests (including system tests) and missing features - > improving some of the Google operators - giving the users more capabilities > and fixing some issues. Those operators should pretty much "just work" in > Airflow 1.10.x (any recent version) for Python 3. We should be able to > release a separate pip-installable package for those operators that users > should be able to install in Airflow 1.10.x. > > Any user will be able to install this separate package in their Airflow > 1.10.x installation and start using those new "provider" operators in > parallel to the old 1.10.x operators. Other providers ("microsoft", > "amazon") might follow the same approach if they want. We could even at > some point decide to move some of the core operators in similar fashion > (for example following the structure proposed in the latest documentation: > fundamentals / software / etc. > https://airflow.readthedocs.io/en/latest/operators-and-hooks-ref.html) > > *Pros and cons* > > There are a number of pros: > > - Users will have an easier migration path if they are deeply vested > into 1.10.* version > - It's possible to migrate in stages for people who are also vested in > py2: *py2 (1.10) -> py3 (1.10) -> py3 + new operators (1.10) -> py3 + > 2.0* > - Moving to new operators in py3 + new operators can be done > gradually. Old operators will continue to work while new can be used more > and more > - People will get incentivised to migrate to python 3 before 2.0 is > out (by using new operators) > - Each provider "package" can have independent release schedule - and > add functionality in already released Airflow versions. > - We do not take out any functionality from the users - we just add > more options > - The releases can be - similarly as main airflow releases - voted > separately by PMC after "stewards" of the package (per provider) perform > round of testing on 1.10.* versions. > - Users will start migrating to new operators earlier and have > smoother switch to 2.0 later > - The latest improved operators will start > > There are three cons I could think of: > > - There will be quite a lot of duplication between old and new > operators (they will co-exist in 1.10). That might lead to confusion of > users and problems with cooperation between different operators/hooks > - Having new operators in 1.10 python 3 might keep people from > migrating to 2.0 > - It will require some maintenance and separate release overhead. > > I already spoke to Composer team @Google and they are very positive about > this. I also spoke to Ash and seems it might also be OK for Astronomer > team. We have Google's backing and support, and we can provide maintenance > and support for those packages - being an example for other providers how > they can do it. > > Let me know what you think - and whether I should make it into an official > AIP maybe? > > J. > > > > -- > > 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/>