From 2c64ef510ef2722314ae82a8a35b230eeb64c12d Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 18 Oct 2023 16:15:30 +0100 Subject: [PATCH 1/6] allow test with pekko 1.0.x snapshot --- project/PekkoDependency.scala | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/project/PekkoDependency.scala b/project/PekkoDependency.scala index 3af4b4c0d..050c7a347 100644 --- a/project/PekkoDependency.scala +++ b/project/PekkoDependency.scala @@ -44,6 +44,7 @@ object PekkoDependency { case None => Option(System.getProperty("pekko.http.build.pekko.version")) match { case Some("main") => mainSnapshot + case Some("snapshot-1.0.x") => snapshot10x case Some("default") | None => Artifact(defaultVersion) case Some(other) => Artifact(other, true) } @@ -55,6 +56,7 @@ object PekkoDependency { val default = pekkoDependency(defaultVersion = minimumExpectedPekkoVersion) def docs = default + lazy val snapshot10x = Artifact(determineLatestSnapshot("1.0", false), true) lazy val mainSnapshot = Artifact(determineLatestSnapshot(), true) val pekkoVersion: String = default match { @@ -93,21 +95,22 @@ object PekkoDependency { } } - private def determineLatestSnapshot(prefix: String = ""): String = { + private def determineLatestSnapshot(prefix: String = "", allowRCVersions: Boolean = true): String = { import sbt.librarymanagement.Http.http import gigahorse.GigahorseSupport.url import scala.concurrent.Await import scala.concurrent.duration._ - val snapshotVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)(-(M|RC)(\d+))?\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r + lazy val snapshotRCVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)(-(M|RC)(\d+))?\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r + lazy val snapshotVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r // pekko-cluster-sharding-typed_2.13 seems to be the last nightly published by `pekko-publish-nightly` so if that's there then it's likely the rest also made it val body = Await.result(http.run(url( s"${Resolver.ApacheMavenSnapshotsRepo.root}org/apache/pekko/pekko-cluster-sharding-typed_2.13/")), 10.seconds).bodyAsString - val allVersions = - snapshotVersionR.findAllMatchIn(body) + val allVersions = if (allowRCVersions) { + snapshotRCVersionR.findAllMatchIn(body) .map { case Groups(full, ep, maj, min, _, _, tagNumber, offset) => ( @@ -117,8 +120,21 @@ object PekkoDependency { Option(tagNumber).map(_.toInt), offset.toInt) -> full } - .filter(_._2.startsWith(prefix)) - .toVector.sortBy(_._1) - allVersions.last._2 + } else { + snapshotVersionR.findAllMatchIn(body) + .map { + case Groups(full, ep, maj, min, offset) => + ( + ep.toInt, + maj.toInt, + min.toInt, + None, + offset.toInt) -> full + } + } + allVersions + .filter(_._2.startsWith(prefix)) + .toVector.sortBy(_._1) + .last._2 } } From 43581bac3425a026e7eca0f007f32d0ae076b80c Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 18 Oct 2023 16:40:46 +0100 Subject: [PATCH 2/6] Update PekkoDependency.scala --- project/PekkoDependency.scala | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/project/PekkoDependency.scala b/project/PekkoDependency.scala index 050c7a347..101774711 100644 --- a/project/PekkoDependency.scala +++ b/project/PekkoDependency.scala @@ -56,7 +56,7 @@ object PekkoDependency { val default = pekkoDependency(defaultVersion = minimumExpectedPekkoVersion) def docs = default - lazy val snapshot10x = Artifact(determineLatestSnapshot("1.0", false), true) + lazy val snapshot10x = Artifact(determineLatestSnapshot("1.0"), true) lazy val mainSnapshot = Artifact(determineLatestSnapshot(), true) val pekkoVersion: String = default match { @@ -95,46 +95,33 @@ object PekkoDependency { } } - private def determineLatestSnapshot(prefix: String = "", allowRCVersions: Boolean = true): String = { + private def determineLatestSnapshot(prefix: String = ""): String = { import sbt.librarymanagement.Http.http import gigahorse.GigahorseSupport.url import scala.concurrent.Await import scala.concurrent.duration._ - lazy val snapshotRCVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)(-(M|RC)(\d+))?\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r - lazy val snapshotVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r + val snapshotVersionR = """href=".*/((\d+)\.(\d+)\.(\d+)(-(M|RC)(\d+))?\+(\d+)-[0-9a-f]+-SNAPSHOT)/"""".r // pekko-cluster-sharding-typed_2.13 seems to be the last nightly published by `pekko-publish-nightly` so if that's there then it's likely the rest also made it val body = Await.result(http.run(url( s"${Resolver.ApacheMavenSnapshotsRepo.root}org/apache/pekko/pekko-cluster-sharding-typed_2.13/")), 10.seconds).bodyAsString - val allVersions = if (allowRCVersions) { - snapshotRCVersionR.findAllMatchIn(body) - .map { - case Groups(full, ep, maj, min, _, _, tagNumber, offset) => - ( - ep.toInt, - maj.toInt, - min.toInt, - Option(tagNumber).map(_.toInt), - offset.toInt) -> full - } - } else { + val allVersions = snapshotVersionR.findAllMatchIn(body) .map { - case Groups(full, ep, maj, min, offset) => + case Groups(full, ep, maj, min, _, _, tagNumber, offset) => ( ep.toInt, maj.toInt, min.toInt, - None, + Option(tagNumber).map(_.toInt).getOrElse(Integer.MAX_VALUE), offset.toInt) -> full } - } - allVersions .filter(_._2.startsWith(prefix)) .toVector.sortBy(_._1) - .last._2 + + allVersions.last._2 } } From b4b6403add301068aabfc46369cc2b7ff554ec6e Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 18 Oct 2023 16:42:20 +0100 Subject: [PATCH 3/6] Update PekkoDependency.scala --- project/PekkoDependency.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/project/PekkoDependency.scala b/project/PekkoDependency.scala index 101774711..8cfbab31e 100644 --- a/project/PekkoDependency.scala +++ b/project/PekkoDependency.scala @@ -119,8 +119,8 @@ object PekkoDependency { Option(tagNumber).map(_.toInt).getOrElse(Integer.MAX_VALUE), offset.toInt) -> full } - .filter(_._2.startsWith(prefix)) - .toVector.sortBy(_._1) + .filter(_._2.startsWith(prefix)) + .toVector.sortBy(_._1) allVersions.last._2 } From db4825ce12e5806242542f4e37e84311a46e4a32 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sun, 29 Oct 2023 10:09:34 +0000 Subject: [PATCH 4/6] rename config value to `1.0.x` --- project/PekkoDependency.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/PekkoDependency.scala b/project/PekkoDependency.scala index 8cfbab31e..a48dc5be5 100644 --- a/project/PekkoDependency.scala +++ b/project/PekkoDependency.scala @@ -44,7 +44,7 @@ object PekkoDependency { case None => Option(System.getProperty("pekko.http.build.pekko.version")) match { case Some("main") => mainSnapshot - case Some("snapshot-1.0.x") => snapshot10x + case Some("1.0.x") => snapshot10x case Some("default") | None => Artifact(defaultVersion) case Some(other) => Artifact(other, true) } From ee44a1eeb78fb68ca08e8bddaca39277ad64d47b Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sun, 29 Oct 2023 10:13:16 +0000 Subject: [PATCH 5/6] Update nightly.yml to include 1.0.x run --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 663406e9e..f5227c2fb 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -15,7 +15,7 @@ jobs: matrix: SCALA_VERSION: [2.12, 2.13, 3] JDK: [8, 11, 17, 20] - PEKKO_VERSION: [default, main] + PEKKO_VERSION: ['default', 'main', '1.0.x'] steps: - name: Checkout uses: actions/checkout@v4 From 5a1a533140e91ca69a2fb69cd1469bd2844fe4e7 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sun, 29 Oct 2023 10:47:36 +0000 Subject: [PATCH 6/6] Update PekkoDependency.scala --- project/PekkoDependency.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/project/PekkoDependency.scala b/project/PekkoDependency.scala index a48dc5be5..bc78124ef 100644 --- a/project/PekkoDependency.scala +++ b/project/PekkoDependency.scala @@ -108,6 +108,8 @@ object PekkoDependency { s"${Resolver.ApacheMavenSnapshotsRepo.root}org/apache/pekko/pekko-cluster-sharding-typed_2.13/")), 10.seconds).bodyAsString + // we use tagNumber set as Integer.MAX_VALUE when there is no tagNumber + // this ensures that RC and Milistone versions are treated as older than non-RC/non-milestone versions val allVersions = snapshotVersionR.findAllMatchIn(body) .map {