Hi Chia-Ping,

Sorry for the delayed response. I’ve checked all relevant JIRAs using the 
following Jira Query Language:

project = KAFKA AND status in (Resolved, Closed) AND fixVersion = 4.0.0 AND 
text ~ "Remove" order by updated DESC

Based on this, I checked the JIRAs related to removing deprecated methods in 
client modules. The minimum backward-compatible client versions for client 4.0 
are as follows:
- Producer: 3.3.0
  Reason: Partitioner#onNewBatch was deprecated in 3.3.0, and was removed by 
https://issues.apache.org/jira/browse/KAFKA-18295 
- Consumer: 2.4.0
  Reason: Consumer#committed was deprecated in 2.4.0, and was removed by 
https://issues.apache.org/jira/browse/KAFKA-17451
- Admin: 3.3.0
  Reason: ListConsumerGroupOffsetsOptions was deprecated in 3.3.0 and was 
removed by https://issues.apache.org/jira/browse/KAFKA-18291

You can find a list of all related JIRAs and pull requests in this Google Sheet:
https://docs.google.com/spreadsheets/d/1ZWNRk1rjWptjpGM2UtT0Q3lDULhrqkP_UfHr9roQW3M/edit?usp=sharing
 

There are also some public methods removed in 4.0, such as:
- KafkaFuture#Function, KafkaFuture#thenApply 
https://issues.apache.org/jira/browse/KAFKA-17903
- JmxReported(String) https://issues.apache.org/jira/browse/KAFKA-18077
, but I'm uncertain about how we should handle these.

Best,
Kuan-Po

On 2025/02/06 19:08:49 Chia-Ping Tsai wrote:
> hi Kuan-Po
> 
> any update? Now that an upgrade path for bridge versions exists, we can 
> introduce additional "conditions" to assist users in selecting the "best" 
> bridge version. For example, we can provide guidance on which bridge versions 
> offer backward compatibility with Kafka 4.0 client or are compatible with 
> Kafka 4.0 server.
> 
> Best,
> Chia-Ping
> 
> On 2025/01/22 04:48:36 Chia-Ping Tsai wrote:
> > > - If we support 2.0+ to 4.0 client/KS upgrade it's simpler, but of course 
> > > brokers cannot be 4.0 yet -- but I guess this would be something natural? 
> > > Given that the clients would be on 2.0, brokers cannot be 4.0 yet, or 
> > > clients would have crashed already... Thus, I think I slightly prefer 
> > > this one.
> > 
> > Using a major version as a bridge is a viable approach. We can emphasize 
> > the limitations of this method to guide users in selecting the most 
> > suitable bridge version.
> > 
> > > For KS, from an API compatibility POV, upgrading from anything older than 
> > > 3.6 might not work any longer (for DSL users; of course, depending on 
> > > what APIs they are using). And for PAPI, the old API was removed too, so 
> > > only if the new one is use (introduced in 2.7) a seamless upgrade would 
> > > work smoothly.
> > 
> > You make a valid point. The previous discussion overlooked the APIs that 
> > were removed in version 4.0.
> > 
> > We could also emphasize the BC advantages. As an example, users have the 
> > option of using version 2.7 as a bridge and subsequently upgrade without 
> > code alterations or recompilation. Of course, we need to check the version 
> > of other PAPI removal.
> > 
> > Best,
> > Chia-Ping
> > 
> > 
> > 
> > 
> > 
> > > Matthias J. Sax <mj...@apache.org> 於 2025年1月22日 凌晨2:55 寫道:
> > > For KS, from an API compatibility POV, upgrading from anything older than 
> > > 3.6 might not work any longer (for DSL users; of course, depending on 
> > > what APIs they are using). And for PAPI, the old API was removed too, so 
> > > only if the new one is use (introduced in 2.7) a seamless upgrade would 
> > > work smoothly.
> > 
> 

Reply via email to