Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to Scala 3 #1104

Open
7 tasks
adpi2 opened this issue Nov 3, 2022 · 13 comments
Open
7 tasks

Upgrade to Scala 3 #1104

adpi2 opened this issue Nov 3, 2022 · 13 comments
Assignees

Comments

@adpi2
Copy link
Member

adpi2 commented Nov 3, 2022

Motivation

Compile with Scala 3

Identified Obstacles

  • We will probably need to make some major bump of some libraries and fix the breaking changes.
  • Some libraries have not yet been published for Scala 3 but we can try to use CrossVersion.for3Use2_13.
  • Some libraries may not be compatible with Scala 3 even with CrossVersion.for3Use2_13.

Implementation Guideline

  • Starting from core module
    • Upgrade the libraries to some Scala 3 compatible versions and fix all breaking changes.
    • Use CrossVersion.for3Use2_13 for libraries that are not yet compatible with Scala 3.
    • Change Scala version of the module to Scala 3
    • If CrossVersion.for3Use2_13 does not work it can be because of conflicting transitive dependencies, or it could be that we need to use Macros. Can we resolve those conflicting dependencies manually? Can we stop using the macros?
    • Run the tests
  • Start again with another module like infra or client until every module compiles to Scala 3.

Expectations

  • All tests should pass using Scala 3
@adpi2
Copy link
Member Author

adpi2 commented Feb 5, 2024

@mfirry Yes indeed and I don't think we have a license for it. So maybe we should replace it with Pekko.

@mfirry
Copy link
Contributor

mfirry commented Feb 5, 2024

I deleted the comment, but thanks @adpi2 for your reply. I'll think about this.

@adpi2
Copy link
Member Author

adpi2 commented Feb 5, 2024

Actually we should have a license for Akka soon. I'll keep you updated about it.

@mfirry
Copy link
Contributor

mfirry commented Feb 9, 2024

Thanks @adpi2. I did give it a try to "just" work on core (and the easy way for me was to sort of split it up on its own repo).
With the precious help from @TonioGela, we made it compile. Please have a look in your own good time https://github.com/mfirry/scaladex-core

As far as I can see all other modules need Akka.

@adpi2
Copy link
Member Author

adpi2 commented Feb 12, 2024

Thanks @adpi2. I did give it a try to "just" work on core (and the easy way for me was to sort of split it up on its own repo).
With the precious help from @TonioGela, we made it compile

Yay, that looks beautiful!

So I can confirm that we have a license for Akka but it is a temporary one. I would rather try to migrate to Pekko than to renew our Akka license every year.

@mfirry
Copy link
Contributor

mfirry commented Feb 12, 2024

Ok. How do you suggest one can go ahead? What order would you suggest projects should be worked? I see these: infra, webclient, server, core, data? Am I missing anything?

@adpi2
Copy link
Member Author

adpi2 commented Feb 12, 2024

Ok. How do you suggest one can go ahead? What order would you suggest projects should be worked? I see these: infra, webclient, server, core, data? Am I missing anything?

Here is the migration to Pekko: #1338

Before starting the migration I would check that every library is Scala 3 compatible, and update them if needed. For the one that are not Scala 3 compatible I would configure them with CrossVersion.for3Use2_13.

Then I would suggest this order of projects: core, webclient, infra, data, server.

@adpi2
Copy link
Member Author

adpi2 commented Feb 12, 2024

Here is the migration to Pekko: #1338

It's merged

@mfirry
Copy link
Contributor

mfirry commented Jun 21, 2024

Sorry... got lost in so many things. Has anyone moved in any direction here? If not, I'll try and make a proper step-by-step upgrade during the summer. Let me know @adpi2 and thanks.

@kannupriyakalra
Copy link
Collaborator

Hi @mfirry I am working on this and also documenting the steps :)

@mfirry
Copy link
Contributor

mfirry commented Jun 22, 2024

Ah cool. Anything public I can see and follow?

@kannupriyakalra
Copy link
Collaborator

Ah cool. Anything public I can see and follow?

not yet, will share soon :)

@mfirry
Copy link
Contributor

mfirry commented Sep 24, 2024

Hi @kannupriyakalra ... any update?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants