Removing the experimental is a fundamental breaking change to users' workflows, and so we should remove it before 2.0.
-ash On 13 August 2020 10:14:02 BST, Jarek Potiuk <jarek.pot...@polidea.com> wrote: >And I think we should make the whole experimenta API deprecated in >1.10.12 >possibly ? > >On Thu, Aug 13, 2020 at 11:12 AM Jarek Potiuk ><jarek.pot...@polidea.com> >wrote: > >> I think no matter what, Maybe we should simply make it deprecated in >the >> upcoming (today?) release of 1.10.12 ? Then we can decide if in - >> potential - 1.10.13 we remove it or leave it as it is. >> >> On Wed, Aug 12, 2020 at 6:37 PM Kamil Breguła ><kamil.breg...@polidea.com> >> wrote: >> >>> I started this thread mainly to discuss what we want to do with this >>> remote >>> mode prior to the Airflow 2.0 release. This is mainly due to the >fact that >>> he is using an experimental API which will be deprecated. >>> >>> In my opinion, we have several solutions. >>> a) Delete this mode as unused and not supported. >>> b) Rewrite in-core API client to support stable API >>> c) Prepare OpenAPI based client and rewrite CLI to use it >>> d) Leave as-is >>> >>> There were various expectations on the mailing list about this mode, >but I >>> haven't seen anyone actively contribute to it. This brings me >further >>> questions. Does anyone use this mode in its current form? If no one >is >>> using it, I think we can take more radical steps to start with a >blank >>> page. This will make it easier to start work and be able to iterate >over >>> it >>> faster in the future. This looks like a simple task, but if we want >to be >>> sure that no breaking-changes are made, we should pay off some >technical >>> debt and increase testing coverage before we can think about making >more >>> changes. It may not be necessary if we choose a different path of >>> development. >>> >>> I think now is a good time to try to make some decisions if someone >is >>> actually interested in developing these features. I do not think we >need a >>> precise vision of the development, if currently this feature is not >used >>> by >>> anyone and no one is really interested in its development. >>> >>> On Wed, Aug 12, 2020 at 7:16 AM QP Hou <q...@scribd.com> wrote: >>> >>> > I think it's best to divide the discussion into two separate >topics. >>> > >>> > First one is to replace the existing json_client with the new to >be >>> created >>> > official Airflow Python Client backed by the new RESTful API. This >IMHO >>> is >>> > a must have considering we are to deprecate experimental API going >>> forward. >>> > >>> > The second topic is to create a better CLI experience leveraging >the new >>> > APIs. This is much more controversial. I remember us having a >>> > similar discussion in the dev list a year ago, which didn't get >much >>> > traction. It's not possible to fit all existing CLI >functionalities into >>> > REST APIs. DB utils use-case that Ash mentioned is a great >example. So I >>> > think one potential solution is to split the CLI into two. Keep >the >>> > existing CLI as the admin/management CLI can communicate directly >with >>> the >>> > DB and taps into airflow core code base. On the other hand, we can >>> create a >>> > separate user facing CLI that's light weight, fast and remote >only. It >>> > doesn't even need to be written in python to make it easier to >>> distribute >>> > as a single binary. >>> > >>> > Thanks, >>> > QP Hou >>> > >>> > >>> > On Tue, Aug 11, 2020 at 12:44 PM Ash Berlin-Taylor ><a...@apache.org> >>> wrote: >>> > >>> > > -1 from me without a firm plan how we will replace it. >>> > > >>> > > I see keeping it and extending to use the new API would ensure >that >>> > > everything the CLI can do locally (i.e. when airflow webserver >isn't >>> up >>> > > yet, with the ) also works over the API with the exception of db >>> > utilities. >>> > > >>> > > -ash >>> > > >>> > > On 11 August 2020 20:05:56 BST, QP Hou <q...@scribd.com> wrote: >>> > > >+1 for replacing the existing remote mode client with the open >api >>> > > >based >>> > > >client. IMO, we don't really have other options here because >the >>> > > >experimental API will be deprecated in the future. >>> > > > >>> > > >For OpenAPI based Airflow REST clients, the current plan is to >>> maintain >>> > > >all >>> > > >the code gen automation within the main source tree [1], then >use it >>> to >>> > > >populate each individual language specific client repo like the >go >>> > > >client >>> > > >mentioned earlier. So far, we have the go client completed and >>> > > >validated to >>> > > >make sure this development flow will meet our needs. The next >step I >>> > > >think >>> > > >the community should focus on is getting API auth implemented >[2] >>> > > >before we >>> > > >move on to generate the python client. How we do API auth could >have >>> a >>> > > >big >>> > > >impact on client code gen automation, so it is worth waiting >for. >>> > > > >>> > > >Once we have authentication implemented in both Airflow core >and >>> > > >clients, >>> > > >we should be all good to start doing version releases for our >API >>> > > >clients. >>> > > > >>> > > >That said, adopting open api based clients in the CLI alone >won't >>> > > >address >>> > > >the issue of CLI depending on full airflow installation. Some >of the >>> > > >cli >>> > > >commands like `dags test` depend on a full airflow installation >by >>> > > >design. >>> > > >We will have to either develop a separate CLI intended for >remote >>> only >>> > > >use >>> > > >or add a flag in the existing cli so it can run in a pure >remote mode >>> > > >where >>> > > >it would disable loading of code that requires airflow >installation >>> > > >entirely. >>> > > > >>> > > >[1]: https://github.com/apache/airflow/tree/master/clients, >>> > > >[2]: https://github.com/apache/airflow/issues/8112 >>> > > > >>> > > >On Tue, Aug 11, 2020 at 11:05 AM Kamil Breguła >>> > > ><kamil.breg...@polidea.com> >>> > > >wrote: >>> > > > >>> > > >> Hello, >>> > > >> >>> > > >> I think we should remove remote mode in CLI and in-core API >Client >>> > > >> (airflow.api.client package). >>> > > >> Here is docs about remote mode: >>> > > >> >>> > > >> >>> > > > >>> > > >>> > >>> >https://airflow.readthedocs.io/en/latest/usage-cli.html#set-up-connection-to-a-remote-airflow-instance >>> > > >> >>> > > >> Since these features were introduced, it has never been >actively >>> > > >developed >>> > > >> and I don't think it's widely used. At the same time, Apache >>> Airflow >>> > > >is >>> > > >> evolving, and this code stands out more and more from the >rest. >>> > > >> >>> > > >> My main reservations about these features: >>> > > >> - Remote mode/in-core API Client is rarely used. I asked a >few >>> people >>> > > >and >>> > > >> none of them used it in production. Does anyone use it? >>> > > >> - A very small number of commands are available (7 pools >command >>> and >>> > > >2 dags >>> > > >> command only) >>> > > >> - Remote mode/API Client depends on experimental REST API. >>> > > >> - Remote mode/API Client is a handwritten code that is >difficult to >>> > > >> maintain. >>> > > >> - No documentation for API client >>> > > >> - Remote mode/API Client has low test coverage. >>> > > >> - Remote mode does not provide a good level of security, >because it >>> > > >depends >>> > > >> on experimental API. There is the only authentication, but >the >>> > > >> authenticated user can perform any operation. >>> > > >> - Requires full Airflow to be installed along with a large >number >>> of >>> > > >> unnecessary dependencies. Some of them are difficult to >install in >>> > > >some >>> > > >> environments, e.g. setproctitle on Windows >>> > > >> - Using this client API changes the logger configuration >because it >>> > > >> requires importing the airflow package. >>> > > >> >>> > > >> I think this remote mode in CLI is something valuable, but I >think >>> we >>> > > >can >>> > > >> do it in a different way in the future, e.g. generate a >CLI/API >>> > > >Client >>> > > >> based on the OpenAPI specification. >>> > > >> >>> > > >> Generated API clients can be installed independently of >airflow and >>> > > >will be >>> > > >> easier to maintain. We already have one API client for golang >>> > > >implemented >>> > > >> in this way, so new languages will only be developing this >idea. >>> > > >> - https://github.com/apache/airflow-client-go >>> > > >> >>> > > >> I will be happy to discuss the vision of the development of >these >>> two >>> > > >> things. How do we want to develop these two things? >>> > > >> >>> > > >> Best regards, >>> > > >> Kamil Bregula >>> > > >> >>> > > >>> > >>> >> >> >> -- >> >> 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/>