Skip to content

Commit

Permalink
chore: prepare 2.39.2 (#1663)
Browse files Browse the repository at this point in the history
  • Loading branch information
jachro authored Aug 15, 2023
2 parents 9ca086b + 56d8d74 commit f7bcf4f
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 72 deletions.
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ object Dependencies {

object V {
val ammonite = "2.4.1"
val catsCore = "2.9.0"
val catsCore = "2.10.0"
val catsEffect = "3.5.1"
val catsEffectScalaTest = "1.5.0"
val circeCore = "0.14.5"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,16 @@ private object NewValuesCalculator extends NewValuesCalculator {
glData: DataExtract.GL,
maybePayloadData: Option[DataExtract.Payload]
): NewValues = NewValues(
maybeNewName(tsData, glData, maybePayloadData),
maybeNewName(tsData, glData),
Option.when(tsData.visibility != glData.visibility)(glData.visibility),
maybeNewDateModified(tsData, glData),
maybeNewDesc(tsData, glData, maybePayloadData),
maybeNewKeywords(tsData, glData, maybePayloadData),
maybeNewImages(tsData, glData, maybePayloadData)
)

private def maybeNewName(tsData: DataExtract.TS,
glData: DataExtract.GL,
maybePayloadData: Option[DataExtract.Payload]
) = {
val potentiallyNewName = maybePayloadData.getOrElse(glData).name
Option.when(tsData.name != potentiallyNewName)(potentiallyNewName)
}
private def maybeNewName(tsData: DataExtract.TS, glData: DataExtract.GL) =
Option.when(tsData.name != glData.name)(glData.name)

private def maybeNewDateModified(tsData: DataExtract.TS, glData: DataExtract.GL) =
tsData.maybeDateModified -> glData.maybeDateModified match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import io.renku.cli.model.Ontologies.{Schema => CliSchema}
import io.renku.eventlog.api.EventLogClient.EventPayload
import io.renku.graph.model.images.Image
import io.renku.graph.model.projects
import io.renku.jsonld.{Cursor, Property}
import org.typelevel.log4cats.Logger

private trait PayloadDataExtractor[F[_]] {
Expand Down Expand Up @@ -56,30 +55,20 @@ private class PayloadDataExtractorImpl[F[_]: MonadThrow: Logger] extends Payload
Option.empty[DataExtract.Payload].pure[F]
case Some(jsonLD) =>
jsonLD.cursor
.as(decodeList(dataExtract(slug)))
.as[List[DataExtract.Payload]]
.map(_.headOption)
.fold(logWarn(slug), _.pure[F])
}

private def dataExtract(slug: projects.Slug): JsonLDDecoder[DataExtract.Payload] =
private implicit lazy val dataExtract: JsonLDDecoder[DataExtract.Payload] =
JsonLDDecoder.entity(CliProject.entityTypes) { cur =>
for {
name <- cur.downField(CliSchema.name).as[Option[projects.Name]] >>= {
case None => decodingFailure(CliSchema.name, cur).asLeft
case Some(v) => v.asRight
}
maybeDesc <- cur.downField(CliSchema.description).as[Option[projects.Description]]
keywords <- cur.downField(CliSchema.keywords).as[Set[Option[projects.Keyword]]].map(_.flatten)
images <- cur.downField(CliSchema.image).as[List[Image]].map(_.sortBy(_.position).map(_.uri))
} yield DataExtract.Payload(slug, name, maybeDesc, keywords, images)
} yield DataExtract.Payload(maybeDesc, keywords, images)
}

private def decodingFailure(propName: Property, cur: Cursor) =
DecodingFailure(
DecodingFailure.Reason.CustomReason(show"no '$propName' property in the payload"),
cur.jsonLD.toJson.hcursor
)

private def logError(slug: projects.Slug): Throwable => F[Option[JsonLD]] =
Logger[F]
.error(_)(show"$categoryName: cannot process data from the payload for $slug")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ import io.renku.triplesstore.SparqlQuery
import java.time.Instant

private sealed trait DataExtract {
val slug: projects.Slug
val name: projects.Name
val maybeDateModified: Option[projects.DateModified]
val maybeDesc: Option[projects.Description]
val keywords: Set[projects.Keyword]
Expand Down Expand Up @@ -55,9 +53,7 @@ private object DataExtract {
override val maybeDateModified: Option[projects.DateModified] =
List(updatedAt, lastActivityAt).max.map(projects.DateModified.apply)
}
final case class Payload(slug: projects.Slug,
name: projects.Name,
maybeDesc: Option[projects.Description],
final case class Payload(maybeDesc: Option[projects.Description],
keywords: Set[projects.Keyword],
images: List[ImageUri]
) extends DataExtract {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ class EventProcessorSpec extends AsyncFlatSpec with AsyncIOSpec with should.Matc
eventPayloads[IO].map(_.generateOne) >>= { payload =>
givenPayloadFinding(event.slug, returning = payload.some.pure[IO])

val maybePayloadData = payloadDataExtracts(having = event.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption
givenPayloadDataExtraction(event.slug, payload, returning = maybePayloadData.pure[IO])

val updates = updateCommands.generateList()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import cats.syntax.all._
import io.renku.eventlog.api.events.Generators.redoProjectTransformationEvents
import io.renku.generators.CommonGraphGenerators.sparqlQueries
import io.renku.generators.Generators.Implicits._
import io.renku.graph.model.RenkuTinyTypeGenerators.{imageUris, projectDescriptions, projectKeywords, projectModifiedDates, projectNames, projectSlugs, projectResourceIds, projectVisibilities}
import io.renku.graph.model.RenkuTinyTypeGenerators.{imageUris, projectDescriptions, projectKeywords, projectModifiedDates, projectNames, projectResourceIds, projectSlugs, projectVisibilities}
import io.renku.graph.model.{entities, projects}
import org.scalacheck.Gen

Expand All @@ -48,12 +48,11 @@ private object Generators {
maybeImage <- imageUris.toGeneratorOfOptions
} yield DataExtract.GL(having, name, visibility, updatedAt, lastActivityAt, maybeDesc, keywords, maybeImage)

def payloadDataExtracts(having: projects.Slug = projectSlugs.generateOne): Gen[DataExtract.Payload] = for {
name <- projectNames
lazy val payloadDataExtracts: Gen[DataExtract.Payload] = for {
maybeDesc <- projectDescriptions.toGeneratorOfOptions
keywords <- projectKeywords.toGeneratorOfSet(min = 0)
imageUris <- imageUris.toGeneratorOfList()
} yield DataExtract.Payload(having, name, maybeDesc, keywords, imageUris)
} yield DataExtract.Payload(maybeDesc, keywords, imageUris)

def tsDataFrom(project: entities.Project): DataExtract.TS =
DataExtract.TS(
Expand Down Expand Up @@ -84,7 +83,7 @@ private object Generators {
}

def payloadDataFrom(data: DataExtract.TS): DataExtract.Payload =
DataExtract.Payload(data.slug, data.name, data.maybeDesc, data.keywords, data.images)
DataExtract.Payload(data.maybeDesc, data.keywords, data.images)

val sparqlUpdateCommands: Gen[UpdateCommand.Sparql] = sparqlQueries.map(UpdateCommand.Sparql)
val eventUpdateCommands: Gen[UpdateCommand.Event] = redoProjectTransformationEvents.map(UpdateCommand.Event)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,41 +34,22 @@ class NewValuesCalculatorSpec extends AnyWordSpec with should.Matchers with Opti

"new name" should {

"be None if ts and gl names are the same - no payload case" in {
"be None if ts and gl names are the same" in {

val tsData = tsDataExtracts().generateOne
val glData = glDataFrom(tsData)

NewValuesCalculator.findNewValues(tsData, glData, maybePayloadData = None) shouldBe NewValues.empty
}

"be None if ts and payload names are the same" in {

val tsData = tsDataExtracts().generateOne
val glData = glDataFrom(tsData).copy(name = projectNames.generateOne)
val payloadData = payloadDataFrom(tsData)

NewValuesCalculator.findNewValues(tsData, glData, payloadData.some) shouldBe NewValues.empty
}

"be gl name if ts and gl contains different names - no payload case" in {
"be gl name if ts and gl contains different names" in {

val tsData = tsDataExtracts().generateOne
val glData = glDataFrom(tsData).copy(name = projectNames.generateOne)

NewValuesCalculator.findNewValues(tsData, glData, maybePayloadData = None) shouldBe
NewValues.empty.copy(maybeName = glData.name.some)
}

"be payload name if all ts, gl and payload contains different names" in {

val tsData = tsDataExtracts().generateOne
val glData = glDataFrom(tsData).copy(name = projectNames.generateOne)
val payloadData = payloadDataFrom(tsData).copy(name = projectNames.generateOne)

NewValuesCalculator.findNewValues(tsData, glData, payloadData.some) shouldBe
NewValues.empty.copy(maybeName = payloadData.name.some)
}
}

"new visibility" should {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,7 @@ class PayloadDataExtractorSpec
(ioPayload >>=
(extractor.extractPayloadData(testProject.slug, _)))
.asserting(
_.value shouldBe DataExtract.Payload(testProject.slug,
testProject.name,
testProject.maybeDescription,
testProject.keywords,
testProject.images
)
_.value shouldBe DataExtract.Payload(testProject.maybeDescription, testProject.keywords, testProject.images)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectNames.generateOne
givenNewValuesFinding(tsData, glData, maybePayloadData, returning = NewValues.empty.copy(maybeName = newValue.some))
Expand All @@ -84,7 +84,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectVisibilities.generateOne
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -114,7 +114,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectModifiedDates(project.dateModified.value).generateSome
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -143,7 +143,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectDescriptions.generateSome
givenNewValuesFinding(tsData, glData, maybePayloadData, returning = NewValues.empty.copy(maybeDesc = newValue.some))
Expand Down Expand Up @@ -171,7 +171,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

givenNewValuesFinding(tsData, glData, maybePayloadData, returning = NewValues.empty.copy(maybeDesc = Some(None)))
val updatedTsData = tsData.copy(maybeDesc = None)
Expand All @@ -198,7 +198,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectKeywords.generateSet(min = 1)
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -230,7 +230,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = Set.empty[projects.Keyword]
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -259,7 +259,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = imageUris.generateList(min = 1)
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -291,7 +291,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = List.empty[Image]
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -320,7 +320,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

val newValue = projectKeywords.generateSet(min = 1)
givenNewValuesFinding(tsData,
Expand Down Expand Up @@ -349,7 +349,7 @@ class UpdateCommandsCalculatorSpec

val tsData = tsDataFrom(project)
val glData = glDataExtracts(project.slug).generateOne
val maybePayloadData = payloadDataExtracts(project.slug).generateOption
val maybePayloadData = payloadDataExtracts.generateOption

givenNewValuesFinding(tsData, glData, maybePayloadData, returning = NewValues.empty)

Expand Down

0 comments on commit f7bcf4f

Please sign in to comment.