From 65dfdc8cd4f4cf6fcc4be9554c132665b6ae8f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Zu=CC=88hlke?= Date: Tue, 3 Dec 2024 18:54:46 +0100 Subject: [PATCH] review --- docs/repo-specific-configuration.md | 4 ++-- .../core/application/StewardAlg.scala | 4 ++-- .../core/nurture/PullRequestRepository.scala | 2 +- .../core/repoconfig/RetractedArtifact.scala | 4 ++-- .../nurture/PullRequestRepositoryTest.scala | 18 ++++++++++++++++++ .../docs/mdoc/repo-specific-configuration.md | 4 ++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/docs/repo-specific-configuration.md b/docs/repo-specific-configuration.md index cf950cc22f..7fa70064f3 100644 --- a/docs/repo-specific-configuration.md +++ b/docs/repo-specific-configuration.md @@ -104,9 +104,9 @@ updates.pin = [ { groupId = "com.example", artifactId="foo", version = "1.1." } # Defaults to empty `[]` which mean Scala Steward will not ignore dependencies. updates.ignore = [ { groupId = "org.acme", artifactId="foo", version = "1.0" } ] -# The dependencies which match the given pattern are retracted: Their existing Pull-Request will be closed. +# The dependencies which match the given pattern are retracted. Their existing pull-request will be closed. # -# Each entry must have a `reason, a `doc` URL and a list of dependency patterns. +# Each entry must have a `reason`, a `doc` URL and a list of dependency patterns. updates.retracted = [ { reason = "Ignore version 3.6.0 as it is abandoned due to broken compatibility", diff --git a/modules/core/src/main/scala/org/scalasteward/core/application/StewardAlg.scala b/modules/core/src/main/scala/org/scalasteward/core/application/StewardAlg.scala index 158d2d49f8..e8f461491e 100644 --- a/modules/core/src/main/scala/org/scalasteward/core/application/StewardAlg.scala +++ b/modules/core/src/main/scala/org/scalasteward/core/application/StewardAlg.scala @@ -54,8 +54,8 @@ final class StewardAlg[F[_]](config: Config)(implicit dataAndFork <- repoCacheAlg.checkCache(repo) (data, fork) = dataAndFork _ <- nurtureAlg.closeRetractedPullRequests(data) - states <- pruningAlg.needsAttention(data) - result <- states.traverse_(states => + statesO <- pruningAlg.needsAttention(data) + result <- statesO.traverse_(states => nurtureAlg.nurture(data, fork, states.map(_.update)) ) } yield result, diff --git a/modules/core/src/main/scala/org/scalasteward/core/nurture/PullRequestRepository.scala b/modules/core/src/main/scala/org/scalasteward/core/nurture/PullRequestRepository.scala index 1b91ce6487..6762c0cd02 100644 --- a/modules/core/src/main/scala/org/scalasteward/core/nurture/PullRequestRepository.scala +++ b/modules/core/src/main/scala/org/scalasteward/core/nurture/PullRequestRepository.scala @@ -85,7 +85,7 @@ final class PullRequestRepository[F[_]](kvStore: KeyValueStore[F, Repo, Map[Uri, repo: Repo, allRetractedArtifacts: List[RetractedArtifact] ): F[List[(PullRequestData[Id], RetractedArtifact)]] = - kvStore.getOrElse(repo, Map.empty).map { pullRequets: Map[Uri, Entry] => + kvStore.getOrElse(repo, Map.empty).map { pullRequets => pullRequets.flatMap { case ( url, diff --git a/modules/core/src/main/scala/org/scalasteward/core/repoconfig/RetractedArtifact.scala b/modules/core/src/main/scala/org/scalasteward/core/repoconfig/RetractedArtifact.scala index b2e2657e94..a29486734d 100644 --- a/modules/core/src/main/scala/org/scalasteward/core/repoconfig/RetractedArtifact.scala +++ b/modules/core/src/main/scala/org/scalasteward/core/repoconfig/RetractedArtifact.scala @@ -34,10 +34,10 @@ final case class RetractedArtifact( } def retractionMsg: String = - s"""|Retracted because of: ${reason}. + s"""|PR retracted because of: ${reason}. | |Documentation: ${doc} - |""".stripMargin.trim + |""".stripMargin } object RetractedArtifact { diff --git a/modules/core/src/test/scala/org/scalasteward/core/nurture/PullRequestRepositoryTest.scala b/modules/core/src/test/scala/org/scalasteward/core/nurture/PullRequestRepositoryTest.scala index 1d8c42e403..53683770e0 100644 --- a/modules/core/src/test/scala/org/scalasteward/core/nurture/PullRequestRepositoryTest.scala +++ b/modules/core/src/test/scala/org/scalasteward/core/nurture/PullRequestRepositoryTest.scala @@ -150,6 +150,24 @@ class PullRequestRepositoryTest extends FunSuite { assertEquals(obtained.head._2, retractedPortableScala) } + test("getRetractedPullRequests with retractions for different version") { + val retractedPortableScala = RetractedArtifact( + "a reason", + "doc URI", + List( + UpdatePattern( + "org.portable-scala".g, + Some("sbt-scalajs-crossproject"), + Some(VersionPattern(exact = Some("2.0.0"))) + ) + ) + ) + val (_, obtained) = beforeAndAfterPRCreation(portableScala) { repo => + pullRequestRepository.getRetractedPullRequests(repo, List(retractedPortableScala)) + } + assertEquals(obtained, List.empty[(PullRequestData[Id], RetractedArtifact)]) + } + test("findLatestPullRequest ignores grouped updates") { val (_, result) = beforeAndAfterPRCreation(groupedUpdate(portableScala)) { repo => pullRequestRepository.findLatestPullRequest(repo, portableScala.crossDependency, "1.0.0".v) diff --git a/modules/docs/mdoc/repo-specific-configuration.md b/modules/docs/mdoc/repo-specific-configuration.md index 5d9adf96ff..5484468f1f 100644 --- a/modules/docs/mdoc/repo-specific-configuration.md +++ b/modules/docs/mdoc/repo-specific-configuration.md @@ -110,9 +110,9 @@ updates.pin = [ { groupId = "com.example", artifactId="foo", version = "1.1." } # Defaults to empty `[]` which mean Scala Steward will not ignore dependencies. updates.ignore = [ { groupId = "org.acme", artifactId="foo", version = "1.0" } ] -# The dependencies which match the given pattern are retracted: Their existing Pull-Request will be closed. +# The dependencies which match the given pattern are retracted. Their existing pull-request will be closed. # -# Each entry must have a `reason, a `doc` URL and a list of dependency patterns. +# Each entry must have a `reason`, a `doc` URL and a list of dependency patterns. updates.retracted = [ { reason = "Ignore version 3.6.0 as it is abandoned due to broken compatibility",