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 >> > > > > > >>>>>>>>>> >> > > > > > >>>>>>>>>> >> > > > > > >>>>>>>>>> >> > > > > > >>>>>>>>>> >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >