Hey Harsha,

Just to clarify, are you ok with removing the methods in a later release
(say 0.11)? As I mentioned above, the only weird ones are subscribe() and
assign(), which will have a deprecated version which accepts List. Users
will have to change their code to use another collection type or a typecast
to avoid deprecation warnings. That's annoying, but maybe better than
breaking compatibility. Does it make sense to update the KIP with your
proposal and request a new vote?

Thanks,
Jason

On Fri, Apr 29, 2016 at 4:25 PM, Harsha <ka...@harsha.io> wrote:

> Grant,
>          I am sure this is discussed and voted. I've seen the
>          discussion. Given that there is an opportunity to make it less
>          painful for the users who shipped consumers using the 0.9.x we
>          should consider that.
> ". However, for now the documentation of
> > > the Unstable annotation says, "No guarantee is provided as to
> reliability
> > > or stability across any level of release granularity."  If we can't
> > > leverage the Unstable annotation to make breaking changes where
> necessary,
> > > it will be tough to vet new apis without generating a lot of deprecated
> > > code."
> Yes we can tell everyone thats because we marked api unstable we gonna
> break it in future release and not even consider make it compatible.
> With this approach I am sure no one would be interested in writing or
> using any of the api's until they are stable and thats not way to vet
> new apis.
>
> -Harsha
>
>
>
> On Fri, Apr 29, 2016, at 10:39 AM, Grant Henke wrote:
> > If anyone wants to review the KIP call discussion we had on this just
> > before the vote, here is a link to the relevant session (6 minutes in):
> > https://youtu.be/Hcjur17TjBE?t=6m
> >
> > On Fri, Apr 29, 2016 at 12:21 PM, Grant Henke <ghe...@cloudera.com>
> > wrote:
> >
> > > I think you are right Jason. People were definitely on the fence about
> > > this and we went back and forth for quite some time.
> > >
> > > I think the main point in the KIP discussion that made this decision,
> is
> > > that the Consumer was annotated with the Unstable annotation. Given how
> > > new the Consumer is, we wanted to leverage that to make sure the
> interface
> > > is clean. The same will be true for KafkaStreams in the upcoming
> release.
> > >
> > > We did agree that we should discuss the annotations and what our
> > > compatibility story is in the future. However, for now the
> documentation of
> > > the Unstable annotation says, "No guarantee is provided as to
> reliability
> > > or stability across any level of release granularity."  If we can't
> > > leverage the Unstable annotation to make breaking changes where
> necessary,
> > > it will be tough to vet new apis without generating a lot of deprecated
> > > code.
> > >
> > > Note: We did remove the Unstable annotation from the Consumer interface
> > > for 0.10 implying that it is now stable. (KAFKA-3435
> > > <https://issues.apache.org/jira/browse/KAFKA-3435>)
> > >
> > > Thanks,
> > > Grant
> > >
> > > On Fri, Apr 29, 2016 at 12:05 PM, Jason Gustafson <ja...@confluent.io>
> > > wrote:
> > >
> > >> Hey Harsha,
> > >>
> > >> One issue with adding back subscribe(List), but marking it deprecated
> is
> > >> that it may confuse some users if they use the typical Arrays.asList()
> > >> pattern. You'd have to cast to a Collection to avoid the deprecation
> > >> warning, which is awkward. Maybe it would be better in that case to
> keep
> > >> the List alternatives forever?
> > >>
> > >> In general, I'm not opposed to adding the methods back. When we voted
> on
> > >> KIP-45, I think many of us were on the fence anyway. It would be nice
> to
> > >> hear what others think.
> > >>
> > >> -Jason
> > >>
> > >> On Thu, Apr 28, 2016 at 6:30 PM, Harsha <ka...@harsha.io> wrote:
> > >>
> > >> > Hi Jason,
> > >> >     "t. I think what you're
> > >> > saying is that the KafkaSpout has been compiled against the 0.9
> client,
> > >> > but
> > >> > it may need to be to run against 0.10 (if the user depends on that
> > >> > version
> > >> > instead). Is that correct?"
> > >> >
> > >> > Yes thats true.
> > >> >
> > >> > " Is that correct? In general, are you expecting that KafkaSpout
> > >> > > > will work with any kafka-clients greater than 0.9?"
> > >> >
> > >> > In general yes . But given that interface is marked unstable its
> > >> > probably not reasonable to expect to work across the new versions
> > >> > of the Kafka.
> > >> >
> > >> > "Another question that
> > >> > > > comes to mind is whether we would also need to revert to the old
> > >> > versions
> > >> > > > of subscribe() and assign().
> > >> > Yes you are right on these methods. We need to add for these two as
> > >> > well.
> > >> >
> > >> >
> > >> > My issue is users who built their clients using 0.9.x java api will
> have
> > >> > to change once the 0.10 release is out. Alternative I am proposing
> is to
> > >> > give these users time to move onto the new api thats added and keep
> the
> > >> > old methods with deprecated tag for atleast one version.
> > >> >
> > >> > Thanks,
> > >> > Harsha
> > >> >
> > >> >
> > >> > On Thu, Apr 28, 2016, at 04:41 PM, Grant Henke wrote:
> > >> > > FYI. I have attached a sample clients API change/compatibility
> report
> > >> to
> > >> > > KAFKA-1880 <https://issues.apache.org/jira/browse/KAFKA-1880>.
> The
> > >> > report
> > >> > > shows changes in the public apis between the 0.9 and trunk
> branches.
> > >> Some
> > >> > > of them are expected per KIP-45 obviously.
> > >> > >
> > >> > > Thanks,
> > >> > > Grant
> > >> > >
> > >> > >
> > >> > > On Thu, Apr 28, 2016 at 6:33 PM, Jason Gustafson <
> ja...@confluent.io>
> > >> > > wrote:
> > >> > >
> > >> > > > Hey Harsha,
> > >> > > >
> > >> > > > We're just trying to understand the problem first. I think what
> > >> you're
> > >> > > > saying is that the KafkaSpout has been compiled against the 0.9
> > >> > client, but
> > >> > > > it may need to be to run against 0.10 (if the user depends on
> that
> > >> > version
> > >> > > > instead). Is that correct? In general, are you expecting that
> > >> > KafkaSpout
> > >> > > > will work with any kafka-clients greater than 0.9? Another
> question
> > >> > that
> > >> > > > comes to mind is whether we would also need to revert to the old
> > >> > versions
> > >> > > > of subscribe() and assign(). The argument type was changed from
> > >> List to
> > >> > > > Collection, which is not binary compatible, right?
> > >> > > >
> > >> > > > Thanks,
> > >> > > > Jason
> > >> > > >
> > >> > > > On Thu, Apr 28, 2016 at 1:41 PM, Harsha <ka...@harsha.io>
> wrote:
> > >> > > >
> > >> > > > > Hi Ismael,
> > >> > > > >               This will solve both binary and source
> > >> compatibility.
> > >> > > > >               Storm has new KafkaSpout that used 0.9.x new
> > >> KafkaSpout
> > >> > > > >               API. As part of that spout we used
> > >> > > > >               KafkaConsumer.seekToBeginning and other methods.
> > >> Since
> > >> > the
> > >> > > > >               method signature changed as part of KIP-45. If
> we
> > >> > update
> > >> > > > >               the version to 0.10 we are breaking the
> > >> KafkaConsumer
> > >> > > > >               calls in our Storm spout. In storm's case we ask
> > >> users
> > >> > to
> > >> > > > >               create uber jar with all the required
> dependencies
> > >> and
> > >> > > > >               users can free to use which version of kafka
> they
> > >> can
> > >> > to
> > >> > > > >               be part of uber jar. If they use storm 1.0
> release
> > >> > version
> > >> > > > >               of storm-kafka with kafka 0.10 than it will
> create
> > >> > issues
> > >> > > > >               without the patch.
> > >> > > > >              I am still not getting clear answer here. Whats
> > >> exactly
> > >> > the
> > >> > > > >              issue in having these methods with deprecated
> tag? we
> > >> > keep
> > >> > > > >              the interface as it is.
> > >> > > > >
> > >> > > > > Thanks,
> > >> > > > > Harsha
> > >> > > > >
> > >> > > > > On Thu, Apr 28, 2016, at 01:27 PM, Ismael Juma wrote:
> > >> > > > > > Hi Harsha,
> > >> > > > > >
> > >> > > > > > What is the aim of the PR, is it to fix binary
> compatibility,
> > >> > source
> > >> > > > > > compatibility or both? I think it only fixes source
> > >> compatibility,
> > >> > so I
> > >> > > > > > am
> > >> > > > > > interested in what testing has been done to ensure that
> this fix
> > >> > solves
> > >> > > > > > the
> > >> > > > > > Storm issue.
> > >> > > > > >
> > >> > > > > > Thanks,
> > >> > > > > > Ismael
> > >> > > > > >
> > >> > > > > > On Thu, Apr 28, 2016 at 12:58 PM, Harsha <ka...@harsha.io>
> > >> wrote:
> > >> > > > > >
> > >> > > > > > > Hi,
> > >> > > > > > >        We missed this vote earlier and realized thats its
> > >> > breaking
> > >> > > > the
> > >> > > > > > >        0.9.x client api compatibility.  I opened a JIRA
> here
> > >> > > > > > >        https://issues.apache.org/jira/browse/KAFKA-3633 .
> > >> Can we
> > >> > > > keep
> > >> > > > > > >        the old methods with deprecated tag in 0.10
> release.
> > >> > > > > > >
> > >> > > > > > > Thanks,
> > >> > > > > > > Harsha
> > >> > > > > > >
> > >> > > > > > > On Fri, Mar 18, 2016, at 01:51 PM, Jason Gustafson wrote:
> > >> > > > > > > > Looks like the KIP has passed. The finally tally is +5
> among
> > >> > > > > committers
> > >> > > > > > > > and
> > >> > > > > > > > +9 overall.
> > >> > > > > > > >
> > >> > > > > > > > Thanks to Pierre-Yves Ritschard for all of the hard
> work and
> > >> > > > > persistence
> > >> > > > > > > > with this!
> > >> > > > > > > >
> > >> > > > > > > > -Jason
> > >> > > > > > > >
> > >> > > > > > > > On Wed, Mar 16, 2016 at 9:01 PM, Ewen Cheslack-Postava
> > >> > > > > > > > <e...@confluent.io>
> > >> > > > > > > > wrote:
> > >> > > > > > > >
> > >> > > > > > > > > +1.
> > >> > > > > > > > >
> > >> > > > > > > > > Normally I'd be more of a stickler for compatibility,
> but
> > >> > this is
> > >> > > > > new,
> > >> > > > > > > I
> > >> > > > > > > > > think it's worth emphasizing that unstable actually
> means
> > >> > > > unstable
> > >> > > > > &
> > >> > > > > > > might
> > >> > > > > > > > > require recompile (and maybe even adapting code when
> we
> > >> > think the
> > >> > > > > > > change
> > >> > > > > > > > > warrants it), and I think the impact is relatively low
> > >> since
> > >> > > > those
> > >> > > > > > > adopting
> > >> > > > > > > > > the new consumer know that it's very new. Agreed with
> > >> > Guozhang
> > >> > > > that
> > >> > > > > > > better
> > >> > > > > > > > > documenting the annotations will help (and personally
> > >> > apologize
> > >> > > > for
> > >> > > > > > > that
> > >> > > > > > > > > since we hastily introduced the annotations to give
> > >> ourselves
> > >> > > > > wiggle
> > >> > > > > > > room
> > >> > > > > > > > > on Connect).
> > >> > > > > > > > >
> > >> > > > > > > > > -Ewen
> > >> > > > > > > > >
> > >> > > > > > > > > On Wed, Mar 16, 2016 at 5:17 PM, Joel Koshy <
> > >> > jjkosh...@gmail.com
> > >> > > > >
> > >> > > > > > > wrote:
> > >> > > > > > > > >
> > >> > > > > > > > > > +1
> > >> > > > > > > > > >
> > >> > > > > > > > > > On Tue, Mar 15, 2016 at 2:18 PM, Jason Gustafson <
> > >> > > > > ja...@confluent.io
> > >> > > > > > > >
> > >> > > > > > > > > > wrote:
> > >> > > > > > > > > >
> > >> > > > > > > > > > > I'd like to open the vote for KIP-45. We've
> discussed
> > >> > several
> > >> > > > > > > > > > alternatives
> > >> > > > > > > > > > > on the mailing list and in the KIP call, but this
> > >> vote is
> > >> > > > only
> > >> > > > > on
> > >> > > > > > > the
> > >> > > > > > > > > > > documented KIP:
> > >> > > > > > > > > > >
> > >> > > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > >
> > >> > > > >
> > >> > > >
> > >> >
> > >>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61337336
> > >> .
> > >> > > > > > > > > > > This
> > >> > > > > > > > > > > change will not be compatible with 0.9, but it
> will
> > >> > provide a
> > >> > > > > > > cleaner
> > >> > > > > > > > > API
> > >> > > > > > > > > > > long term for users to work with. This is really
> the
> > >> last
> > >> > > > > chance to
> > >> > > > > > > > > make
> > >> > > > > > > > > > an
> > >> > > > > > > > > > > incompatible change like this with 0.10 shortly
> on the
> > >> > way,
> > >> > > > but
> > >> > > > > > > > > > compatible
> > >> > > > > > > > > > > options (such as method overloading) could be
> brought
> > >> up
> > >> > > > again
> > >> > > > > in
> > >> > > > > > > the
> > >> > > > > > > > > > > future if we find it's needed.
> > >> > > > > > > > > > >
> > >> > > > > > > > > > > Thanks,
> > >> > > > > > > > > > > Jason
> > >> > > > > > > > > > >
> > >> > > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > > > >
> > >> > > > > > > > > --
> > >> > > > > > > > > Thanks,
> > >> > > > > > > > > Ewen
> > >> > > > > > > > >
> > >> > > > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> > >
> > >> > >
> > >> > > --
> > >> > > Grant Henke
> > >> > > Software Engineer | Cloudera
> > >> > > gr...@cloudera.com | twitter.com/gchenke |
> linkedin.com/in/granthenke
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Grant Henke
> > > Software Engineer | Cloudera
> > > gr...@cloudera.com | twitter.com/gchenke | linkedin.com/in/granthenke
> > >
> >
> >
> >
> > --
> > Grant Henke
> > Software Engineer | Cloudera
> > gr...@cloudera.com | twitter.com/gchenke | linkedin.com/in/granthenke
>

Reply via email to