I think a simple approach here is fine. +1 for removing versioning for
other plugins.

On Fri, Jan 28, 2022 at 11:17 AM Mickael Maison <mickael.mai...@gmail.com>
wrote:

> Thanks Chris and Tom for the feedback.
>
> I'm having a hard time making a decision on this point!
>
> Re-reading your previous comments, I agree that we're lacking a
> contract on the version field, and we can see value (supporting
> multiple versions for example) if this was improved.
> But I'm starting to wonder if this should be handled in a different KIP.
>
> In this KIP, we can keep the existing Versioned interface for
> Connectors and either not display a version for other plugins or
> hard-code it to something like "N/A". Later if we think we're missing
> the version for other plugins we can decide how to handle it. While it
> would have been nice to harmonize all plugins, I don't think it's a
> requirement or blocker for the rest of the value of this KIP.
>
> Unless you disagree and feel like we need versions for all plugins,
> I'll update the KIP accordingly.
>
> Thanks,
> Mickael
>
>
>
>
>
> On Thu, Jan 27, 2022 at 9:00 PM Tom Bentley <tbent...@redhat.com> wrote:
> >
> > To be honest I'm very sceptical that you can evolve (without breaking
> > compatibility) from a situation of having a large number of plugins which
> > have already implemented version() to return whatever they please, to a
> > situation where you can rely on it as the basis for some feature to
> support
> > multiple versions of plugins. It would be much safer to introduce a new
> > versioning concept, perhaps using Jar manifests and
> > "Specification-Version", than to try to build on Versioned.
> >
> > So I would prefer Javadoc that clearly said that this version number was
> a
> > means for the plugin author to identify the version of their plugin in
> use
> > by users, for the purpose of bug reporting. That at least makes is clear
> > that Connect doesn't do anything with it except pass it through to the
> API.
> > It also makes clear that using "undefined" is a perfectly fine
> > implementation for PossiblyVersioned to have.
> >
> > Kind regards,
> >
> > Tom
> >
> >
> >
> >
> >
> >
> > On Thu, 27 Jan 2022 at 18:37, Chris Egerton <chr...@confluent.io.invalid
> >
> > wrote:
> >
> > > Hi Mickael,
> > >
> > > +1 for the warning at startup, it'd be great if we could get everyone
> to
> > > start versioning all of their components. Although given the current
> state
> > > of WARN-level logging in Connect (see
> > > https://issues.apache.org/jira/browse/KAFKA-7509) there might be too
> much
> > > noise for most people to notice, unfortunately. Still, better than
> nothing!
> > >
> > > I'm not sure it'd be wise to move quite so quickly with deprecating and
> > > then removing the PossiblyVersioned interface. In an ideal world
> everyone
> > > would update their converters, SMTs, and predicates as soon as they
> saw the
> > > warning, but there could be some plugins out there that aren't
> maintained
> > > anymore and would become incompatible with a Connect runtime that
> requires
> > > them to provide versions. I can imagine there might be some fairly
> trivial
> > > but valuable SMTs or converters that were written years ago and haven't
> > > been touched in some time but are still useful to Connect users today.
> > >
> > > I think it'd be fine to log a scary-looking warning message stating
> that
> > > the plugin may be incompatible with future versions of Connect, but
> perhaps
> > > we can leave the decision about how and when we actually create that
> > > incompatibility to a future KIP. If we take the example use case of
> loading
> > > multiple versions of the same plugin on the same worker, for example,
> that
> > > feature would obviously require plugins to provide versions, but we
> could
> > > potentially add some failsafe logic in order to still support
> versionless
> > > plugins with the understanding that it would not be possible to
> colocate
> > > multiple versions of them on the same worker.
> > >
> > > Cheers,
> > >
> > > Chris
> > >
> > > On Thu, Jan 27, 2022 at 7:43 AM Mickael Maison <
> mickael.mai...@gmail.com>
> > > wrote:
> > >
> > > > Hi Chris,
> > > >
> > > > Thanks for taking another look!
> > > >
> > > > That's a good point which I should have mentioned in the KIP. I think
> > > > we can have a PossiblyVersioned interface that extends Versioned and
> > > > has the default implementation. I'd like to also print a warning at
> > > > startup if a plugin does not override version(). Thanks for the
> > > > suggestion!
> > > >
> > > > I'm even considering whether PossiblyVersioned could be deprecated
> > > > immediately in order to be removed in the next major release. If so,
> > > > the warning message I mentioned would state that plugins not
> > > > overriding version() would stop working in the next major release.
> > > >
> > > > Thanks,
> > > > Mickael
> > > >
> > >
> > >
>

Reply via email to