I really hope we don't have to have separate source trees for some files,
but yeah it's an option too. OK, will start looking into changes we can
make now that don't break things now, and deprecations we need to make now
proactively.

I should also say that supporting Scala 2.13 will mean dependencies have to
support Scala 2.13, and that could take a while, because there are a lot.
In particular, I think we'll find our SBT 0.13 build won't make it, perhaps
just because of the plugins it needs. I tried updating to SBT 1.x and it
seemed to need quite a lot of rewrite, again in part due to how newer
plugin versions changed. I failed and gave up.

At some point maybe we figure out whether we can remove the SBT-based build
if it's super painful, but only if there's not much other choice. That is
for a future thread.


On Fri, May 10, 2019 at 1:51 PM Reynold Xin <r...@databricks.com> wrote:

> Looks like a great idea to make changes in Spark 3.0 to prepare for Scala
> 2.13 upgrade.
>
> Are there breaking changes that would require us to have two different
> source code for 2.12 vs 2.13?
>
>
> On Fri, May 10, 2019 at 11:41 AM, Sean Owen <sro...@gmail.com> wrote:
>
>> While that's not happening soon (2.13 isn't out), note that some of the
>> changes to collections will be fairly breaking changes.
>>
>> https://issues.apache.org/jira/browse/SPARK-25075
>> https://docs.scala-lang.org/overviews/core/collections-migration-213.html
>>
>> Some of this may impact a public API, so may need to start proactively
>> fixing stuff for 2.13 before 3.0 comes out where possible.
>>
>> Here's an example: Traversable goes away. We have a method
>> SparkConf.setAll(Traversable). We can't support 2.13 while that still
>> exists. Of course, we can decide to deprecate it with replacement (use
>> Iterable) and remove it in the version that supports 2.13. But that would
>> mean a little breaking change, and we either have to accept that for a
>> future 3.x release, or it waits until 4.x.
>>
>> I wanted to put that on the radar now to gather opinions about whether
>> this will probably be acceptable, or whether we really need to get methods
>> like that changed before 3.0.
>>
>> Also: there's plenty of straightforward but medium-sized changes we can
>> make now in anticipation of 2.13 support, like, make the type of Seq we use
>> everywhere explicit (will be good for a like 1000 file change I'm sure). Or
>> see if we can swap out Traversable everywhere. Remove MutableList, etc.
>>
>> I was going to start fiddling with that unless it just sounds too
>> disruptive.
>>
>> --------------------------------------------------------------------- To
>> unsubscribe e-mail: dev-unsubscr...@spark.apache.org
>>
>
>

Reply via email to