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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to