> For this case, what was the reason that the 3-prior-release rule was
ignored?

According to KIP-970 (
https://cwiki.apache.org/confluence/display/KAFKA/KIP-970%3A+Deprecate+and+remove+Connect%27s+redundant+task+configurations+endpoint),
it seems the main reason to avoid "a bit of a maintenance burden to have
two different endpoints for the same purpose".

Best,
Chia-Ping


Matthias J. Sax <mj...@apache.org> 於 2025年3月3日 週一 上午3:57寫道:

> >> deliberately.
>
> For this case, what was the reason that the 3-prior-release rule was
> ignored?
>
>
> -Matthias
>
> On 3/1/25 11:29 PM, Chia-Ping Tsai wrote:
> > hi
> >
> >> If this Connect case is the only one that deviates from that rule, I
> would
> > recommended reverting it. But if there are many more cases, we may need
> to
> > look into them in more detail.
> >
> > I briefly checked the commit history, and this is the only one that needs
> > to be highlighted. Fortunately, it is easy to revert.
> >
> >> why was it removed? Oversight (ie, accidentally
> > too early) or deliberately?
> >
> > deliberately.
> >
> > I have left a common on the PR (
> > https://github.com/apache/kafka/pull/17412#issuecomment-2692600494)
> >
> > Best,
> > Chia-Ping
> >
> >
> > Matthias J. Sax <mj...@apache.org> 於 2025年3月2日 週日 上午6:32寫道:
> >
> >> Don't have a strong opinion about the Connect case.
> >>
> >> I guess the question is: why was it removed? Oversight (ie, accidentally
> >> too early) or deliberately? Also, what is the impact if we keep the API
> >> and revert the removal?
> >>
> >> IMHO, the 3-releases-rule can have exceptions, if there are good reason
> >> for it. I just don't have enough context about the change to judge.
> >>
> >>
> >>
> >>>> One more thing, 3.7 was released in Feb 2024 and hence it will be more
> >> than
> >>>> 12 months by the time 4.0 is released. Technically, it would be ok to
> >>>> remove APIs deprecated in 3.7.
> >>
> >> Not sure if this is a strong argument. We cannot time releases totally
> >> accurately, so the 3-prior-releases rule should be the "source of truth"
> >> IMHO, that just practically translated to "about 1 year". But as I said
> >> above, I also don't think we need to be dogmatic about it.
> >>
> >>
> >>
> >> -Matthias
> >>
> >> On 3/1/25 8:37 AM, Ismael Juma wrote:
> >>> One more thing, 3.7 was released in Feb 2024 and hence it will be more
> >> than
> >>> 12 months by the time 4.0 is released. Technically, it would be ok to
> >>> remove APIs deprecated in 3.7.
> >>>
> >>> Ismael
> >>>
> >>> On Sat, Mar 1, 2025, 8:34 AM Ismael Juma <m...@ismaeljuma.com> wrote:
> >>>
> >>>> Hi Chia-Ping,
> >>>>
> >>>> Is this Connect removal the only one that did not meet the stated
> >>>> requirement?
> >>>>
> >>>> We do indeed aim not to remove APIs deprecated within the last 12
> months
> >>>> before the next major release, but I'm not sure how strictly this is
> >>>> followed (since it's not enforced).
> >>>>
> >>>> If this Connect case is the only one that deviates from that rule, I
> >> would
> >>>> recommended reverting it. But if there are many more cases, we may
> need
> >> to
> >>>> look into them in more detail.
> >>>>
> >>>> Ismael
> >>>>
> >>>> On Fri, Feb 28, 2025, 7:10 PM Chia-Ping Tsai <chia7...@apache.org>
> >> wrote:
> >>>>
> >>>>> hi Matthias
> >>>>>
> >>>>> thanks for your updates. it looks great and readable.
> >>>>>
> >>>>> Regarding API compatibility, we state "we only provide API backward
> >>>>> compatibility for version 3.7, 3.8, and 3.9" However, within Connect
> >> APIs,
> >>>>> we have removed a public API that was deprecated by 3.7 [0][1].
> >>>>>
> >>>>> Since this KIP will likely include Connect APIs, it's important to
> >>>>> discuss this now. We could: 1) add extra descriptions to highlight
> the
> >>>>> difference for Connect APIs, or 2) revert the commit that removed the
> >>>>> public API for consistent documentation.
> >>>>>
> >>>>> WDYT?
> >>>>>
> >>>>> [0]
> >>>>>
> >>
> https://github.com/apache/kafka/commit/1c8bb61a43d3ad1fd7a10eb3947342ceba783c4e
> >>>>> [1]
> >>>>>
> >>
> https://github.com/apache/kafka/commit/4f1688742e75a147741fbdc307c5e85d2addb811
> >>>>>
> >>>>> Best,
> >>>>> Chia-Ping
> >>>>>
> >>>>> On 2025/02/28 22:44:22 "Matthias J. Sax" wrote:
> >>>>>> Thanks for pointing me to test Ismael. Glad to see I just missed it,
> >>>>> and
> >>>>>> that we indeed have a test for it.
> >>>>>>
> >>>>>>
> >>>>>>>> Feel free to edit the KIP directly – I'm totally fine with it.
> >>>>> Thanks a lot!
> >>>>>>
> >>>>>> Thanks Kuan-Po!
> >>>>>>
> >>>>>> I did update the wiki page and added more details. I did follow
> >> Bruno's
> >>>>>> suggestion, to be a little bit more elaborate, as the KIP page is
> >>>>> mainly
> >>>>>> for Kafka maintainers. -- We might want to do it differently in user
> >>>>>> facing docs, but detailed doc updates seems to be out-of-scope for
> the
> >>>>>> KIP discussion and we can take it on the corresponding PR, to
> simplify
> >>>>>> it further.
> >>>>>>
> >>>>>>
> >>>>>> I did keep the 2.8.x bridge release for KS for now.; we can still
> >>>>> change
> >>>>>> the recommendation and skip 2.8.x as bridge release of course, if we
> >>>>>> think it would be better for users.
> >>>>>>
> >>>>>>
> >>>>>> Curious the get your feedback.
> >>>>>>
> >>>>>>
> >>>>>> -Matthias
> >>>>>>
> >>>>>>
> >>>>>> On 2/28/25 8:15 AM, Kuan Po Tseng wrote:
> >>>>>>> Hi Matthias,
> >>>>>>>
> >>>>>>> Feel free to edit the KIP directly – I'm totally fine with it.
> Thanks
> >>>>> a lot!
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> Kuan-Po Tseng
> >>>>>>>
> >>>>>>> On 2025/02/28 07:35:10 "Matthias J. Sax" wrote:
> >>>>>>>> Thanks all. I am happy that we are making progress to close this
> >> out.
> >>>>>>>>
> >>>>>>>> As mentioned in my (long) email last Friday, I also think that the
> >>>>> KIP
> >>>>>>>> makes a lot of implicit assumptions, and it might benefit from
> begin
> >>>>>>>> more explicit, even explaining things that are "set in stone"
> >>>>> already,
> >>>>>>>> and the KIP does not change them (like API deprecation timelines
> and
> >>>>>>>> guarantees). But as Bruno said, it would help a lot to make it
> >>>>> easier to
> >>>>>>>> understand the KIP.
> >>>>>>>>
> >>>>>>>> Only a very small number of people seems to fully understand all
> the
> >>>>>>>> nuances, and it took quite a while to collect and curate all the
> >>>>> cases,
> >>>>>>>> to shape this KIP... And we know that a lot of people actually
> read
> >>>>>>>> KIPs, and the title for KIP-1124 is or sure click-bait...
> >>>>>>>>
> >>>>>>>> I am also happy to edit the wiki page directly if that's ok with
> >>>>> Kuan,
> >>>>>>>> to add background information that I believe is missing and
> >>>>> important.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> My overall understanding of the state of the KIP, ie, its actual
> >>>>> content
> >>>>>>>> seems to be, that there is a high level agreement, and the content
> >> of
> >>>>>>>> the KIP is ok.
> >>>>>>>>
> >>>>>>>> The only open question seems to be, if we want to recommend
> `2.8.x`
> >>>>> as a
> >>>>>>>> bridge release for Kafka Streams or not. As said in my email on
> >>>>> Friday,
> >>>>>>>> I am personally ok either way, with a preference to add `2.8.x` as
> >>>>>>>> bridge release, as it simplifies updating the code by avoiding
> >>>>>>>> compilation errors. With a 2.8.x bridge release, KS application
> code
> >>>>>>>> would _always_ compile, and the JavaDocs help a lot to guide users
> >>>>> how
> >>>>>>>> to migrate off deprecated APIs. -- With a direct upgrade from
> older
> >>>>>>>> versions to 3.9.x, code does not compile, and there is no guidance
> >> as
> >>>>>>>> the old methods (and corresponding JavaDocs) are already removed,
> >>>>> making
> >>>>>>>> it significant harder for user to update their code and make it
> >>>>> compile
> >>>>>>>> again.
> >>>>>>>>
> >>>>>>>> In the end, we would only _recommend_ 2.8.x as a bridge release to
> >>>>>>>> users, and there won't be any claim that an direct upgrade to
> 3.9.x
> >>>>> is
> >>>>>>>> not supported. If one wants to do this, it's tested, and ok. Knock
> >>>>>>>> yourself out -- there is for sure apps out there, that are just a
> >>>>> simple
> >>>>>>>> `builder.stream(...).filter(...).to(...)` the there won't be an
> API
> >>>>>>>> incompatibility issues.
> >>>>>>>>
> >>>>>>>> But I don't think it would be wise to _recommend_ a direct upgrade
> >> to
> >>>>>>>> 3.9.x for the reasons stated, as many apps are more complex.
> >>>>>>>>
> >>>>>>>> Thoughts?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> About testing: I did look into the system tests, and it seems we
> >>>>>>>> actually don't really have a real upgrade test for clients, ie, a
> >>>>> test
> >>>>>>>> that is running an consumer or producer with some older versions,
> >> and
> >>>>>>>> executes a rolling bounce to upgrade the app...
> >>>>>>>>
> >>>>>>>> But maybe such a test is not necessary for clients (compare to
> Kafka
> >>>>>>>> Streams), and the existing client-broker forward/backward
> >>>>> compatibility
> >>>>>>>> test are good enough? (At least in the last 10 years, it seems
> this
> >>>>> test
> >>>>>>>> coverage was sufficient?)
> >>>>>>>>
> >>>>>>>> I want to point out though that I agree with Bruno: If we assume
> >> that
> >>>>>>>> the client-broker compatibility tests are sufficient to verify
> >> client
> >>>>>>>> upgrades, we do effectively/implicitly test upgrading 2.0 (and
> older
> >>>>>>>> clients) to 4.0 using 3.9 and older brokers. These test coverage
> >> does
> >>>>>>>> not exist in a single branch so, but test from different branches
> >>>>>>>> combined, implicitly cover this. Nevertheless, is it tested.
> >>>>>>>>
> >>>>>>>> So it seems both Bruno and Ismael are right, depending how you
> look
> >>>>> at
> >>>>>>>> the problem. In any case, even if we test such an upgrade
> >>>>> implicitly, I
> >>>>>>>> agree that it's good to exclude these upgrades officially as
> >>>>> unsupported.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> -Matthias
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On 2/27/25 6:10 AM, Ismael Juma wrote:
> >>>>>>>>> Hi Bruno,
> >>>>>>>>>
> >>>>>>>>> A comment below.
> >>>>>>>>>
> >>>>>>>>> On Thu, Feb 27, 2025, 1:20 AM Bruno Cadonna <cado...@apache.org>
> >>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> BC2:
> >>>>>>>>>> Another aspect that confuses me in the KIP is the bridge version
> >>>>> for
> >>>>>>>>>> clients. If my broker version is 3.9.x, I can do a direct
> upgrade
> >>>>> from
> >>>>>>>>>> 1.0.x to 4.0.x (let apart the Java API compatibility mentioned
> >>>>> above).
> >>>>>>>>>> The 4.0.x release tests 4.0.x clients against 3.9.x brokers and
> >> the
> >>>>>>>>>> 3.9.x release tests 1.0.x clients against 3.9.x brokers. It is
> not
> >>>>> clear
> >>>>>>>>>> to me why we need a bridge release in this case.
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> We don't test client upgrades from 1.0.x to 4.0.x. They may work,
> >>>>> but it's
> >>>>>>>>> untested. Again, we are focusing on simplicity versus flexibility
> >>>>> for edge
> >>>>>>>>> cases. The number of people upgrading from 1.0 to 4.0 is very low
> >>>>> (if not
> >>>>>>>>> zero).
> >>>>>>>>>
> >>>>>>>>> That's why I still think the simple description I provided in my
> >>>>> other
> >>>>>>>>> message is the way to go
> >>>>>>>>>
> >>>>>>>>> Deprecated APIs may or may not affect users, so that has to be
> >>>>> evaluated on
> >>>>>>>>> a case by case basis.
> >>>>>>>>>
> >>>>>>>>> Ismael
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >>
> >
>
>

Reply via email to