Skip to content

Commit

Permalink
Update PekkoDependency.scala
Browse files Browse the repository at this point in the history
  • Loading branch information
pjfanning committed Oct 18, 2023
1 parent 2c64ef5 commit 43581ba
Showing 1 changed file with 8 additions and 21 deletions.
29 changes: 8 additions & 21 deletions project/PekkoDependency.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}
}

0 comments on commit 43581ba

Please sign in to comment.