Thanks for the feedback, as we all agree to move the Kyuubi Hive JDBC shaded client to a separated repo, the next things are: 1. Any suggestions for repo name? e.g. `incubating-kyuubi-hive-jdbc` 2. We may need to shade some modules in the future as Paul exampled, should we put them together or separately?
For question 2, I need to clarify that as far as I know, we have at least 2 kinds of artifacts to be shaded and separated 1) Popular 3rd-party library, e.g. guava; 2) Kyuubi self-components, which should be light(no-deps) and used by other components for verification. e.g. Kyuubi Hive JDBC shaded client, Kyuubi Spark TPC-DS Connector Thanks, Cheng Pan On Thu, May 19, 2022 at 5:30 PM hongdd <jn_...@163.com> wrote: > > +1 for option 2 > > > Thanks, > hongdd > > > ---- Replied Message ---- > | From | Paul Lam<paullin3...@gmail.com> | > | Date | 05/19/2022 14:42 | > | To | <dev@kyuubi.apache.org> | > | Subject | Re: [DISCUSS] Kyuubi Hive JDBC shaded client and development > experience | > Good to see we have a plan to improve this situation! > > I’m +1 to option 2. It may add some maintenance overhead, but it’s more > intuitive. > I see lots of projects have their own shaded repo, e.g. Flink[1] and > Presto[2]. > > [1] https://github.com/apache/flink-shaded > [2] https://github.com/prestodb/presto-hive-apache > > Best, > Paul Lam > > 2022年5月18日 13:45,Cheng Pan <pan3...@gmail.com> 写道: > > Hi Kyuubi developers, > > Recently, we notice that many new contributors are confused about > Kyuubi's development and debugging process, because they can not run > `mvn test` or run test on IDE(e.g. Jetbrains IDEA) directly like most > maven based Java projects, instead, they should run `mvn install` > before doing that. > > The root cause is Kyuubi Hive JDBC shaded client. We introduce this > module because the upstream Hive JDBC client has lots of transitive > dependencies which may pollute the user classpath and cause class > conflict. The Kyuubi Hive JDBC shaded client shaded and relocated all > Hive transitive classes to make it friendly to downstream projects and > users. > > The problem is, Maven and IDEA[1] do not work well with shaded > modules, the current workaround requires the developer to run `mvn > install` before testing. > > I have 2 ideas to solve the problem. > > 1. Some Kyuubi modules use Kyuubi Hive JDBC shaded client for testing, > we let them depend on the latest released version of Kyuubi Hive JDBC > shaded client rather than the project module, and introduce a profile > to switch back on CI environment for verification. > > 2. Separate the Kyuubi Hive JDBC shaded client to an independent Git > repo, and make it have an independent release cycle with the Kyuubi > main project. > > Further, now the Kyuubi Hive JDBC shaded client has room to improve, > i.e. it's easy to deserialize the metadata and record from thrift > format to Java format directly, we don't need to use Hive serde to do > such things, then we can drop those Hive dependencies rather than > shade them; as Kyuubi proposes to support etcd as service discover > server, we also need to support that in Kyuubi Hive JDBC client. > > What do you guys think of that? > > [1] https://youtrack.jetbrains.com/issue/IDEA-126596 > > Thanks, > Cheng Pan >