Skip to content

Commit

Permalink
Merge pull request #270 from altoo-ag/wip-version-update-nvo
Browse files Browse the repository at this point in the history
Updates to latest versions
  • Loading branch information
danischroeter authored Oct 28, 2021
2 parents 73f1b91 + bd97337 commit 3b7833c
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 14 deletions.
13 changes: 6 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ akka-kryo-serialization - kryo-based serializers for Scala and Akka
[![Full test prior to release](https://github.com/altoo-ag/akka-kryo-serialization/actions/workflows/fullTest.yml/badge.svg)](https://github.com/altoo-ag/akka-kryo-serialization/actions/workflows/fullTest.yml)
[![Latest version](https://index.scala-lang.org/altoo-ag/akka-kryo-serialization/akka-kryo-serialization/latest.svg)](https://index.scala-lang.org/altoo-ag/akka-kryo-serialization/akka-kryo-serialization)

:warning: **We found issues when concurrently serializing Scala Options (see issue #237). If you use 2.0.0 you should upgrade to 2.0.1 asap.**

This library provides custom Kryo-based serializers for Scala and Akka. It can be
used for more efficient akka actor's remoting.

Expand Down Expand Up @@ -36,14 +34,15 @@ How to use this library in your project
To use this serializer, you need to do two things:

* Include a dependency on this library into your project:
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.2.0"`
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.3.0"`

* Register and configure the serializer in your Akka configuration file, e.g. `application.conf`.

We provide several versions of the library:

Version | Akka & Kryo Compatibility | Available Scala Versions | Tested with |
--------|---------------------------|---------------------------|----------------------------------------------------------------------------------------|
v2.3.x | Akka-2.5,2.6 and Kryo-5.2 | 2.12,2.13,3.0 | JDK: OpenJdk11,OpenJdk15 Scala: 2.12.15,2.13.6,3.0.2 Akka: 2.5.32,2.6.17 |
v2.2.x | Akka-2.5,2.6 and Kryo-5.1 | 2.12,2.13,3.0 | JDK: OpenJdk11,OpenJdk15 Scala: 2.12.14,2.13.6,3.0.0 Akka: 2.5.32,2.6.15 |
v2.1.x | Akka-2.5,2.6 and Kryo-5.0 | 2.12,2.13 | JDK: OpenJdk8,OpenJdk11,OpenJdk15 Scala: 2.12.13,2.13.4 Akka: 2.5.32,2.6.12 |
v2.0.x | Akka-2.5,2.6 and Kryo-5.0 | 2.12,2.13 | JDK: OpenJdk8,OpenJdk11,OpenJdk13 Scala: 2.12.12,2.13.3 Akka: 2.5.32,2.6.10 |
Expand All @@ -53,7 +52,7 @@ For past versions see [Legacy.md](Legacy.md).

From 2.1.0 onward we also provide support for akka-typed. This is done as a separate artifact so that the standard does not pull all the typed akka dependencies.
* Include:
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization-typed" % "2.2.0"`
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization-typed" % "2.3.0"`

Version 2.2.0 requires JDK 11 or higher in favor of optimizations using ByteBuffer.

Expand All @@ -70,11 +69,11 @@ You can find the JARs on [Sonatype's Maven repository](https://repo1.maven.org/m
To use the latest stable release of akka-kryo-serialization in sbt projects you just need to add
this dependency:

`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.2.0"`
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.3.0"`

To use with Akka 2.5 (or older versions of Akka 2.6) you need to exclude transitive dependencies to preven unintended inclusion of Akka 2.6:

`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.2.0" excludeAll (ExclusionRule("com.typesafe.akka", "akka-actor_2.13"), ExclusionRule("org.agrona", "agrona"))`
`libraryDependencies += "io.altoo" %% "akka-kryo-serialization" % "2.3.0" excludeAll (ExclusionRule("com.typesafe.akka", "akka-actor_2.13"), ExclusionRule("org.agrona", "agrona"))`

#### maven projects

Expand All @@ -93,7 +92,7 @@ To use the official release of akka-kryo-serialization in Maven projects, please
<dependency>
<groupId>io.altoo</groupId>
<artifactId>akka-kryo-serialization_2.13</artifactId>
<version>2.2.0</version>
<version>2.3.0</version>
</dependency>
```

Expand Down
14 changes: 7 additions & 7 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ val typesafeSnapshot = "Typesafe Snapshots Repository" at "https://repo.typesafe
val sonatypeSnapshot = "Sonatype Snapshots Repository" at "https://oss.sonatype.org/content/repositories/snapshots/"

val mainScalaVersion = "2.13.6"
val secondayScalaVersions = Seq("2.12.14", "3.0.0")
val secondayScalaVersions = Seq("2.12.15", "3.0.2") // note: Scala 3.1 is not forward compatible - publishing with 3.1 would force users to Scala 3.1

val kryoVersion = "5.1.1"
val defaultAkkaVersion = "2.6.15"
val kryoVersion = "5.2.0"
val defaultAkkaVersion = "2.6.17"
val akkaVersion =
System.getProperty("akka.build.version", defaultAkkaVersion) match {
case "default" => defaultAkkaVersion
Expand Down Expand Up @@ -63,17 +63,17 @@ lazy val coreDeps = Seq(
"com.esotericsoftware" % "kryo" % kryoVersion,
("com.typesafe.akka" %% "akka-actor" % akkaVersion).cross(CrossVersion.for3Use2_13),
"org.agrona" % "agrona" % "1.9.0", // should match akka-remote/aeron inherited version
"org.lz4" % "lz4-java" % "1.7.1",
"commons-io" % "commons-io" % "2.8.0" % "test",
("org.scala-lang.modules" %% "scala-collection-compat" % "2.4.1").cross(CrossVersion.for3Use2_13)
"org.lz4" % "lz4-java" % "1.8.0",
"commons-io" % "commons-io" % "2.11.0" % "test",
("org.scala-lang.modules" %% "scala-collection-compat" % "2.5.0").cross(CrossVersion.for3Use2_13)
)
lazy val typedDeps = Seq(
"com.typesafe.akka" %% "akka-actor-typed" % akkaVersion,
"com.typesafe.akka" %% "akka-actor-testkit-typed" % akkaVersion % "test"
).map(_.cross(CrossVersion.for3Use2_13))

lazy val testingDeps = Seq(
"org.scalatest" %% "scalatest" % "3.2.9" % "test",
"org.scalatest" %% "scalatest" % "3.2.10" % "test",
("com.typesafe.akka" %% "akka-testkit" % akkaVersion % "test").cross(CrossVersion.for3Use2_13),
("com.typesafe.akka" %% "akka-persistence" % akkaVersion % "test").cross(CrossVersion.for3Use2_13)
)
Expand Down
4 changes: 4 additions & 0 deletions migration-guide.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
akka-kryo-serialization - migration guide
=========================================

Migration from 2.1.x to 2.2.x
-----------------------------
* `java.util.Record` serialization compatibility has been broken by Kryo 5.2. If serialized records must be read, backwards compatibility can be enabled, see [kryo-5.2.0](https://github.com/EsotericSoftware/kryo/releases/tag/kryo-parent-5.2.0) release notes for more details.

Migration from 2.0.x to 2.1.x
-----------------------------
<i>No manual steps required</i>
Expand Down

0 comments on commit 3b7833c

Please sign in to comment.