I forgot to start the VOTE after 24 hours. However, I checked again Apache's voting rules [1] and code changes require consensus. So a -1 vote by a PMC member effectively is a veto. I don't have the impression from the discussion that we have a clear majority for one approach, so a VOTE thread would quickly turn into another big discussion thread.
Let me summarize the options at hand: #1 Break the DataStream API, by changing the return type of the apply() method #2 Keep the API and ask users to manually cast the return type of apply() to change the parallelism #3 Introduce a deprecated with() method that returns the correct type I prefer #2, because I think the should not break the API. We had some other API breaking discussions and we always found a solution. [1] http://www.apache.org/foundation/voting.html#votes-on-code-modification On Mon, Aug 15, 2016 at 12:21 PM, Robert Metzger <rmetz...@apache.org> wrote: > I would like have a decision on this so that we can merge the pull request. > > If we can not come up with a solution everybody agrees, and nobody rejects > the VOTE, I'll start a VOTE thread in 24 hours. > > > On Tue, Aug 9, 2016 at 3:57 PM, Till Rohrmann <trohrm...@apache.org> > wrote: > >> That is a tough call but I'm personally leaning slightly towards not >> breaking the API and adding a note for the casting workaround. >> >> My main concern is where do we set the limit for future API breaking >> issues? How critical does an issue has to be to be allowed to break the >> API? Currently, we have 10 API breaking issues for Flink 2.0 [1]. Why not >> including one of them as well? >> >> I think that backwards compatibility (source as well as binary) is really >> important for many users and we have the duty to live up to our promises. >> Imho, if things are API breaking, then we should indeed bump the major >> version, as Greg suggested. >> >> [1] https://issues.apache.org/jira/browse/FLINK-3957 >> >> Cheers, >> Till >> >> On Tue, Aug 9, 2016 at 2:20 PM, Greg Hogan <c...@greghogan.com> wrote: >> >> > I agree that expecting users to cast is undesirable. Upon changing the >> API, >> > why would we not mark the next release as 2.0? >> > >> > The same issue arose with Gabor's addition of hash-combine in the Scala >> > DataSet API where DataSet was returned rather than a specialized >> Operator. >> > The solution was to add an overloaded method. >> > >> > https://github.com/apache/flink/pull/1517/files#diff- >> > b1fea8d5283d978e9ccbc202dad36b5fR322 >> > >> > On Mon, Aug 8, 2016 at 10:11 AM, Stephan Ewen <se...@apache.org> wrote: >> > >> > > Hi all! >> > > >> > > We have a problem in the *DataStream API* around Windows for *CoGroup* >> > and >> > > *Join*. >> > > These operations currently do not allow to set a parallelism, which >> is a >> > > pretty heavy problem. >> > > >> > > To fix it properly, we need to change the return types of the >> coGroup() >> > and >> > > join() operations, which *breaks the binary compatibility* - it* >> retains >> > > source compatibility*, though. >> > > >> > > The pull request with the change is: >> > > https://github.com/apache/flink/pull/2305 >> > > >> > > There are very clumsy ways to work around this (custom casts in the >> user >> > > code or making the join() / coGroup() behave differently than the >> other >> > > operators) which we did not really think of as viable, because they >> would >> > > need to be changed again in the future once we pull the API straight >> > > (breaking even source compatibility then). >> > > >> > > *I would suggest to actually break the API* at that point (binary, not >> > > source) for *Flink 1.2* and add a big note in the release docs. An >> > > uncomfortable step, but the alternatives are quite bad, too. >> > > >> > > Have a look at what has been suggested in the pull request discussion >> and >> > > please let us know what you think about that so we can proceed. >> > > >> > > Greetings, >> > > Stephan >> > > >> > >> > >