-
Notifications
You must be signed in to change notification settings - Fork 232
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
Publish pekko based ReactiveMongo binaries #1245
Publish pekko based ReactiveMongo binaries #1245
Conversation
To minimize duplication: - Introduce neutral aliases for Akka actor dependencies - Pull in akka or pekko dependencies based on a build parameter - Publish pekko variants of all modules - Add pekko based permutations to integration test matrix
4285936
to
72b1a98
Compare
67ed756
to
72b1a98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thx for the contributions. Few comments.
actors-akka/src/main/scala/reactivemongo/actors/actor/package.scala
Outdated
Show resolved
Hide resolved
actors-akka/src/main/scala/reactivemongo/actors/util/package.scala
Outdated
Show resolved
Hide resolved
87d3301
to
f4b1814
Compare
actors-akka/src/test/scala/reactivemongo/actors/testkit/package.scala
Outdated
Show resolved
Hide resolved
Heya, what's blocking this at the moment? Is there a way I could help? |
|
The compiler crash is the biggest blocker I suppose. I've submitted a crash report scala/scala3#18555. |
Would releasing ReactiveMongo with Pekko support and Scala 3.3 support in a seperate PR / version an idea once this is resolved? I would like to move forward with my Akka migration and I'm on a Scala 2.x code base :) I think most users are using Scala 2.x anyway |
Some compiler crashes were resolved in 3.3.1, are you still having issues swith this version? |
I've tried 3.3.1. Unfortunately the issue is still there. |
Okay thanks, I am cloning the PR as we speak to see if I can diagnose/minimize the issue |
@cchantep I've found that this change SamTheisens@8cac59b#diff-c6447c7894adc9cfe97724d939b60a87a2aca260563123fefb254d6cf6e73097R17-R18 makes the project compile. Would that be an acceptable solution? |
Nice find! If this is not acceptable, what can be done is you can split out type Writer[A]
type Reader[A] into its own trait, and have the type Writer[A]
type Reader[A] and type Writer[A] = BSONDocumentWriter[A]
type Reader[A] = BSONDocumentReader[A] that way the change is isolated just to Scala 3 artifact. |
The API won't be changed, for temporary bug on the Scala 3 compiler. |
I don't think this change has an impact regarding MiMa because its a type alias, so if correct you can revert it without any implications (its basically adding a default type parameter which would always be overridden anyways). |
Type member are part of the API. |
I understand they are part of the API and it is changing the API, however the term "breaking" has a very explicit technical meaning (talking about bincompat/MiMa here) and I don't think its applicable here. Undefined type members (which is what Even if you were to hypothetically add this change and then remove it later, it also should not effect any code implementing this API because because you dealing with an un-implemented type member which at some point has to be evaluated to a proper type. In fact if you check the issue that caused the change at scala/scala3#16373, at least from what I understand the reason why Scala 3 is complaining in this case is exactly because it can't find a full implementation of that type after erasure (and its not like it can scan all possible implementations of that type outside of the project). Ill try and do some hacking on the Scala 3 compiler to see if I can avoid this check if we are dealing with undefined type members, but the reason I am bringing this up is that there is a chance that you may need to provide a default value for these undefined type members if a fix doesn't get accepted (I am mentioning this because not every change in the Scala 3 compiler is considered a regression, sometimes if the improvement is warranted then you have to deal with it). Obviously have to see what Scala 3 team says |
Please stop arguing, that's not constructive. From a maintainer point of view, it breaks the API, for an external issue that (should) being fix. |
because pekko requires scala >= 3.3, which can only be used if and when scala/scala3#18555 is addressed branch:
d0050ed
to
51e65f4
Compare
aab8ad1
to
6a130c3
Compare
The scala community is moving away from Akka. Scala 2.13 libraries can be used in Scala 3 projects and it's It's not certain when and if scala/scala3#18555 will be addressed. |
Thanks |
Thanks for merging @cchantep. Out of curiosity: are you planning to make a new |
I would be keen to see a release with these artifacts been published, a |
@Fristi It's published to sonatype already: <dependency>
<groupId>org.reactivemongo</groupId>
<artifactId>reactivemongo-actors-pekko_2.13</artifactId>
<version>1.1.0-RC12-SNAPSHOT</version>
</dependency> |
Pull Request Checklist
Fixes
Fixes #1244
Purpose
Create a pekko based ReactiveMongo distribution for those who want to adopt Pekko.
Background Context
Implementation details
Features
Some integration tests are failing intermittently with timeouts, but it doesn't seem related to the changes.
Related PR on documentation repo ReactiveMongo/reactivemongo-site#316