pan3793 commented on PR #2785:
URL: https://github.com/apache/thrift/pull/2785#issuecomment-1521164034

   > Development on new versions of Thrift aren't for today. New releases of 
Thrift would be released to be adopted in the future.
   
   @ctubbsii That's a good point, but in the meanwhile, as a widely adopted 
component, *today*'s versions should get actively maintained too.
   
   What are the versions for *today*? And what's the support policy of 
*today*'s versions?
   
   Based on the statistics of [Maven 
Central](https://mvnrepository.com/artifact/org.apache.thrift/libthrift), the 
most adopted versions are 0.9.x and 0.12.x, can we treat them as versions for 
*today*? Can I request a security-patched/bug-fix version for them?
   
   <img width="1309" alt="image" 
src="https://user-images.githubusercontent.com/26535726/234173762-f2c40b42-7b57-4926-8591-ea0281f9aaf8.png";>
   
   Thrift 0.13.0 made lots of [breaking 
changes](https://github.com/apache/thrift/blob/v0.13.0/CHANGES.md#breaking-changes)
 including THRIFT-4725 in Java, that's one of the reasons why the lower 
versions are adopted widely today, even they have known CVEs. Drops Java8 
support is another significant breaking change.
   
   Another fact is the indirect consumer of Thrift may take a quite long time 
to adopt the new Thrift when breaking changes are introduced.
   
   Let's say that Apache Hive is a direct consumer of Apache Thrift, the latest 
stable release of Hive is 
[3.1.3](https://mvnrepository.com/artifact/org.apache.hive/hive-metastore/3.1.3),
 which adopts Thrift 0.9.3.
   
   Apache Spark depends on Hive 2.3.9(which also uses Thrift 0.9.3) now, Spark 
adopts Thrift 0.12.0 because it is compatible w/ 0.9.3, but can not use 0.13 or 
any above versions, because of the breaking change THRIFT-4725. (See detail in 
SPARK-37090)
   
   Assume the next Hive stable version 4.0.0 available in 2023, which likely 
ships [Thrift 
0.16](https://mvnrepository.com/artifact/org.apache.hive/hive-metastore/4.0.0-alpha-2),
 because it still supports Java8. It may take several years for the downstream 
project(e.g. Spark) of Hive to adopt Hive 4.0 and therefore adopts Thrift 0.16. 
But what about the downstream of Spark? Will 0.16 get maintained on those days?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to