Yeah, changes that are good generally can be submitted any time. Ismael
On Fri, Oct 8, 2021 at 7:35 AM Josep Prat <josep.p...@aiven.io.invalid> wrote: > Hi Ismael, > > Thanks for the reply. I don't think the demand is high at the moment, but > it will increase overtime. > What do you think about me submitting a PR now with only the changes I > mention in group a)? They are small changes like dropping extra > parenthesis, or stopping shadowing names. The resulting code would be > cleaner Scala that can cross compile. > > Thanks again, > ——— > Josep Prat > > Aiven Deutschland GmbH > > Immanuelkirchstraße 26, 10405 Berlin > > Amtsgericht Charlottenburg, HRB 209739 B > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > m: +491715557497 > > w: aiven.io > > e: josep.p...@aiven.io > > On Fri, Oct 8, 2021, 16:22 Ismael Juma <ism...@juma.me.uk> wrote: > > > Hi Josep, > > > > Thanks for looking into this. As you said, it seems like there are a > number > > of rough edges still. Do we have many users asking for this right now? If > > not, it may make sense to wait for things to get a bit more mature before > > adding the burden of a third Scala version. Ideally, we would drop Scala > > 2.12 before we add Scala 3 support. > > > > Ismael > > > > On Fri, Oct 8, 2021 at 6:07 AM Josep Prat <josep.p...@aiven.io.invalid> > > wrote: > > > > > Hi there, > > > For the last month I was actively working on migrating Apache Kafka to > > > Scala 3. For what I could see, Apache Kafka is the biggest mixed > > Java-Scala > > > project to attempt a migration to Scala 3. This means, a lot of > > regressions > > > in regards to Java and Scala interoperability at bytecode were found > > within > > > this task. You can take a look at the PR here: > > > https://github.com/apache/kafka/pull/11350 > > > Currently, the status of the migration is as follows: > > > > > > - All tests pass in Scala 3 except one ( > > > > > > > > > KafkaApis#getAllTopicMetadataShouldNotCreateTopicOrReturnUnknownTopicPartition). > > > Root cause for this is this bug with no easy workaround: Type erased > > for > > > by-name parameters lampepfl/dotty#13638 > > > <https://github.com/lampepfl/dotty/issues/13638> > > > - All tests pass in Scala 2 > > > - It still uses a snapshot build of Gradle with support for Scala 3 > > > - Spotbugs detected some new errors when the code was compiled with > > > Scala 3. Some are simply false positives, but a small subset seem > like > > > they > > > might be legit bugs in Scala 3. I still need to come up with a > > minimized > > > reproducer for those cases. > > > > > > As one can see, most of the changes are arguably low-level and no big > > > rewrite was needed. The biggest refactoring was splitting several > classes > > > into their own file. > > > > > > Changes made in this PR could be categorized in 3 different groups: > > > a) Needed changes because of changes in syntax or compiler being > > currently > > > more strict > > > b) Changes where a workaround is present but they are (or will be) > fixed > > in > > > upcoming Scala versions > > > c) Changes in the build file > > > > > > In order to have a smooth and manageable migration to Scala 3, I > propose > > > perform the migration in several steps: > > > > > > - Firstly apply all changes that would fall into category *a)* > > > - Once a new Scala version that incorporates the mentioned fixes is > > > released, revisit point changes in point *b)* > > > - Once Type erased for by-name parameters lampepfl/dotty#13638 > > > <https://github.com/lampepfl/dotty/issues/13638> is resolved or a > > > workaround is found and Gradle with Scala 3 support is released we > > could > > > tackle the final step and incorporate changes mentioned in point > *c)* > > > - After this, we would run the Scala Migration Tool to automatically > > > rewrite the code that uses removed syntax or language constructs. > (See > > > > > > > > > https://docs.scala-lang.org/scala3/guides/migration/tooling-migration-mode.html > > > ) > > > > > > > > > What do you think about this approach? Please feel free to share your > > > opinion on the proposed plan. > > > Also, I'm not sure if this should be written in a KIP form or not, no > > > public interfaces needed to be modified. > > > > > > > > > For extra information, these are the bugs reported to Scala 3 so far: > > > > > > - https://github.com/lampepfl/dotty/issues/13549 > > > - https://github.com/lampepfl/dotty/issues/13572 > > > - https://github.com/lampepfl/dotty/issues/13630 > > > - https://github.com/lampepfl/dotty/issues/13638 > > > - https://github.com/lampepfl/dotty/issues/13645 > > > > > > > > > Thank you in advance! > > > -- > > > > > > Josep Prat > > > > > > *Aiven Deutschland GmbH* > > > > > > Immanuelkirchstraße 26, 10405 Berlin > > > > > > Amtsgericht Charlottenburg, HRB 209739 B > > > > > > Geschäftsführer: Oskari Saarenmaa & Hannu Valtonen > > > > > > *m:* +491715557497 > > > > > > *w:* aiven.io > > > > > > *e:* josep.p...@aiven.io > > > > > >