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
> > >
> >
>

Reply via email to