Thanks Ryan, let me take a try.

Best regards,
Saisai

Ryan Blue <rb...@netflix.com.invalid> 于2020年3月27日周五 上午12:15写道:

> Here’s how it was done before:
> https://github.com/apache/incubator-iceberg/blob/867ec79a5c2f7619cb10546b5cc7f7bbc7d61621/build.gradle#L225-L244
>
> That defines a set of projects called baselineProjects and applies
> baseline like this:
>
> configure(baselineProjects) {
>   apply plugin: 'com.palantir.baseline-checkstyle'
>   ...
> }
>
> The baseline config has since been moved into baseline.gradle
> <https://github.com/apache/incubator-iceberg/blob/master/baseline.gradle>
> so changes should probably go into that file. Thanks for looking into this!
>
> On Thu, Mar 26, 2020 at 6:23 AM Mass Dosage <massdos...@gmail.com> wrote:
>
>> We'd like to know how to do this too. We're working on the Hive
>> integration and Hive requires older versions of many of the libraries that
>> Iceberg uses (Guava, Calcite and Avro are being the most problematic).
>> We're going to need to shade some of these in the iceberg modules we depend
>> on but it would also be very useful to be able to override the versions in
>> the iceberg-hive and iceberg-mr modules so that they aren't locked to the
>> same versions as the rest of the projects.
>>
>> On Thu, 26 Mar 2020 at 01:53, Saisai Shao <sai.sai.s...@gmail.com> wrote:
>>
>>> Hi Ryan,
>>>
>>> As mentioned in the meeting, would you please point me out the way to
>>> make some submodules excluded from consistent-versions plugin.
>>>
>>> Thanks
>>> Saisai
>>>
>>> Anton Okolnychyi <aokolnyc...@apple.com.invalid> 于2020年3月18日周三 上午4:14写道:
>>>
>>>> I am +1 on having spark-2 and spark-3 modules as well.
>>>>
>>>> On 7 Mar 2020, at 15:03, RD <rdsr...@gmail.com> wrote:
>>>>
>>>> I'm +1 to separate modules for spark-2 and spark-3, after the 0.8
>>>> release.
>>>> I think it would be a big change in organizations to adopt Spark-3
>>>> since that brings in Scala-2.12 which is binary incompatible to previous
>>>> Scala versions. Hence this adoption could take a lot of time. I know in our
>>>> company we have no near term plans to move to Spark 3.
>>>>
>>>> -Best,
>>>> R.
>>>>
>>>> On Thu, Mar 5, 2020 at 6:33 PM Saisai Shao <sai.sai.s...@gmail.com>
>>>> wrote:
>>>>
>>>>> I was thinking that if it is possible to limit version lock plugin to
>>>>> only iceberg core related subprojects., seems like current
>>>>> consistent-versions plugin doesn't allow to do so. So not sure if there're
>>>>> some other plugins which could provide similar functionality with more
>>>>> flexibility?
>>>>>
>>>>>  Any suggestions on this?
>>>>>
>>>>> Best regards,
>>>>> Saisai
>>>>>
>>>>> Saisai Shao <sai.sai.s...@gmail.com> 于2020年3月5日周四 下午3:12写道:
>>>>>
>>>>>> I think the requirement of supporting different version should be
>>>>>> quite common. As Iceberg is a table format which should be adapted to
>>>>>> different engines like Hive, Flink, Spark. To support different versions 
>>>>>> is
>>>>>> a real problem, Spark is just one case, Hive, Flink could also be the 
>>>>>> case
>>>>>> if the interface is changed across major versions. Also version lock may
>>>>>> have problems when several engines coexisted in the same build, as they
>>>>>> will transiently introduce lots of dependencies which may be conflicted, 
>>>>>> it
>>>>>> may be hard to figure out one version which could satisfy all, and 
>>>>>> usually
>>>>>> they only confined to a single module.
>>>>>>
>>>>>>  So I think we should figure out a way to support such scenario, not
>>>>>> just maintaining branches one by one.
>>>>>>
>>>>>> Ryan Blue <rb...@netflix.com> 于2020年3月5日周四 上午2:53写道:
>>>>>>
>>>>>>> I think the key is that this wouldn't be using the same published
>>>>>>> artifacts. This work would create a spark-2.4 artifact and a spark-3.0
>>>>>>> artifact. (And possibly a spark-common artifact.)
>>>>>>>
>>>>>>> It seems reasonable to me to have those in the same build instead of
>>>>>>> in separate branches, as long as the Spark dependencies are not leaked
>>>>>>> outside of the modules. That said, I'd rather have the additional checks
>>>>>>> that baseline provides in general since this is a short-term problem. It
>>>>>>> would just be nice if we could have versions that are confined to a 
>>>>>>> single
>>>>>>> module. The Nebula plugin that baseline uses claims to support that, 
>>>>>>> but I
>>>>>>> couldn't get it to work.
>>>>>>>
>>>>>>> On Wed, Mar 4, 2020 at 6:38 AM Saisai Shao <sai.sai.s...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Just think a bit on this. I agree that generally introducing
>>>>>>>> different versions of same dependencies could be error prone. But I 
>>>>>>>> think
>>>>>>>> the case here should not lead to  issue:
>>>>>>>>
>>>>>>>> 1.  These two sub-modules spark-2 and spark-3 are isolated, they're
>>>>>>>> not dependent on either.
>>>>>>>> 2. They can be differentiated by names when generating jars, also
>>>>>>>> they will not be relied by other modules in Iceberg.
>>>>>>>>
>>>>>>>> So this dependency issue should not be the case here. And in Maven
>>>>>>>> it could be achieved easily. Please correct me if wrong.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Saisai
>>>>>>>>
>>>>>>>> Saisai Shao <sai.sai.s...@gmail.com> 于2020年3月4日周三 上午10:01写道:
>>>>>>>>
>>>>>>>>> Thanks Matt,
>>>>>>>>>
>>>>>>>>> If branching is the only choice, then we would potentially have
>>>>>>>>> two *master* branches until spark-3 is vastly adopted. That will 
>>>>>>>>> somehow
>>>>>>>>> increase the maintenance burden and lead to inconsistency. IMO I'm OK 
>>>>>>>>> with
>>>>>>>>> the branching way, just think that we should have a clear way to keep
>>>>>>>>> tracking of two branches.
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>> Saisai
>>>>>>>>>
>>>>>>>>> Matt Cheah <mch...@palantir.com.invalid> 于2020年3月4日周三 上午9:50写道:
>>>>>>>>>
>>>>>>>>>> I think it’s generally dangerous and error-prone to try to
>>>>>>>>>> support two versions of the same library in the same build, in the 
>>>>>>>>>> same
>>>>>>>>>> published artifacts. This is the stance that Baseline
>>>>>>>>>> <https://github.com/palantir/gradle-baseline> + Gradle
>>>>>>>>>> Consistent Versions
>>>>>>>>>> <https://github.com/palantir/gradle-consistent-versions> takes.
>>>>>>>>>> Gradle Consistent Versions is specifically opinionated towards 
>>>>>>>>>> building
>>>>>>>>>> against one version of a library across all modules in the build.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I would think that branching would be the best way to build and
>>>>>>>>>> publish against multiple versions of a dependency.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Matt Cheah
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *From: *Saisai Shao <sai.sai.s...@gmail.com>
>>>>>>>>>> *Reply-To: *"dev@iceberg.apache.org" <dev@iceberg.apache.org>
>>>>>>>>>> *Date: *Tuesday, March 3, 2020 at 5:45 PM
>>>>>>>>>> *To: *Iceberg Dev List <dev@iceberg.apache.org>
>>>>>>>>>> *Cc: *Ryan Blue <rb...@netflix.com>
>>>>>>>>>> *Subject: *Re: [Discuss] Merge spark-3 branch into master
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I didn't realized that Gradle cannot support two different
>>>>>>>>>> versions in one build. I think I did such things for Livy to build 
>>>>>>>>>> scala
>>>>>>>>>> 2.10 and 2.11 jars simultaneously with Maven. I'm not so familiar 
>>>>>>>>>> with
>>>>>>>>>> Gradle thing, I can take a shot to see if there's some hacky ways to
>>>>>>>>>> make it work.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Besides, are we saying that we will move to spark-3 support after
>>>>>>>>>> 0.8 release in the master branch to replace Spark-2, or we maintain 
>>>>>>>>>> two
>>>>>>>>>> branches for both spark-2 and spark-3 and make two releases? From
>>>>>>>>>> my understanding, the adoption of spark-3 may not be so fast, and 
>>>>>>>>>> there
>>>>>>>>>> still has lots users who stick on spark-2. Ideally, it might be 
>>>>>>>>>> better to
>>>>>>>>>> support two versions in a near future.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> Saisai
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Mass Dosage <massdos...@gmail.com> 于2020年3月4日周三 上午1:33写道:
>>>>>>>>>>
>>>>>>>>>> +1 for a 0.8.0 release with Spark 2.4 and then move on for Spark
>>>>>>>>>> 3.0 when it's ready.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, 3 Mar 2020 at 16:32, Ryan Blue <rb...@netflix.com.invalid>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Thanks for bringing this up, Saisai. I tried to do this a couple
>>>>>>>>>> of months ago, but ran into a problem with dependency locks. I 
>>>>>>>>>> couldn't get
>>>>>>>>>> two different versions of Spark packages in the build with baseline, 
>>>>>>>>>> but
>>>>>>>>>> maybe I was missing something. If you can get it working, I think 
>>>>>>>>>> it's a
>>>>>>>>>> great idea to get this into master.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Otherwise, I was thinking about proposing an 0.8.0 release in the
>>>>>>>>>> next month or so based on Spark 2.4. Then we could merge the branch 
>>>>>>>>>> into
>>>>>>>>>> master and do another release for Spark 3.0 when it's ready.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> rb
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Tue, Mar 3, 2020 at 6:07 AM Saisai Shao <
>>>>>>>>>> sai.sai.s...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi team,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I was thinking of merging spark-3 branch into master, also per
>>>>>>>>>> the discussion before we could make spark-2 and spark-3 coexisted 
>>>>>>>>>> into 2
>>>>>>>>>> different sub-modules. With this, one build could generate both 
>>>>>>>>>> spark-2 and
>>>>>>>>>> spark-3 runtime jars, user could pick either at preference.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> One concern is that they share lots of common code in read/write
>>>>>>>>>> path, this will increase the maintenance overhead to keep 
>>>>>>>>>> consistency of
>>>>>>>>>> two copies.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> So I'd like to hear your thoughts, any suggestions on it?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>>
>>>>>>>>>> Saisai
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> Ryan Blue
>>>>>>>>>>
>>>>>>>>>> Software Engineer
>>>>>>>>>>
>>>>>>>>>> Netflix
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Ryan Blue
>>>>>>> Software Engineer
>>>>>>> Netflix
>>>>>>>
>>>>>>
>>>>
>
> --
> Ryan Blue
> Software Engineer
> Netflix
>

Reply via email to