I think if there is a will to allow older apps to continue to benefit from improvements to operators, without changes, it can be done along with the proposed move, especially since we are not taking about all operators.
However, since that is not the case, I am fine with starting a 4.0 release line as long as we don't seal the future of 3.x now. What I would prefer is to create a release-3 branch and not a release-3.8 branch now and let the future determine if 3.8 will be the last 3.x minor release. Thanks On Fri, Aug 18, 2017 at 5:04 PM Thomas Weise <t...@apache.org> wrote: > The proposed change does NOT require changes to existing apps. It follows > what you see for example in the JDK where older classes are retired without > making breaking major release changes. > > Even though not required technically, it looks like the preference is to > make this change with a 4.0 release. I will therefore propose to change the > master branch to 4.0-SNAPSHOT and make this and other changes deemed > worthwhile. > > To me it is more important that to newcomers the codebase does not look > like an outdated legacy situation and therefore if I have to make a choice > than pretty much any version number will do for that. So far I have seen > very little interest and initiative in addressing maintenance work like the > packages, checkstyle, CI stability, documentation etc. So it would be great > if people interested would step up and contribute. > > Here is the next proposal how to proceed: > > - create release-3.8 branch for last 3.8 release right away > - update master to 4.0-SNAPSHOT as part of the open PR #664 > - identify further cleanup work for master > - release 4.0 > > Thanks, > Thomas > > > > > > > > > > On Thu, Aug 17, 2017 at 4:48 PM, Amol Kekre <a...@datatorrent.com> wrote: > > > This following pull request should be taken up in 4.0.0. See my comments > in > > https://github.com/apache/apex-malhar/pull/664 > > <https://www.google.com/url?q=https%3A%2F%2Fgithub.com% > > 2Fapache%2Fapex-malhar%2Fpull%2F664&sa=D&ust=1503020269444000&usg= > > AFQjCNHDPZIg2e6I33Jb1XjB5Ir1FkdURQ> > > https://github.com/apache/apex-malhar/pull/662 > > <https://www.google.com/url?q=https%3A%2F%2Fgithub.com% > > 2Fapache%2Fapex-malhar%2Fpull%2F662&sa=D&ust=1503020269444000&usg= > > AFQjCNF7Xde7X55M3qmc8z-D5y3ZwNg7Fg> > > > > This merge should not be done without a consensus. This will require code > > changes to existing apps. > > > > Thks, > > Amol > > > > > > > > E:a...@datatorrent.com | M: 510-449-2606 | Twitter: @*amolhkekre* > > > > www.datatorrent.com > > > > > > On Mon, Aug 14, 2017 at 7:48 PM, Thomas Weise <t...@apache.org> wrote: > > > > > Hi, > > > > > > I opened following PRs for the package change: > > > > > > https://github.com/apache/apex-malhar/pull/662 > > > > > > Moves all classes with history retained (hence 2 commits). Also > contains > > > checkstyle and other mechanical changes. > > > > > > https://github.com/apache/apex-malhar/pull/664 > > > > > > Adds backward compatibility jar. > > > > > > Once above PRs are merged the new artifact can be deployed and > introduced > > > as dependency in malhar-library. > > > > > > Please review. > > > > > > Thanks, > > > Thomas > > > > > > > > > > > > On Sun, Jul 16, 2017 at 7:04 AM, Thomas Weise <t...@apache.org> wrote: > > > > > > > My original list of work items contained the b/w compatibility > aspect, > > I > > > > don't think there should be any confusion of whether it will be > covered > > > > here or not. > > > > > > > > The proposed shading will provide the old classes and they will be > > frozen > > > > as of release 3.7. That's the same as making a copy of the code and > > never > > > > again making changes to the original classes. This cannot be > > accomplished > > > > by using the older 3.7 release in your project because you cannot > use 2 > > > > different versions of Malhar in parallel unless you apply shading. > > > > > > > > The shaded artifact will only expose the com.datatorrent classes, and > > > they > > > > will be self-contained as the rest of the classes that they may > depend > > on > > > > are shaded. The shaded artifact does not evolve, there are not more > > > changes > > > > to com.datatorrent classes after they are relocated in master. > > > > > > > > Thanks, > > > > Thomas > > > > > > > > > > > > On Sun, Jul 16, 2017 at 2:00 AM, Pramod Immaneni < > > pra...@datatorrent.com > > > > > > > > wrote: > > > > > > > >> I don't think we can limit the topic strictly to relocation without > > > having > > > >> a good b/w compatibility story or at least one that goes far enough. > > > >> > > > >> The shading idea sounds interesting. Why not let the shaded version > > move > > > >> forward with each release till we hit a major release. If it is > going > > to > > > >> remain pegged at 3.7.0, why shade in the first place as the regular > > > 3.7.0 > > > >> release would do the same job and it would be same as the loss of > b/w > > > >> compatibility with newer releases. > > > >> > > > >> Thanks > > > >> > > > >> On Sat, Jul 15, 2017 at 7:57 AM, Thomas Weise <t...@apache.org> > wrote: > > > >> > > > >> > Discussing what in the future might become stable needs to be a > > > separate > > > >> > thread, it will be a much bigger discussion. > > > >> > > > > >> > The topic here is to relocate the packages. With a few exceptions > > > >> > relocation won't affect the semantic versioning. Semantic > versioning > > > is > > > >> > essentially not effective for Malhar because almost everything is > > > >> @Evolving > > > >> > (and there are reasons for that.. -> separate topic) > > > >> > > > > >> > I don't really like the idea of creating bw compatibility stubs > for > > > the > > > >> > follow up PR. It creates even more clutter in the source tree than > > > there > > > >> > already is and so here is an alternative suggestion: > > > >> > > > > >> > https://github.com/tweise/apex-malhar/blob/malhar37- > > > >> > compat/shaded-malhar37/pom.xml > > > >> > > > > >> > Create a shaded artifact that provides the old com.datatorrent.* > > > >> classes as > > > >> > of release 3.7. Users can include that artifact if they don't want > > to > > > >> > change import statements. At the same time they have an incentive > to > > > >> switch > > > >> > to the relocated classes to take advantage of bug fixes and new > > > >> > functionality. > > > >> > > > > >> > I will work on the first PR that does the relocate. In the > meantime, > > > we > > > >> can > > > >> > finalize what backward compatibility support we want to provide > and > > > how. > > > >> > > > > >> > Thanks, > > > >> > Thomas > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > On Fri, Jul 14, 2017 at 11:33 AM, Pramod Immaneni < > > > >> pra...@datatorrent.com> > > > >> > wrote: > > > >> > > > > >> > > How about coming up with a list of @Evolving operators that we > > would > > > >> like > > > >> > > to see in the eventual stable list and move those along with the > > not > > > >> > > @Evolving ones in org.apache.apex with b/w stubs and leave the > > rest > > > as > > > >> > they > > > >> > > are. Then have a follow up JIRA for the rest to be moved over to > > > >> contrib > > > >> > > and be deprecated. > > > >> > > > > > >> > > Thanks > > > >> > > > > > >> > > On Fri, Jul 14, 2017 at 10:37 AM, Thomas Weise < > > > >> thomas.we...@gmail.com> > > > >> > > wrote: > > > >> > > > > > >> > > > We need to keep the discussion here on topic, if other things > > are > > > >> piled > > > >> > > on > > > >> > > > top then nothing gets done. > > > >> > > > > > > >> > > > Most operators today are not stable, they are @Evolving. So > > > perhaps > > > >> it > > > >> > is > > > >> > > > necessary to have a separate discussion about that, outside of > > > this > > > >> > > thread. > > > >> > > > My guess is that there are only a few operators that we could > > > >> declare > > > >> > > > stable. Specifically, under contrib the closest one might have > > > been > > > >> > > Kafka, > > > >> > > > but that is already superseded by the newer versions. > > > >> > > > > > > >> > > > Thomas > > > >> > > > > > > >> > > > > > > >> > > > On Fri, Jul 14, 2017 at 10:21 AM, Pramod Immaneni < > > > >> > > pra...@datatorrent.com> > > > >> > > > wrote: > > > >> > > > > > > >> > > > > We had a discussion a while back, agreed to relegate > > non-stable > > > >> and > > > >> > > > > experimental operators to contrib and also added this to > > > >> contribution > > > >> > > > > guidelines. We aexecuted on this and cleaned up the repo by > > > moving > > > >> > > > > operators deemed non-suitable for production use at that > time > > to > > > >> > > contrib. > > > >> > > > > So I wouldn't say the operators that are at the top level > > today > > > or > > > >> > the > > > >> > > > ones > > > >> > > > > in library are 0.x.x quality. Granted, we may need to do one > > > more > > > >> > pass > > > >> > > as > > > >> > > > > some of the operators may no longer be considered the right > > > >> > > > implementations > > > >> > > > > with the advent of the windowed operator. > > > >> > > > > > > > >> > > > > Since contrib used to be the place that housed operators > that > > > >> > required > > > >> > > > > third party libraries, there are some production quality > > > >> operators in > > > >> > > > there > > > >> > > > > that need to be pulled out into top level modules. > > > >> > > > > > > > >> > > > > I think we are in agreement that for operators that we > > consider > > > >> > stable, > > > >> > > > we > > > >> > > > > should provide a b/w stub. I would add that we strongly > > consider > > > >> > > creating > > > >> > > > > the org.apache.apex counterparts of any stable operators > that > > > are > > > >> in > > > >> > > > > contrib out in top level modules and have the > com.datatorrent > > > >> stubs > > > >> > in > > > >> > > > > contrib. > > > >> > > > > > > > >> > > > > For the operators not considered stable, I would prefer we > > > either > > > >> > leave > > > >> > > > the > > > >> > > > > current package path as is or if we change the package path > > then > > > >> > create > > > >> > > > the > > > >> > > > > b/w stub as I am not sure how widely they are in use (so, in > > > >> essence, > > > >> > > > > preserve semantic versioning). It would be good if there is > a > > > >> > followup > > > >> > > > JIRA > > > >> > > > > that takes a look at what other operators can be moved to > > > contrib > > > >> > with > > > >> > > > the > > > >> > > > > advent of the newer frameworks and understanding. > > > >> > > > > > > > >> > > > > Thanks > > > >> > > > > > > > >> > > > > On Fri, Jul 14, 2017 at 9:44 AM, Thomas Weise < > t...@apache.org > > > > > > >> > wrote: > > > >> > > > > > > > >> > > > > > Most of the operators evolve, as is quite clearly > indicated > > by > > > >> > > > @Evolving > > > >> > > > > > annotations. So while perhaps 0.x.x would be a more > > > appropriate > > > >> > > version > > > >> > > > > > number, I don't think you can change that. > > > >> > > > > > > > > >> > > > > > Thomas > > > >> > > > > > > > > >> > > > > > On Fri, Jul 14, 2017 at 9:35 AM, Vlad Rozov < > > > >> > v.ro...@datatorrent.com > > > >> > > > > > > >> > > > > > wrote: > > > >> > > > > > > > > >> > > > > > > If entire library is not stable, its version should be > > 0.x.x > > > >> and > > > >> > > > there > > > >> > > > > > > should not be any semantic versioning enabled or > implied. > > It > > > >> > > evolves. > > > >> > > > > If > > > >> > > > > > > some operators are stable as 3.8.x version suggests, the > > > >> library > > > >> > > > should > > > >> > > > > > > follow semantic versioning and it is not OK to make a > > major > > > >> > change > > > >> > > > that > > > >> > > > > > > breaks semantic versioning across the entire library. It > > is > > > >> not a > > > >> > > > > finding > > > >> > > > > > > an excuse not to make a change. For me semantic > versioning > > > and > > > >> > > > backward > > > >> > > > > > > compatibility is more important than a proper package > > name. > > > >> > > > > > > > > > >> > > > > > > Thank you, > > > >> > > > > > > > > > >> > > > > > > Vlad > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > On 7/14/17 09:11, Thomas Weise wrote: > > > >> > > > > > > > > > >> > > > > > >> Semantic versioning makes sense when you have a stable > > > >> baseline. > > > >> > > As > > > >> > > > > long > > > >> > > > > > >> as > > > >> > > > > > >> frequent fixes need to be made to address basic issues, > > it > > > >> makes > > > >> > > no > > > >> > > > > > sense > > > >> > > > > > >> to declare operators stable, which is why they are > marked > > > >> > > evolving. > > > >> > > > > > >> > > > >> > > > > > >> Instead of finding reasons to avoid changes that should > > > have > > > >> > been > > > >> > > > > made a > > > >> > > > > > >> long time ago, why not discuss what a "stable operator" > > is > > > >> and > > > >> > > which > > > >> > > > > > ones > > > >> > > > > > >> deserve to be in that category. Those are the ones that > > > will > > > >> get > > > >> > > the > > > >> > > > > > >> backward compatibility stub. > > > >> > > > > > >> > > > >> > > > > > >> Thanks, > > > >> > > > > > >> Thomas > > > >> > > > > > >> > > > >> > > > > > >> > > > >> > > > > > >> On Fri, Jul 14, 2017 at 8:34 AM, Vlad Rozov < > > > >> > > > v.ro...@datatorrent.com> > > > >> > > > > > >> wrote: > > > >> > > > > > >> > > > >> > > > > > >> My preference is to agree that the next Malhar release > is > > > >> 4.0.0 > > > >> > > and > > > >> > > > > make > > > >> > > > > > >>> the proposed changes when 3.8.0 goes out. Otherwise > why > > to > > > >> keep > > > >> > > > > > semantic > > > >> > > > > > >>> versioning checks on Malhar in case there is no > version > > > >> > > > > compatibility. > > > >> > > > > > >>> > > > >> > > > > > >>> Thank you, > > > >> > > > > > >>> > > > >> > > > > > >>> Vlad > > > >> > > > > > >>> > > > >> > > > > > >>> > > > >> > > > > > >>> On 7/14/17 08:11, Thomas Weise wrote: > > > >> > > > > > >>> > > > >> > > > > > >>> next release is 3.8.0 > > > >> > > > > > >>>> > > > >> > > > > > >>>> On Fri, Jul 14, 2017 at 7:55 AM, Vlad Rozov < > > > >> > > > > v.ro...@datatorrent.com> > > > >> > > > > > >>>> wrote: > > > >> > > > > > >>>> > > > >> > > > > > >>>> next release - 3.9.0 or 4.0.0? > > > >> > > > > > >>>> > > > >> > > > > > >>>>> Thank you, > > > >> > > > > > >>>>> > > > >> > > > > > >>>>> Vlad > > > >> > > > > > >>>>> > > > >> > > > > > >>>>> On 7/13/17 22:25, Thomas Weise wrote: > > > >> > > > > > >>>>> > > > >> > > > > > >>>>> It is time to resurrect this thread and get going > with > > > the > > > >> > > work. > > > >> > > > > > >>>>> > > > >> > > > > > >>>>>> For the next release, I will sign up to do the > > package > > > >> move > > > >> > in > > > >> > > > > > Malhar: > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> https://issues.apache.org/ > > jira/browse/APEXMALHAR-2517 > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> In general this will be straightforward; most > classes > > > in > > > >> > > Malhar > > > >> > > > > are > > > >> > > > > > >>>>>> marked > > > >> > > > > > >>>>>> evolving and it is trivial for users to change > import > > > >> > > > statements. > > > >> > > > > > >>>>>> However, > > > >> > > > > > >>>>>> I would suggest to discuss if there are selected > > > >> operators > > > >> > > that > > > >> > > > > are > > > >> > > > > > >>>>>> worth > > > >> > > > > > >>>>>> keeping a backward compatibility stub in the old > > > >> location. > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> Here is my plan: > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> 1. Relocate all classes in *lib* and *contrib* > within > > > one > > > >> > PR - > > > >> > > > > this > > > >> > > > > > is > > > >> > > > > > >>>>>> all > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> IDE automated work > > > >> > > > > > >>>>>> 2. Add backward compatibility classes, if, any in > > > >> separate > > > >> > PR > > > >> > > > > > >>>>>> 3. Create PR for Megh library to reflect moved > > classes > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> Thanks, > > > >> > > > > > >>>>>> Thomas > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> On Wed, Mar 1, 2017 at 2:24 PM, Pramod Immaneni < > > > >> > > > > > >>>>>> pra...@datatorrent.com > > > >> > > > > > >>>>>> wrote: > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> Inline > > > >> > > > > > >>>>>> > > > >> > > > > > >>>>>> On Mon, Feb 27, 2017 at 11:03 PM, Thomas Weise < > > > >> > > t...@apache.org> > > > >> > > > > > >>>>>>> wrote: > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> --> > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> On Mon, Feb 27, 2017 at 1:27 PM, Pramod Immaneni < > > > >> > > > > > >>>>>>>> pra...@datatorrent.com > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> wrote: > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> For malhar, for existing operators, I prefer we > do > > > >> this as > > > >> > > > part > > > >> > > > > of > > > >> > > > > > >>>>>>>> the > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> planned refactoring for breaking the monolith > > modules > > > >> into > > > >> > > > baby > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> packages > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> and would also prefer deprecating the existing > > > >> operators > > > >> > in > > > >> > > > > place. > > > >> > > > > > >>>>>>>> Refactor into smaller modules was discussed for > > > >> > > malhar-contrib > > > >> > > > > and > > > >> > > > > > >>>>>>>> given > > > >> > > > > > >>>>>>>> the overall state of that module I think it is OK > > to > > > >> defer > > > >> > > > > package > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> renaming > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> there. I do however prefer to see the package > rename > > > >> > > addressed > > > >> > > > > for > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> other > > > >> > > > > > >>>>>>>> modules, especially for the main library module. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> Should we consider breaking the library into > > smaller > > > >> > modules > > > >> > > > as > > > >> > > > > > >>>>>>>> well, > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> the > > > >> > > > > > >>>>>>> file/block operators for example probably can be > in > > > >> their > > > >> > own > > > >> > > > > > module > > > >> > > > > > >>>>>>> from > > > >> > > > > > >>>>>>> just an organizational perspective. > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> This > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> will help us achieve two things. First, the user > > will > > > >> see > > > >> > > all > > > >> > > > > the > > > >> > > > > > >>>>>>>>> new > > > >> > > > > > >>>>>>>>> changes at once as opposed to dealing with it > > twice > > > >> (with > > > >> > > > > package > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> rename > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> and dependency changes) and second it will allow > > for > > > a > > > >> > > > smoother > > > >> > > > > > >>>>>>>> transition > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> as the existing code will still work in a > > deprecated > > > >> > state. > > > >> > > It > > > >> > > > > > will > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>>> also > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> give a more consistent structure to malhar. For > new > > > >> > > operators, > > > >> > > > > we > > > >> > > > > > >>>>>>>> can > > > >> > > > > > >>>>>>>> go > > > >> > > > > > >>>>>>>> with the new package path but we need to ensure > > they > > > >> will > > > >> > > get > > > >> > > > > > moved > > > >> > > > > > >>>>>>>> into > > > >> > > > > > >>>>>>>> the baby packages as well. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> I think existing operators should be renamed so > > that > > > >> git > > > >> > > > history > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> remains. A > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> possible solution for backward compatibility could > > be > > > to > > > >> > > > > > subsequently > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> add > > > >> > > > > > >>>>>>>> empty subclasses in the previous location (for > > > existing > > > >> > > > concrete > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> operators > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> that we know are actually in use) to simplify > > > migration > > > >> for > > > >> > > > > users. > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> Yes we can do that. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> For demos, we can modify the paths as the apps > are > > > >> > typically > > > >> > > > > used > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> wholesale > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> and the interface is typically manual > interaction. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>>> For core, if we are adding new api subsystems, > > like > > > >> the > > > >> > > > > launcher > > > >> > > > > > >>>>>>>>> api > > > >> > > > > > >>>>>>>>> we > > > >> > > > > > >>>>>>>>> added recently for example, we can go with new > > > package > > > >> > path > > > >> > > > but > > > >> > > > > > if > > > >> > > > > > >>>>>>>>> we > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> are > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> making incremental additions to existing > > > >> functionality, I > > > >> > > feel > > > >> > > > > it > > > >> > > > > > is > > > >> > > > > > >>>>>>>> better > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> to keep it in the same package. I also prefer we > > keep > > > >> the > > > >> > > > > package > > > >> > > > > > of > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>>> the > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> implementation classes consistent with api, for > > > >> > > > > understandability > > > >> > > > > > >>>>>>>> and > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> readability of the code. So, for example, we > don't > > > >> change > > > >> > > > > package > > > >> > > > > > >>>>>>>>> path > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> of > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> LogicalPlan as it is an implementation of DAG. It > > is > > > >> > > > subjective, > > > >> > > > > > but > > > >> > > > > > >>>>>>>> it > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> will be good if we can also do the same with > > classes > > > >> > closely > > > >> > > > > > related > > > >> > > > > > >>>>>>>>> to > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> the > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> implementation classes as well. Maybe we can > moving > > > >> these > > > >> > > on a > > > >> > > > > > >>>>>>>> package > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>>> by > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> package basis, like everything in > > > >> > > com.datatorrent.stram.engine > > > >> > > > > > could > > > >> > > > > > >>>>>>>> be > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> moved. For completely internal components like > > buffer > > > >> > > server, > > > >> > > > we > > > >> > > > > > can > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> move > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>> them wholesale. We can consider moving all api > and > > > >> > classes, > > > >> > > > when > > > >> > > > > > we > > > >> > > > > > >>>>>>>> go > > > >> > > > > > >>>>>>>> to > > > >> > > > > > >>>>>>>> next major release but would like to see if we > can > > > >> find a > > > >> > > way > > > >> > > > to > > > >> > > > > > >>>>>>>> support > > > >> > > > > > >>>>>>>> existing api for one more major release in > > deprecated > > > >> > mode. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> The point of the major release is to enable > > backward > > > >> > > > > incompatible > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> changes > > > >> > > > > > >>>>>>>> and I don't think it is realistic to support the > > > >> existing > > > >> > > API > > > >> > > > > for > > > >> > > > > > >>>>>>>> another > > > >> > > > > > >>>>>>>> major release. IMO it is also not necessary as > most > > > >> > existing > > > >> > > > > > >>>>>>>> application > > > >> > > > > > >>>>>>>> code refers to operators, attributes and the > > > >> application > > > >> > > > > > interface. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> Perhaps > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> it is possible to keep those around as interface > > > >> extensions > > > >> > > to > > > >> > > > > help > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> migration. Custom operators may need to be > migrated > > > to > > > >> > > reflect > > > >> > > > > API > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> changes, > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> and I would consider that a reasonable task for > > > operator > > > >> > > > > developers > > > >> > > > > > >>>>>>> as > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> part > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>> of a major upgrade. > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>>> It would be good if we can keep them as > deprecated > > > >> > interface > > > >> > > > > > >>>>>>>> extensions > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> for > > > >> > > > > > >>>>>>> one release to provide a smoother transition. > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> API and implementation in engine are kept separate > > > >> > > > intentionally. > > > >> > > > > > >>>>>>> They > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> reside in different packages today, so I don't > see a > > > >> > problem > > > >> > > > > > renaming > > > >> > > > > > >>>>>>>> com.datatorrent.stram.engine as you say, even > when > > > the > > > >> API > > > >> > > > > cannot > > > >> > > > > > be > > > >> > > > > > >>>>>>>> touched right away. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> They are different packages but sharing a common > > > prefix > > > >> > with > > > >> > > > api > > > >> > > > > > >>>>>>>> will > > > >> > > > > > >>>>>>>> be > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> helpful to someone new to codebase in terms of > > > >> > readability. > > > >> > > > Not > > > >> > > > > a > > > >> > > > > > >>>>>>> big > > > >> > > > > > >>>>>>> deal > > > >> > > > > > >>>>>>> and can be changed. > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> Thanks > > > >> > > > > > >>>>>>> > > > >> > > > > > >>>>>>> On Mon, Feb 27, 2017 at 7:39 AM, Thomas Weise < > > > >> > > t...@apache.org> > > > >> > > > > > >>>>>>>> wrote: > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>>> Hi, > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> This topic has come up on several PRs and I > think > > it > > > >> > > > warrants a > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> broader > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> discussion. > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> At the time of incubation, the decision was to > > defer > > > >> > change > > > >> > > of > > > >> > > > > > Java > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> packages from com.datatorrent to > org.apache.apex > > > till > > > >> > next > > > >> > > > > major > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> release > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> to > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> ensure backward compatibility for users. > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> Unfortunately that has lead to some confusion, > as > > > >> > > > contributors > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> continue > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> to > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> add new code under legacy packages. > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> It is also a wider issue that examples for > using > > > Apex > > > >> > > > continue > > > >> > > > > > to > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> refer > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> to > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> com.datatorrent packages, nearly one year after > > > >> > graduation. > > > >> > > > More > > > >> > > > > > and > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> more > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> user code is being built on top of something > that > > > >> needs > > > >> > to > > > >> > > > > > change, > > > >> > > > > > >>>>>>>>> the > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> can > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> is being kicked down the road and users will face > > > more > > > >> > > changes > > > >> > > > > > >>>>>>>>> later. > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> I would like to propose the following: > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> 1. All new code has to be submitted under > > > >> > org.apache.apex > > > >> > > > > > packages > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> 2. Not all code is under backward compatibility > > > >> > > restriction > > > >> > > > > and > > > >> > > > > > in > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> those > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> cases we can rename the packages right away. > > > Examples: > > > >> > > buffer > > > >> > > > > > >>>>>>>>> server, > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> engine, demos/examples, benchmarks > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> 3. Discuss when the core API and operators can > be > > > >> > changed. > > > >> > > > For > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> operators > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> we > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> have a bit more freedom to do changes before a > > major > > > >> > > release > > > >> > > > as > > > >> > > > > > >>>>>>>>> most > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> of > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>> them are marked @Evolving and users have the > > ability > > > >> to > > > >> > > > > continue > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> using > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>> prior version of Malhar with newer engine due to > > > >> engine > > > >> > > > > backward > > > >> > > > > > >>>>>>>> > > > >> > > > > > >>>>>>>> compatibility guarantee. > > > >> > > > > > >>>>>>>>> > > > >> > > > > > >>>>>>>>>> Thanks, > > > >> > > > > > >>>>>>>>>> Thomas > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > >>>>>>>>>> > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > > > > > > > > > > > >