+1 for deprecating the packages listed below. -----Original Message----- From: hsy...@gmail.com [mailto:hsy...@gmail.com] Sent: Tuesday, July 12, 2016 12:01 PM
+1 On Tue, Jul 12, 2016 at 11:53 AM, David Yan <da...@datatorrent.com> wrote: > Hi all, > > I would like to renew the discussion of retiring operators in Malhar. > > As stated before, the reason why we would like to retire operators in > Malhar is because some of them were written a long time ago before > Apache incubation, and they do not pertain to real use cases, are not > up to par in code quality, have no potential for improvement, and > probably completely unused by anybody. > > We do not want contributors to use them as a model of their > contribution, or users to use them thinking they are of quality, and then hit > a wall. > Both scenarios are not beneficial to the reputation of Apex. > > The initial 3 packages that we would like to target are *lib/algo*, > *lib/math*, and *lib/streamquery*. > > I'm adding this thread to the users list. Please speak up if you are > using any operator in these 3 packages. We would like to hear from you. > > These are the options I can think of for retiring those operators: > > 1) Completely remove them from the malhar repository. > 2) Move them from malhar-library into a separate artifact called > malhar-misc > 3) Mark them deprecated and add to their javadoc that they are no > longer supported > > Note that 2 and 3 are not mutually exclusive. Any thoughts? > > David > > On Tue, Jun 7, 2016 at 2:27 PM, Pramod Immaneni > <pra...@datatorrent.com> > wrote: > >> I wanted to close the loop on this discussion. In general everyone >> seemed to be favorable to this idea with no serious objections. Folks >> had good suggestions like documenting capabilities of operators, come >> up well defined criteria for graduation of operators and what those >> criteria may be and what to do with existing operators that may not >> yet be mature or unused. >> >> I am going to summarize the key points that resulted from the >> discussion and would like to proceed with them. >> >> - Operators that do not yet provide the key platform capabilities to >> make an operator useful across different applications such as >> reusability, >> partitioning static or dynamic, idempotency, exactly once will still be >> accepted as long as they are functionally correct, have unit tests >> and will >> go into a separate module. >> - Contrib module was suggested as a place where new contributions go in >> that don't yet have all the platform capabilities and are not yet >> mature. >> If there are no other suggestions we will go with this one. >> - It was suggested the operators documentation list those platform >> capabilities it currently provides from the list above. I will >> document a >> structure for this in the contribution guidelines. >> - Folks wanted to know what would be the criteria to graduate an >> operator to the big leagues :). I will kick-off a separate thread >> for it as >> I think it requires its own discussion and hopefully we can come >> up with a >> set of guidelines for it. >> - David brought up state of some of the existing operators and their >> retirement and the layout of operators in Malhar in general and how it >> causes problems with development. I will ask him to lead the >> discussion on >> that. >> >> Thanks >> >> On Fri, May 27, 2016 at 7:47 PM, David Yan <da...@datatorrent.com> wrote: >> >> > The two ideas are not conflicting, but rather complementing. >> > >> > On the contrary, putting a new process for people trying to >> > contribute while NOT addressing the old unused subpar operators in >> > the repository >> is >> > what is conflicting. >> > >> > Keep in mind that when people try to contribute, they always look >> > at the existing operators already in the repository as examples and >> > likely a >> model >> > for their new operators. >> > >> > David >> > >> > >> > On Fri, May 27, 2016 at 4:05 PM, Amol Kekre <a...@datatorrent.com> >> wrote: >> > >> > > Yes there are two conflicting threads now. The original thread >> > > was to >> > open >> > > up a way for contributors to submit code in a dir (contrib?) as >> > > long >> as >> > > license part of taken care of. >> > > >> > > On the thread of removing non-used operators -> How do we know >> > > what is being used? >> > > >> > > Thks, >> > > Amol >> > > >> > > >> > > On Fri, May 27, 2016 at 3:40 PM, Sandesh Hegde < >> sand...@datatorrent.com> >> > > wrote: >> > > >> > > > +1 for removing the not-used operators. >> > > > >> > > > So we are creating a process for operator writers who don't >> > > > want to understand the platform, yet wants to contribute? How >> > > > big is that >> set? >> > > > If we tell the app-user, here is the code which has not passed >> > > > all >> the >> > > > checklist, will they be ready to use that in production? >> > > > >> > > > This thread has 2 conflicting forces, reduce the operators and >> > > > make >> it >> > > easy >> > > > to add more operators. >> > > > >> > > > >> > > > >> > > > On Fri, May 27, 2016 at 3:03 PM Pramod Immaneni < >> > pra...@datatorrent.com> >> > > > wrote: >> > > > >> > > > > On Fri, May 27, 2016 at 2:30 PM, Gaurav Gupta < >> > > gaurav.gopi...@gmail.com> >> > > > > wrote: >> > > > > >> > > > > > Pramod, >> > > > > > >> > > > > > By that logic I would say let's put all partitionable >> > > > > > operators >> > into >> > > > one >> > > > > > folder, non-partitionable operators in another and so on... >> > > > > > >> > > > > >> > > > > Remember the original goal of making it easier for new >> > > > > members to contribute and managing those contributions to >> > > > > maturity. It is >> not a >> > > > > functional level separation. >> > > > > >> > > > > >> > > > > > When I look at hadoop code I see these annotations being >> > > > > > used at >> > > class >> > > > > > level and not at package/folder level. >> > > > > >> > > > > >> > > > > I had a typo in my email, I meant to say "think of this like >> > > > > a >> > > folder..." >> > > > > as an analogy and not literally. >> > > > > >> > > > > Thanks >> > > > > >> > > > > >> > > > > > Thanks >> > > > > > >> > > > > > On Fri, May 27, 2016 at 2:10 PM, Pramod Immaneni < >> > > > pra...@datatorrent.com >> > > > > > >> > > > > > wrote: >> > > > > > >> > > > > > > On Fri, May 27, 2016 at 1:05 PM, Gaurav Gupta < >> > > > > gaurav.gopi...@gmail.com> >> > > > > > > wrote: >> > > > > > > >> > > > > > > > Can same goal not be achieved by using >> > > org.apache.hadoop.classification.InterfaceStability.Evolving >> > > > / >> > > > > > > > org.apache.hadoop.classification.InterfaceStability.Uns >> > > > > > > > table >> > > > > > annotation? >> > > > > > > > >> > > > > > > >> > > > > > > I think it is important to localize the additions in one >> place so >> > > > that >> > > > > it >> > > > > > > becomes clearer to users about the maturity level of >> > > > > > > these, >> > easier >> > > > for >> > > > > > > developers to track them towards the path to maturity and >> > > > > > > also >> > > > > provides a >> > > > > > > clearer directive for committers and contributors on >> acceptance >> > of >> > > > new >> > > > > > > submissions. Relying on the annotations alone makes them >> spread >> > all >> > > > > over >> > > > > > > the place and adds an additional layer of difficulty in >> > > > identification >> > > > > > not >> > > > > > > just for users but also for developers who want to find >> > > > > > > such >> > > > operators >> > > > > > and >> > > > > > > improve them. This of this like a folder level annotation >> where >> > > > > > everything >> > > > > > > under this folder is unstable or evolving. >> > > > > > > >> > > > > > > Thanks >> > > > > > > >> > > > > > > >> > > > > > > > >> > > > > > > > On Fri, May 27, 2016 at 12:35 PM, David Yan < >> > > da...@datatorrent.com >> > > > > >> > > > > > > wrote: >> > > > > > > > >> > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > Malhar in its current state, has way too many >> operators >> > > > that >> > > > > > fall >> > > > > > > > in >> > > > > > > > > > the >> > > > > > > > > > > > "non-production quality" category. We should >> > > > > > > > > > > > make it >> > > > obvious >> > > > > to >> > > > > > > > users >> > > > > > > > > > > that >> > > > > > > > > > > > which operators are up to par, and which >> > > > > > > > > > > > operators >> are >> > > not, >> > > > > and >> > > > > > > > maybe >> > > > > > > > > > > even >> > > > > > > > > > > > remove those that are likely not ever used in a >> > > > > > > > > > > > real >> > use >> > > > > case. >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > I am ambivalent about revisiting older operators >> > > > > > > > > > > and >> > doing >> > > > this >> > > > > > > > > exercise >> > > > > > > > > > as >> > > > > > > > > > > this can cause unnecessary tensions. My original >> intent >> > is >> > > > for >> > > > > > > > > > > contributions going forward. >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > IMO it is important to address this as well. >> > > > > > > > > > Operators >> > > outside >> > > > > the >> > > > > > > play >> > > > > > > > > > area should be of well known quality. >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > I think this is important, and I don't anticipate >> > > > > > > > > much >> > tension >> > > if >> > > > > we >> > > > > > > > > establish clear criteria. >> > > > > > > > > It's not helpful if we let the old subpar operators >> > > > > > > > > stay >> and >> > > put >> > > > up >> > > > > > the >> > > > > > > > > bars for new operators. >> > > > > > > > > >> > > > > > > > > David >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >