question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Recent update has left an impossible upgrade conflict with akka

See original GitHub issue

This is not necessarily slick-pgs responsibility to address, I am detailing it here as it was slick-pg’s update that revealed the problem.

If you have the following installed dependencies:

slick-pg: 0.20.4 (previous)
akka-stream: 2.6.19 (latest)
slick: 3.3.3 (previous)

And you upgrade slick-pg to 0.21.0 (latest) you get the following incompatibility:

[error] 	* org.scala-lang.modules:scala-parser-combinators_2.13:2.1.1 (early-semver) is selected over 1.1.2
[error] 	    +- com.github.tminglei:slick-pg_jts_2.13:0.21.0       (depends on 2.1.1)
[error] 	    +- com.github.tminglei:slick-pg_core_2.13:0.21.0      (depends on 2.1.1)
[error] 	    +- com.github.tminglei:slick-pg_2.13:0.21.0           (depends on 2.1.1)
[error] 	    +- com.typesafe:ssl-config-core_2.13:0.4.3            (depends on 1.1.2)

This is because akka-stream keeps you at an old ssl-config-core version until you have upgraded to scala 3. This then includes an old version of scala-parser-combinators, causing the conflict.

The inability to update slick-pg also prevents you updating to slick 3.4.0 (latest):

[error] 	* com.typesafe.slick:slick_2.13:3.4.0 (pvp) is selected over {3.3.3}
[error] 	    +- com.lovejunk:persist:5161e92                       (depends on 3.4.0)
[error] 	    +- com.github.tminglei:slick-pg_jts_2.13:0.20.4       (depends on 3.3.3)
[error] 	    +- com.github.tminglei:slick-pg_core_2.13:0.20.4      (depends on 3.3.3)
[error] 	    +- com.github.tminglei:slick-pg_2.13:0.20.4           (depends on 3.3.3)
[error] 

This means for example that when work begins on slick for scala 3, users of akka-stream and slick-pg will be unable to upgrade in good time to a cross compatible version, making the ultimate migration to scala 3 much more difficult than it needs to be.

As it stands, dropping use of this library is our easiest and safest path forward, which I really do not want to do

Issue Analytics

  • State:closed
  • Created a year ago
  • Reactions:7
  • Comments:13 (5 by maintainers)

github_iconTop GitHub Comments

3reactions
Tvarohcommented, Sep 26, 2022

Created a PR #587

2reactions
MasseGuillaumecommented, Sep 11, 2022

I would recommend downgrading to scala-parser-combinators to 1.1.2. I can’t upgrade because akka/twitter are still on the old version.

If we take a look at the releases notes for 2.x https://github.com/scala/scala-parser-combinators/releases/tag/v2.0.0 https://github.com/scala/scala-parser-combinators/releases/tag/v2.1.0 https://github.com/scala/scala-parser-combinators/releases/tag/v2.1.1

there is nothing relevant worth pulling the update version

This is probably why twitter is sticking with the older version https://github.com/twitter/util/blob/53a1981dde3014241075b34162ecd8a20c24da71/build.sbt#L402-L411

Read more comments on GitHub >

github_iconTop Results From Across the Web

SBT Build error with AKKA conflict - scala - Stack Overflow
I have just tried from a new directory /tmp/aaa succesfully: $ cat > build.sbt name := "esc-index" version := "1.0" scalaVersion := "2.11.7" ......
Read more >
Migration Guide 2.4.x to 2.5.x - Documentation - Akka
You must first update all nodes to 2.4.16. It's not supported to update directly from an older version than 2.4.16 to 2.5.x. For...
Read more >
Configuration - Documentation - Akka
Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala.
Read more >
Classic Persistence - Documentation - Akka
Akka Persistence Classic, Event Sourcing with Akka, At-Least-Once delivery, snapshots, recovery and replay with Akka actors.
Read more >
Default configuration - Documentation - Akka
Each Akka module has a reference.conf file with the default values. ... akka.cluster.typed.receptionist { # Updates with Distributed Data are done with this ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found