I already opened a JIRA for the removal and I will also create a (short) FLIP, as it is a PublicEvolving interface and its removal should go through a FLIP.
The JIRA can be found here https://issues.apache.org/jira/browse/FLINK-13713 Cheers, Kostas On Wed, Aug 14, 2019 at 12:13 PM Stephan Ewen <se...@apache.org> wrote: > +1 to drop it. > > It's one of the oldest pieces of legacy. > > On Wed, Aug 14, 2019 at 12:07 PM Aljoscha Krettek <aljos...@apache.org> > wrote: > > > Hi, > > > > I would be in favour of removing Program (and the code paths that support > > it) for Flink 1.10. Most users of Flink don’t actually know it exists and > > it is only making our code more complicated. Going forward with the new > > Client API discussions will be a lot easier without it as well. > > > > Best, > > Aljoscha > > > > > On 14. Aug 2019, at 11:08, Kostas Kloudas <kklou...@gmail.com> wrote: > > > > > > Hi all, > > > > > > It is nice to have this discussion. > > > > > > I am totally up for removing the unused Program interface, as this will > > > simplify a lot of other code paths in the ClusterClient and elsewhere. > > > > > > Also about the easier integration of Flink with other frameworks, there > > > is another discussion in the mailing list with exactly this topic: > > > [DISCUSS] Flink client api enhancement for downstream project > > > > > > Cheers, > > > Kostas > > > > > > > > > On Tue, Jul 30, 2019 at 1:38 PM Zili Chen <wander4...@gmail.com> > wrote: > > > > > >> Hi, > > >> > > >> With a one-week survey in user list[1], nobody expect Flavio and Jeff > > >> participant the thread. > > >> > > >> Flavio shared his experience with a revised Program like interface. > > >> This could be regraded as downstream integration and in client api > > >> enhancements document we propose rich interface for this integration. > > >> Anyway, the Flink scope Program is less functional than it should be. > > >> > > >> With no objection I'd like to push on this thread. We need a committer > > >> participant this thread to shepherd the removal/deprecation of > Program, > > a > > >> @PublicEvolving interface. Anybody has spare time? Or anything I can > do > > >> to make progress? > > >> > > >> Best, > > >> tison. > > >> > > >> [1] > > >> > > >> > > > https://lists.apache.org/thread.html/37445e43729cf7eaeb0aa09133d3980b62f891c5ee69d2c3c3e76ab5@%3Cuser.flink.apache.org%3E > > >> > > >> > > >> Zili Chen <wander4...@gmail.com> 于2019年7月22日周一 下午8:38写道: > > >> > > >>> Hi, > > >>> > > >>> I created a thread for survey in user list[1]. Please take > participate > > in > > >>> if interested. > > >>> > > >>> Best, > > >>> tison. > > >>> > > >>> [1] > > >>> > > >> > > > https://lists.apache.org/thread.html/37445e43729cf7eaeb0aa09133d3980b62f891c5ee69d2c3c3e76ab5@%3Cuser.flink.apache.org%3E > > >>> > > >>> > > >>> Flavio Pompermaier <pomperma...@okkam.it> 于2019年7月19日周五 下午5:18写道: > > >>> > > >>>> +1 to remove directly the Program class (I think nobody use it and > > it's > > >>>> not > > >>>> supported at all by REST services and UI). > > >>>> Moreover it requires a lot of transitive dependencies while it > should > > >> be a > > >>>> very simple thing.. > > >>>> +1 to add this discussion to "Flink client api enhancement" > > >>>> > > >>>> On Fri, Jul 19, 2019 at 11:14 AM Biao Liu <mmyy1...@gmail.com> > wrote: > > >>>> > > >>>>> To Flavio, good point for the integration suggestion. > > >>>>> > > >>>>> I think it should be considered in the "Flink client api > enhancement" > > >>>>> discussion. But the outdated API should be deprecated somehow. > > >>>>> > > >>>>> Flavio Pompermaier <pomperma...@okkam.it> 于2019年7月19日周五 下午4:21写道: > > >>>>> > > >>>>>> In my experience a basic "official" (but optional) program > > >> description > > >>>>>> would be very useful indeed (in order to ease the integration with > > >>>> other > > >>>>>> frameworks). > > >>>>>> > > >>>>>> Of course it should be extended and integrated with the REST > > >> services > > >>>> and > > >>>>>> the Web UI (when defined) in order to be useful.. > > >>>>>> It ease to show to the user what a job does and which parameters > it > > >>>>>> requires (optional or mandatory) and with a proper help > description. > > >>>>>> Indeed, when we write a Flink job we implement the following > > >>>> interface: > > >>>>>> > > >>>>>> public interface FlinkJob { > > >>>>>> String getDescription(); > > >>>>>> List<FlinkJobParameter> getParameters(); > > >>>>>> boolean isStreamingOrBatch(); > > >>>>>> } > > >>>>>> > > >>>>>> public class ClusterJobParameter { > > >>>>>> > > >>>>>> private String paramName; > > >>>>>> private String paramType = "string"; > > >>>>>> private String paramDesc; > > >>>>>> private String paramDefaultValue; > > >>>>>> private Set<String> choices; > > >>>>>> private boolean mandatory; > > >>>>>> } > > >>>>>> > > >>>>>> This really helps to launch a Flink job by a frontend (if the rest > > >>>>> services > > >>>>>> returns back those infos). > > >>>>>> > > >>>>>> Best, > > >>>>>> Flavio > > >>>>>> > > >>>>>> On Fri, Jul 19, 2019 at 9:57 AM Biao Liu <mmyy1...@gmail.com> > > >> wrote: > > >>>>>> > > >>>>>>> Hi Zili, > > >>>>>>> > > >>>>>>> Thank you for bring us this discussion. > > >>>>>>> > > >>>>>>> My gut feeling is +1 for dropping it. > > >>>>>>> Usually it costs some time to deprecate a public (actually it's > > >>>>>>> `PublicEvolving`) API. Ideally it should be marked as > `Deprecated` > > >>>>> first. > > >>>>>>> Then it might be abandoned it in some later version. > > >>>>>>> > > >>>>>>> I'm not sure how big the burden is to make it compatible with the > > >>>>>> enhanced > > >>>>>>> client API. If it's a critical blocker, I support dropping it > > >>>> radically > > >>>>>> in > > >>>>>>> 1.10. Of course a survey is necessary. And the result of survey > is > > >>>>>>> acceptable. > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> Zili Chen <wander4...@gmail.com> 于2019年7月19日周五 下午1:44写道: > > >>>>>>> > > >>>>>>>> Hi devs, > > >>>>>>>> > > >>>>>>>> Participating the thread "Flink client api enhancement"[1], I > > >> just > > >>>>>> notice > > >>>>>>>> that inside submission codepath of Flink we always has a branch > > >>>>> dealing > > >>>>>>>> with the case that main class of user program is a subclass of > > >>>>>>>> o.a.f.api.common.Program, which is defined as > > >>>>>>>> > > >>>>>>>> @PublicEvolving > > >>>>>>>> public interface Program { > > >>>>>>>> Plan getPhan(String... args); > > >>>>>>>> } > > >>>>>>>> > > >>>>>>>> This class, as user-facing interface, asks user to implement > > >>>> #getPlan > > >>>>>>>> which return a almost Flink internal class. FLINK-10862[2] > > >> pointed > > >>>>> out > > >>>>>>>> this confusion. > > >>>>>>>> > > >>>>>>>> Since our codebase contains quite a bit code handling this stale > > >>>>> class, > > >>>>>>>> and also it obstructs the effort enhancing Flink cilent api, > > >>>>>>>> I'd like to propose dropping it. Or we can start a survey on > > >> user > > >>>>> list > > >>>>>>>> to see if there is any user depending on this class. > > >>>>>>>> > > >>>>>>>> best, > > >>>>>>>> tison. > > >>>>>>>> > > >>>>>>>> [1] > > >>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>>> > > >>>> > > >> > > > https://lists.apache.org/thread.html/ce99cba4a10b9dc40eb729d39910f315ae41d80ec74f09a356c73938@%3Cdev.flink.apache.org%3E > > >>>>>>>> [2] https://issues.apache.org/jira/browse/FLINK-10862 > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>>> > > >>>> > > >>> > > >> > > > > >