You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pekko.apache.org by GitBox <gi...@apache.org> on 2022/11/03 12:57:44 UTC

[GitHub] [incubator-pekko] pjfanning opened a new issue, #6: Upgrade scala versions

pjfanning opened a new issue, #6:
URL: https://github.com/apache/incubator-pekko/issues/6

   Change to
   * Scala 2.3.10 due to CVE - https://www.cvedetails.com/cve/CVE-2022-36944/
   * Scala 3.2.0 -- Scala team recommend using latest Scala 3 version - https://www.scala-lang.org/blog/2022/08/17/long-term-compatibility-plans.html
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] alexandru commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
alexandru commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302135402

   Bumping Scala 3's minor version isn't necessarily a good thing, some care is needed.
   
   If a project is using Scala `3.1.3`, bumping the Pekko dependency to a new version that uses Scala `3.2.0`, also forces the project on Scala `3.2.0` — backwards compatibility is provided, but not forward compatibility. In that sense, Scala 3 upgrades behave like libraries. This is unlike upgrading from Scala 2.3.9 to Scala 2.3.10.
   
   And care is needed because a compiler is unlike a library, as it may have bugs that don't manifest in the Pekko library's codebase, but that impacts downstream projects.
   
   I think right now an upgrade to Scala 3.2.0 is totally fine, given the state of the Scala 3 adoption, and that of Pekko, but for the future, it's good to keep in mind that such upgrades basically force the new Scala version on downstream users, and that may not be good for Scala versions that have issues.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade scala versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1477937428

   @pjfanning I am thinking of closing this ticket and making a specific one for Scala 3 updates since its a completely different kettle of fish with its own set of problems, wdyt?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1479650472

   So since we have already updated the Scala 2.12/2.13 to their latest, I am renaming this issue to just deal with Scala 3 (also to preserve the conversation).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] MateuszKubuszok commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
MateuszKubuszok commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302472832

   For now Scala 3 adoption is rather low (among other reasons - Akka HTTP is not released for _any_ version of Scala 3, and apparently it uses Scala 2 macros), so these updates wouldn't affect many people. Surely none that use Akka HTTP and would like to migrate to Pekko.
   
   According to the blog post - by the end of the year the compiler team want to release the first LTS version of Scala 3 (3.3). So the current situation is rather a temporary flux period before LTS kicks in. If 3.3 would be supported for at least 2 years as claimed, it would make sense to release Pekko for 3.3, stay on it until next LTS is adopted and then move on to next LTS.
   
   IMHO, moving fast _for now_ make sense. For many libraries blocker to update are macros and I notices that some important features stopped being `@experimental` only in 3.2.0, which would block importing certain functionalities before this version. And these libraries might slow down adoption for whole community, so I would expect for it to take off around the time that the compiler team want to release LTS, or even later.
   
   Once LTS program goes live this whole issue with upgrading should be solved. Pekko can just use the current LTS and maybe wait a bit when new LTS is released. That should give community enough time to bump their versions.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] pjfanning commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
pjfanning commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302152771

   @alexandru thanks for the comments. 
   
   Picking out comments from the article linked above, just in case.
   
   > You shouldn’t be afraid of updating it. Bumping the patch version (e.g. 3.1.2 -> 3.1.3) is a no-brainer. Bumping the minor version (e.g. 3.1.3 -> 3.2.0) requires the same considerations as changing the minor version of any other dependency, yet is generally advisable.
   
   So, upgrading to 3.2.0 is not zero risk but it pretty low on the scale of these things.
   
   I'm not going to do anything with this issue yet and it is probably best to discuss this item on the dev mailing list before proceeding to the PR stage.
   
   
   
   
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade scala versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1477930115

   So a PR is open that updates Scala 2.12 and 2.13 versions (see https://github.com/apache/incubator-pekko/pull/258). Its still open on what to do with Scala 3 , .e. should we just target Scala 3.3 LTS which is going to come out at any point now or Scala 3.2?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] jrudolph commented on issue #6: Upgrade Scala 3.x versions

Posted by "jrudolph (via GitHub)" <gi...@apache.org>.
jrudolph commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1496113648

   Thanks for taking the time to write this comprehensive response, @Kordyjan!
   
   A few comments:
   
   > I don't believe there is a reason to fear source-breaking changes now, as they are much less frequent than in the past
   
   That's probably true especially in the future. In the past, there were many (mostly minor) source compatibility issues between Scala 3 versions, so I am somewhat careful about these statements.
   
   > In the case of the compiler upgrade, there is no eviction, so every change needs to be made explicitly.
   
   You can see that both ways. No eviction means, a user of a library compiled with a newer version will instead get compiler errors like these:
   
   ```
   class file ... is broken, reading aborted with class dotty.tools.tasty.UnpickleException
   [error] TASTy signature has wrong version.
   [error]  expected: {majorVersion: 28, minorVersion: 1}
   [error]  found   : {majorVersion: 28, minorVersion: 2}
   [error] 
   [error] This TASTy file was produced by a more recent, forwards incompatible release.
   [error] To read this TASTy file, please upgrade your tooling.
   [error] The TASTy file was produced by Scala 3.2.1.
   ```
   
   That's not necessarily better than eviction, especially when you have multiple dependencies built with different versions of the Scala compiler and then need to figure out where to go based on those error messages.
   
   > The LTS line (that is 3.3)
   
   I would imagine that all these problems mostly go away when everyone adopts 3.3.x. We will see if the situation will be vastly better than with Scala 2. At least you will be able to use "old" 3.3 artifacts when you start to adopt 3.4 for any of the new features. Realistically, library authors will have to stay on 3.3 for as long as possible.
   
   (Besides, note, how the compatibility benefits of the LTS version are not a technical feature but a feature of the promise of stability and its execution.)
   
   Supporting 3.4 or later features in parts of your codebase will be somewhat hard. We will see how that will play out when the ecosystem has to move to the next LTS version after 3.3. With the current cross-versioning scheme (`_3`) that will mix partly incompatible versions into the same namespace, I can foresee some issues... Fortunately, that will be a long time away.
   
   > lichess.org is even using it in production. We need another RC because the linter still has some unsolved problems.
   
   It's crucial to understand that an application has vastly different requirements than a library. You can always run the test suite for your application to ensure that your application runs fine on a new version. Library authors cannot completely predict how their library is used and what constraints and problems the users will have. Therefore, the hard-learned conclusion is to be very conservative about adopting new versions of any transitive dependency and not pull transitive dependencies to higher versions than necessary for minor reasons.
   
   In summary, I agree 3.3 LTS is great and we should definitely make sure that our binaries work with it and eventually move to it ourselves.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] nvollmar commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
nvollmar commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302620758

   Scala 3.1.3 would be the safest bet for now. Anyone on Scala 3.1 or 3.2 could use it. As long as we cross compile for Scala 2.13 we can't use much Scala 3 specific features anyway.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] nvollmar commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
nvollmar commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302489647

   Many things like IDE support are still very lacky for Scala 3, but we also don’t gain much by going to the newest Scala version. As long as Pekko supports Scala 2.13, we’re very limited in what we can use without having to resort to splitting source files by scala version.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] alexandru commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
alexandru commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1303106514

   @nvollmar 
   > Many things like IDE support are still very lacky for Scala 3, but we also don’t gain much by going to the newest Scala version. As long as Pekko supports Scala 2.13, we’re very limited in what we can use without having to resort to splitting source files by scala version.
   
   Just to set some expectations, in my experience, it is impossible to target both Scala 2.13 and Scala 3 without resorting to source files specific per version. And the setup can get quite complicated. Which is fine, at least we can. Only the simplest of libraries can get away with only shared code that compiles in both.
   
   @MateuszKubuszok 
   > Akka HTTP from what I understand relies on parboiled2 for its macros - 2.4.1 was compiled with 3.2.1 and 2.4.0 was compiled with 3.1.1, so it might require some investigation.
   
   I was just thinking of this — we might not have a choice, but update, alongside our dependencies. For example, `akka-persistence` depends on [jackson-module-scala](https://github.com/FasterXML/jackson-module-scala), and the latest version also depends on Scala 3.2.0.
   
   I think this idea is good — try to depend on the 3.3 LTS, when it gets released, and until then, depend on intermediary versions 👍


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] nvollmar commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
nvollmar commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302251978

   I would argue against using 3.2.0 as it forces downstream users/projects to also upgrade to 3.2.0.
   Last time I checked, Scala 3.1 couldn't read TASTy files of 3.2 and failed to compile using that library.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302611880

   > According to the blog post - by the end of the year the compiler team want to release the first LTS version of Scala 3 (3.3). So the current situation is rather a temporary flux period before LTS kicks in. If 3.3 would be supported for at least 2 years as claimed, it would make sense to release Pekko for 3.3, stay on it until next LTS is adopted and then move on to next LTS.
   
   If this is the case then at least to me it seems like doing the first release with Scala 3.3 seems like the best option? In terms of both it being an LTS and maybe in terms of timing (i.e. by the time pekko-http is ready to be released). I wasn't aware that Scala 3 basically has different stability guarantees, it sounds like there is a risk that we may end up having to having a matrix if we don't pick a good Scala3 version and a lot of people end up depending on it?
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1482565738

   Made a discussion on mailing lis https://lists.apache.org/thread/mk88ybzx51k7x7x102drtbzh6l68k0xm.
   
   I do agree that wait and see is a mature stance for now.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] MateuszKubuszok commented on issue #6: Upgrade Scala 3.x versions

Posted by "MateuszKubuszok (via GitHub)" <gi...@apache.org>.
MateuszKubuszok commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1485304068

   As far as I can tell from talking to the compiler team developers, Scala 3.3 will not introduce any feature that was absent in 3.2. Some APIs marked as experimental will become stable and that's it - so 3.3 will be a stabilization of the current API, but with a guarantee that it will not be touched for a few years.
   
   From what I understand 3.3 is relatively near, so it makes sense to target it. Versions older than that like 3.1, or 3.0... they were basically a public beta, named otherwise to encourage any adoption and feedback loop. I don't see any point in using them, since they offer no:
   
    * bugfixes
    * stability
    * any other form of support
   
   especially if Pekko intends to be more on a stable-side than bleeding edge-side of development.
   
   I'd say of you'll pick LTS you could always ping compiler team members for advice whereas any issue with non-LTS Scala 3 could be shrug off as "EOL, not supported anymore".
   
   CC @Kordyjan - Scala 3 compiler team lead at Virtus Lab.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1561390202

   Closing this as done


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] Kordyjan commented on issue #6: Upgrade Scala 3.x versions

Posted by "Kordyjan (via GitHub)" <gi...@apache.org>.
Kordyjan commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1495986140

   Some thoughts after reading the thread.
   
   ### Source compatibility and minor version
   
   First, I wanted to state that source compatibility has nothing to do with adding new features or naming a release as "minor". This may be counterintuitive, but upgrading from 3.2.1 to 3.2.2 has the same probability of breaking your code as upgrading from 3.2.2 to 3.3.0. And contrary to what many believe, that probability is small.
   
   Let me show you where source incompatibilities come from to see that better. I can think of three distinct sources of such incompatibilities:
   
   1. Changes to the type inference. This is the most common reason for problems. The entire inference system is interconnected, and changing it to work as expected in one example can cause other, more complex examples to start behaving unexpectedly. This is made worse by the fact that there may be no distinction between what is expected and what is not for complex cases, as different people can expect different types to be inferred. The good thing is, usually, to fix source incompatibility there, you only need to add explicit type ascription.
   2. Bugfixes. Sometimes the compiler has bugs causing an acceptance of incorrect code. For example, inline parameters are not stable references, but all compiler versions up to 3.2.2 were, by mistake, treating them as such. Many libraries were relying on that fact, and from their point of view, 3.3.0 will introduce a new source incompatibility, even though it will only prevent them from writing potentially unsound code. We do what we can to be clear about those changes in the release announcements and to offer possible workarounds.
   3. Intentional changes. I can only recall a single case of that happening since 3.0.0: [this PR](https://github.com/lampepfl/dotty/pull/14840).  It solved one infuriating source of problems, changing the meaning of a very specific, niche code. Before we do anything like that again, we will ensure that it has a negligible impact on open-source projects.
   This "checking of impact" takes the form of building the entire Scala 3 open-source ecosystem with our Open Community Build. You can read more about it [here](https://virtuslab.com/blog/prevent-scala3-compiler-regressions-community-build/) and [there](https://virtuslab.com/blog/how-to-be-a-part-of-scalas-open-community-build/). Thanks to that, we will know about any real-life source incompatibility in advance and, when possible, take steps to ensure that it will not be included in a stable release.
   
   I don't believe there is a reason to fear source-breaking changes now, as they are much less frequent than in the past and communicated in advance. Also, they can happen both in a patch and in minor releases.
   
   ### The language version as a dependency
   
   The notion that upgrading the compiler version is much more dangerous and unpredictable than upgrading the version of the library your project depends on stems from the fact that Scala 2 was not following semantic versioning. This is no longer the case.
   Moreover, there is an argument that bugs in the compiler may not manifest in your project but may be visible in downstream projects. While this is true, it is precisely the same as with the library you and your downstream projects depend on. It can introduce bugs that are not visible to you, but people depending on your library can start to have problems because you upgraded your dependency. The eviction mechanism kicks in, and now they unknowingly use a newer (bugged) version of a dependency. In the case of the compiler upgrade, there is no eviction, so every change needs to be made explicitly. This means that bumping the minor version of the compiler is even safer than bumping the minor version of any other library.
   
   ### Older versions and stability
   
   Sometimes, I see claims that older versions can be more dependable because they are more mature. This could be a case if they received any updates. Bugs found in 3.1.3 will never be fixed in any future 3.1 release because there will be no future 3.1 releases. Some of them were, however, fixed in 3.2.0. There was no significant redesign or rewrite between 3.1.3 and 3.2.0. This version could have been named 3.1.4 if it hadn't introduced any forward-incompatible (but still backward-compatible) changes. This means that 3.2.0 was more mature than 3.1.3, even though Scala 3.1 was there for a year, and Scala 3.2 was a new thing.
   
   In terms of stability and correctness, the newer version of the compiler will always be better than the older one. Of course, we need to keep in mind that we may change the minimum required version of the compiler for downstream projects, but this is the same consideration as with any other dependency.
   
   ### What about LTS?
   
   The LTS line (that is 3.3) will be different than previous versions. Even though we will release 3.4 soon, 3.3 will still receive backward and forward-compatible patch releases for at least 3 years, possibly longer. Of course, we will keep our guarantee that all projects compiled with any version of 3.3 can be used as a dependency for projects compiled with any version of the compiler newer than and including 3.3.0.
   
   This is why I think the newest 3.3 version at the moment of release would be the best compiler version for Pekko. For the time being, I encourage you to use 3.3.0-RC3 for development and, later, 3.3.0-RC4 - which comes out next week.
   
   3.3.0-RC3 is stable. lichess.org is even using it in production. We need another RC because the linter still has some unsolved problems. Even though we have been pushing this release a few times already, we are confident that the stable 3.3.0 will be out before the end of April.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1482427401

   > So far, Scala 3.1 seems to be the preference. This issue has not been included in the v1.0.0 milestone.
   
   There hasn't been a formal vote but from what I can see there doesn't seem to be a clear direction either way. I spoke about this with @jrudolph and he summarised this conundrum when using Scala 3.3 in a very succinct way,
   
   > It's a promise for the future not for the past
   
   My argument here is that when it comes to Scala 3, Akka doesn't really have a "past". By that I mean I seriously doubt that there is any significant user base that is actually using Scala 3 (and we can even quantify this with download stats). I strongly agree with what https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302472832 said here, there isn't any real point in sticking with an old version of Scala 3 if barely anyone is using Akka + Scala 3.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] pjfanning commented on issue #6: Upgrade Scala 3.x versions

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1481474914

   So far, Scala 3.1 seems to be the preference. This issue has not been included in the v1.0.0 milestone.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1485313983

   > As far as I can tell from talking to the compiler team developers, Scala 3.3 will not introduce any feature that was absent in 3.2. Some APIs marked as experimental will become stable and that's it - so 3.3 will be a stabilization of the current API, but with a guarantee that it will not be touched for a few years.
   
   Judging from https://github.com/apache/incubator-pekko/pull/273 where we were forced to update to Scala 3.2 due to Jackson only targetting Scala 3.2, I can confirm that most (if not all?) of the changes were put into Scala 3.2, not 3.3 (I already made a PR against Scala 3.3 at https://github.com/apache/incubator-pekko/pull/270 just to see how painful it is, and it seems really tame).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302154170

   I think the CVE may work for a Pekko release of 1.0.x  pending on what we ultimately decide goes into 1.0.x (since its a CVE) but 3.2.0 makes sense for 1.1.x


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1496304307

   @Kordyjan 
   
   > This is why I think the newest 3.3 version at the moment of release would be the best compiler version for Pekko. For the time being, I encourage you to use 3.3.0-RC3 for development and, later, 3.3.0-RC4 - which comes out next week.
   
   Incase you may have missed this, we already have a version for Pekko 3.3.0-RC3 so far our CI hasn't picked up anything (you can see it here https://github.com/apache/incubator-pekko/pull/270)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] He-Pin commented on issue #6: Upgrade Scala 3.x versions

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1481458266

   I think we can keep it as 3.1.x in the pekko 1.0.x release, and then upgrade to 3.2.x in pekko 1.1.0? 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] pjfanning commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
pjfanning commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302588390

   Thanks @MateuszKubuszok for the detailed status update. akka-http is not yet released with Scala 3 support but the core akka libs do support Scala 3.
   
   After I do some experimentation, I might look at adding Pekko to the [Dotty Community Build](https://github.com/lampepfl/dotty/tree/main/community-build).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] He-Pin commented on issue #6: Upgrade Scala 3.x versions

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1487268169

   https://contributors.scala-lang.org/t/stable-presentation-compiler-api/6139
   Some support only start with 3.3.0


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] jrudolph commented on issue #6: Upgrade Scala 3.x versions

Posted by "jrudolph (via GitHub)" <gi...@apache.org>.
jrudolph commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1482541065

   I guess we shouldn't overthink it. Ultimately, it is reasonable to move to 3.3 because it will be the best maintained version for a long while. For now there is no 3.3 out, so there is no action needed or possible. AFAIK there are no known problems with using the older versions for now, so no need for functional reasons as well. There will be no full non-experimental Scala 3 support for Pekko 1.0.0 anyway, so I'd say let's reconsider for 1.1.0 and see how stable Scala 3.3 has become until then.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] Kordyjan commented on issue #6: Upgrade Scala 3.x versions

Posted by "Kordyjan (via GitHub)" <gi...@apache.org>.
Kordyjan commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1496289023

   > That's not necessarily better than eviction, especially when you have multiple dependencies built with different versions of the Scala compiler and then need to figure out where to go based on those error messages.
   
   I agree that the error message needs some improvements. It should only contain a path to the offending file, the classpath entry from which the file comes, the current version of the compiler, and the version of the compiler that was used to produce the offending file. The details about tasty signatures should be hidden behind the `--explain` flag. I'm, of course, open to any suggestion on how it can be further improved.
   
   > It's crucial to understand that an application has vastly different requirements than a library.
   
   I wasn't clear, but I intended to suggest that if Pekko is to be released on 3.3.0, it is a good idea to develop it using 3.3.0-RCx. That would allow catching potential problems early when there is still some possibility they are fixed before the stable release. The lichess bit was only a curiosity, showing that 3.3.0 can be trusted and there is nothing inherently wrong with it (some may think that way seeing how much work it takes to prepare RC4). 
   
   > Fortunately, that will be a long time away.
   
   It definitely will be long time away. 3.3 LTS will receive patch updates for at least a year after the release of the next LTS. We will see how hard the maintenance would be, but I'm optimistic and think that the guaranteed year is an understatement.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] alexandru commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
alexandru commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302185016

   @pjfanning 
   > upgrading to 3.2.0 is not zero risk but it pretty low on the scale of these things.
   
   I kind of disagree with their blog post, as it's not low risk, because new compiler versions can introduce source-level regressions. The difference between a library and the compiler, is that libraries are dynamically linked, at runtime. For this reason, a tranzitive dependency cannot break your source code, but compiler update can.
   
   For example, here's an issue that broke my code when upgrading from `3.0.x` to `3.1.2`, and it was close to be considered a feature: https://github.com/lampepfl/dotty/issues/15160
   
   Downstream users may be able to fix such instances, but if an upgrade breaks source compatibility, then in my view that's a major version, not a minor one (according to semver).
   
   ---
   
   Again, 3.2.0 is fine for now, all I'm saying is that we can't be very relaxed about upgrading these versions. I would feel better if we let new versions stabilize a little.
   
   And I also don't think we need further discussions, it's a simple update IMO, and for now the Scala 3 adoption of Akka is probably very low anyway, so might as well update it now, rather than later. But it's something to keep in mind.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] jrudolph commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
jrudolph commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1303186103

   On Fri, Nov 4, 2022 at 9:21 AM Alexandru Nedelcu ***@***.***>
   wrote:
   
   > @MateuszKubuszok <https://github.com/MateuszKubuszok>
   >
   > Akka HTTP from what I understand relies on parboiled2 for its macros -
   > 2.4.1 was compiled with 3.2.1 and 2.4.0 was compiled with 3.1.1, so it
   > might require some investigation.
   >
   > I was just thinking of this — we might not have a choice, but update,
   > alongside our dependencies. For example, akka-persistence depends on
   > jackson-module-scala <https://github.com/FasterXML/jackson-module-scala>,
   > and the latest version also depends on Scala 3.2.0.
   >
   > I think this idea is good — try to depend on the 3.3 LTS, when it gets
   > released, and until then, depend on intermediary versions 👍
   >
   >
   This is a good point. Another point is that Akka's Scala 3 support has so
   far been experimental and incomplete so expectations on compatibility are
   low. Until we make the first release, I think we should grant ourselves the
   flexibility of tracking the latest version of Scala 3. Not least, because
   Scala 3 has been somewhat unstable and we hit many regressions during the
   akka-http migration so we might have to take whatever works...
   
   Incidentally, Akka HTTP right now contains a copy of parboiled2 in its
   sources (with some slight additions). This decision was originally made on
   the grounds that Akka should not have many dependencies on Scala libraries,
   so it can be released quickly after a new (incompatible) Scala versions
   comes up. This point does not seem as important as before, so I'd suggest
   to move upstream parboiled2 when possible.
   
   I created https://github.com/apache/incubator-pekko-http/issues/1 to track
   this.
   
   > Message ID: ***@***.***>
   >
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] MateuszKubuszok commented on issue #6: Upgrade scala versions

Posted by GitBox <gi...@apache.org>.
MateuszKubuszok commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1302701657

   > I wasn't aware that Scala 3 basically has different stability guarantees, it sounds like there is a risk that we may end up having to having a matrix if we don't pick a good Scala3 version and a lot of people end up depending on it?
   
   Scala 2 used `epoch.major.minor` version convention. Scala 3 has `major.minor.patch`.
   
   So there is no 3.0/3.1/3.2/etc cross-compilation - the assumption is that:
   
   * you can compile against the same minor version with backward- and forward-compatibility: 3.1.3 dependency against 3.1.0 code, 3.0.0 dependency against 3.0.1 code, etc
   * within the same major version you always have backward-compatibility: 3.1.3 dependency can be used in 3.1.3 project, but also 3.2.0 project and in future against 3.3.0 project
   
   It means that you should use the lowest version that you can get away with to not force people to update their build unnecessarily. If it would be e.g. 3.1.3 then there is a case to use 3.1.3 for you project and not update it.
   
   At the same time, before 3.3 there is no LTS version planned. Meaning that if there are bugs, regressions, security vulnerabilities - they won't be backported to versions prior to 3.3, once 3.3 is released. If these issues appear in code compiled with e.g. 3.1.3 when 3.3 will be already released, there won't be any new release for 3.1 (or 3.2) fixing them. It all mirrors the JVM approach where you have LTS for Java 11 and Java 17 but intermediate versions are EOLed rather fast, and while you are encouraged to test with them, you are not given any long term support guarantees for them.
   
   So while thing will be much clearer after the release of 3.3, right now we are living in the period of versions that can be used for any future development but will be supported for at best next few months.
   
   Akka core might get away with 3.1.3 or earlier.
   
   Akka HTTP from what I understand relies on parboiled2 for its macros - 2.4.1 was compiled with 3.2.1 and 2.4.0 was compiled with 3.1.1, so it might require some investigation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pekko.apache.org
For additional commands, e-mail: dev-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich closed issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich closed issue #6: Upgrade Scala 3.x versions
URL: https://github.com/apache/incubator-pekko/issues/6


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


[GitHub] [incubator-pekko] mdedetrich commented on issue #6: Upgrade Scala 3.x versions

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on issue #6:
URL: https://github.com/apache/incubator-pekko/issues/6#issuecomment-1487612057

   > https://contributors.scala-lang.org/t/stable-presentation-compiler-api/6139 Some support only starts with 3.3.0
   
   Indeed that would be another advantage, especially for metals users since it would mean that editors which use metals will be able to work with Pekko for a long amount of time when it comes to Scala 3 (as described in the link the alternative which is what happens today is that metals only supports the latest x versions of a Scala epoch/major due to the internal compiler api's being unstable)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org