Skip to content

Commit

Permalink
chore: prepare 2.37.0 (#1584)
Browse files Browse the repository at this point in the history
  • Loading branch information
jachro authored Jun 29, 2023
2 parents d2233be + e32897d commit 91ca8b1
Show file tree
Hide file tree
Showing 172 changed files with 7,802 additions and 769 deletions.
20 changes: 14 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,15 +333,23 @@ sequenceDiagram
participant TriplesGenerator
participant TokenRepository
participant GitLab
participant TriplesStore
EventLog ->> EventLog: sends PROJECT_SYNC
activate EventLog
EventLog ->> TokenRepository: fetches access token
EventLog ->> GitLab: calls the Project Details
loop if there project path is NOT the same in EventLog and GitLab
EventLog ->> CommitEventService: sends COMMIT_SYNC for the new path
EventLog ->> TriplesGenerator: sends CLEAN_UP_REQUEST for the old path
end
EventLog ->> TokenRepository: fetches access token
EventLog ->> GitLab: calls the Project Details
loop if there project path is NOT the same in EventLog and GitLab
EventLog ->> CommitEventService: sends COMMIT_SYNC for the new path
EventLog ->> TriplesGenerator: sends CLEAN_UP_REQUEST for the old path
end
EventLog ->> TriplesGenerator: sends SYNC_REPO_METADATA
activate TriplesGenerator
TriplesGenerator ->> GitLab: fetches project metadata
TriplesGenerator ->> TriplesStore: fetches project metadata
TriplesGenerator ->> TriplesStore: sends update queries if values needs updating (not for visibility changes)
TriplesGenerator ->> EventLog: sends RedoProjectTransformation (only when visibility changes)
deactivate TriplesGenerator
deactivate EventLog
```

Expand Down
11 changes: 11 additions & 0 deletions acceptance-tests/src/test/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ global-commit-sync-delay-on-request = 0 minutes
services {
self {
url = "http://localhost:9001"

hook-validation-cache {
evict-strategy = oldest
ignore-empty-values = true
ttl = 0s
clear-config {
type = periodic
maximum-size = 0
interval = 10min
}
}
}
gitlab {
url = "http://localhost:2048"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,17 @@ import eu.timepit.refined.numeric.Positive
import io.renku.graph.acceptancetests.data.Project._
import io.renku.graph.model.entities.Project.ProjectMember
import io.renku.graph.model.projects.{GitLabId, Name, Path}
import io.renku.graph.model.testentities
import io.renku.graph.model.{projects, testentities}
import io.renku.tinytypes._
import io.renku.tinytypes.constraints._

import java.net.{MalformedURLException, URL}
import java.time.Instant

final case class Project(entitiesProject: testentities.RenkuProject,
id: GitLabId,
maybeCreator: Option[ProjectMember],
members: NonEmptyList[ProjectMember],
updatedAt: DateUpdated,
dateModified: projects.DateModified,
urls: Urls,
starsCount: StarsCount,
permissions: Permissions,
Expand All @@ -53,11 +52,6 @@ object Project {
final class StarsCount private (val value: Int) extends AnyVal with IntTinyType
implicit object StarsCount extends TinyTypeFactory[StarsCount](new StarsCount(_)) with NonNegativeInt[StarsCount]

final class DateUpdated private (val value: Instant) extends AnyVal with InstantTinyType
implicit object DateUpdated
extends TinyTypeFactory[DateUpdated](new DateUpdated(_))
with InstantNotInTheFuture[DateUpdated]

sealed trait Permissions extends Product with Serializable

object Permissions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ package object data extends TSData with ProjectFunctions {
projectGen: Gen[testentities.RenkuProject],
commitsCount: CommitsCount = CommitsCount.one
): Gen[Project] = for {
project <- projectGen
id <- projectIds
members <- projectMembers.toGeneratorOfNonEmptyList(max = 3)
updatedAt <- timestamps(min = project.dateCreated.value, max = now).toGeneratorOf[DateUpdated]
urls <- urlsObjects
starsCount <- starsCounts
permissions <- permissionsObjects
statistics <- statisticsObjects.map(_.copy(commitsCount = commitsCount))
project <- projectGen
id <- projectIds
members <- projectMembers.toGeneratorOfNonEmptyList(max = 3)
dateModified <- timestamps(min = project.dateCreated.value, max = now).toGeneratorOf[projects.DateModified]
urls <- urlsObjects
starsCount <- starsCounts
permissions <- permissionsObjects
statistics <- statisticsObjects.map(_.copy(commitsCount = commitsCount))
_ = if (project.members.nonEmpty)
throw new Exception(show"Test project should not have members")
_ = if (project.maybeCreator.flatMap(_.maybeGitLabId).nonEmpty)
Expand All @@ -60,7 +60,7 @@ package object data extends TSData with ProjectFunctions {
id,
maybeCreator = project.maybeCreator.map(_.to[ProjectMember]),
members,
updatedAt,
dateModified,
urls,
starsCount,
permissions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,18 @@ package object knowledgegraph {
import imageEncoders._

json"""{
"identifier": ${project.id.value},
"path": ${project.path.value},
"name": ${project.name.value},
"visibility": ${project.entitiesProject.visibility.value},
"created": ${(project.entitiesProject.dateCreated, project.entitiesProject.maybeCreator)},
"updatedAt": ${project.updatedAt.value},
"urls": ${project.urls.toJson},
"forking": ${project.entitiesProject.forksCount -> project.entitiesProject},
"keywords": ${project.entitiesProject.keywords.map(_.value).toList.sorted},
"starsCount": ${project.starsCount.value},
"permissions": ${toJson(project.permissions)},
"images": ${project.entitiesProject.images -> project.path},
"identifier": ${project.id.value},
"path": ${project.path.value},
"name": ${project.name.value},
"visibility": ${project.entitiesProject.visibility.value},
"created": ${(project.entitiesProject.dateCreated, project.entitiesProject.maybeCreator)},
"dateModified": ${project.dateModified.value},
"urls": ${project.urls.toJson},
"forking": ${project.entitiesProject.forksCount -> project.entitiesProject},
"keywords": ${project.entitiesProject.keywords.map(_.value).toList.sorted},
"starsCount": ${project.starsCount.value},
"permissions": ${toJson(project.permissions)},
"images": ${project.entitiesProject.images -> project.path},
"statistics": {
"commitsCount": ${project.statistics.commitsCount.value},
"storageSize": ${project.statistics.storageSize.value},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,9 @@ trait JsonEncoders {
"star_count" -> project.starsCount.value.asJson,
"path_with_namespace" -> project.path.value.asJson,
"created_at" -> project.entitiesProject.dateCreated.value.asJson,
"updated_at" -> project.entitiesProject.dateModified.value.asJson,
"creator_id" -> project.maybeCreator.map(_.gitLabId).asJson,
"last_activity_at" -> project.updatedAt.value.asJson,
"last_activity_at" -> project.dateModified.value.asJson,
"permissions" -> project.permissions.asJson,
"statistics" -> project.statistics.asJson,
"forked_from_project" -> (project.entitiesProject match {
Expand Down
2 changes: 1 addition & 1 deletion commit-event-service/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ COPY . .
RUN export PATH="/usr/local/sbt/bin:$PATH" && \
apk update && apk add --no-cache --virtual .build-dependencies bash wget tar git && \
mkdir -p "/usr/local/sbt" && \
wget -qO - "https://github.com/sbt/sbt/releases/download/v1.9.0/sbt-1.9.0.tgz" | tar xz -C /usr/local/sbt --strip-components=1 && \
wget -qO - "https://github.com/sbt/sbt/releases/download/v1.9.1/sbt-1.9.1.tgz" | tar xz -C /usr/local/sbt --strip-components=1 && \
sbt writeVersionToVersionSbt && \
sbt writeVersionToVersionConf && \
sbt "project commit-event-service" stage && \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ private final case class ProjectSearchInfo(id: projects.ResourceId
path: projects.Path,
visibility: projects.Visibility,
dateCreated: projects.DateCreated,
dateModified: projects.DateModified,
maybeCreator: Option[PersonInfo],
keywords: List[projects.Keyword],
maybeDescription: Option[projects.Description],
Expand All @@ -38,13 +39,24 @@ private final case class ProjectSearchInfo(id: projects.ResourceId
private object ProjectSearchInfo {

implicit val show: Show[ProjectSearchInfo] = Show.show {
case ProjectSearchInfo(id, name, path, visibility, dateCreated, maybeCreator, keywords, maybeDescription, images) =>
case ProjectSearchInfo(id,
name,
path,
visibility,
dateCreated,
dateModified,
maybeCreator,
keywords,
maybeDescription,
images
) =>
List(
show"id = $id".some,
show"name = $name".some,
show"path = $path".some,
show"visibility = $visibility".some,
show"dateCreated = $dateCreated".some,
show"dateModified = $dateModified".some,
maybeCreator.map(creator => show"creator = $creator"),
keywords match {
case Nil => None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ private object SearchInfoExtractor {
project.path,
project.visibility,
project.dateCreated,
project.dateModified,
project.maybeCreator.map(toPersonInfo),
project.keywords.toList,
project.maybeDescription,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ private object Encoders {
searchInfoQuad(ProjectSearchInfoOntology.pathProperty.id, info.path.asObject).some,
searchInfoQuad(ProjectSearchInfoOntology.visibilityProperty.id, info.visibility.asObject).some,
searchInfoQuad(ProjectSearchInfoOntology.dateCreatedProperty.id, info.dateCreated.asObject).some,
searchInfoQuad(ProjectSearchInfoOntology.dateModifiedProperty.id, info.dateModified.asObject).some,
maybeDescriptionQuad
).flatten ++ creatorQuads ++ keywordsQuads ++ imagesQuads
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ import io.renku.jsonld.ontology._

object ProjectSearchInfoOntology {

val nameProperty: DataProperty.Def = Project.Ontology.nameProperty
val pathProperty: DataProperty.Def = Project.Ontology.pathProperty
val visibilityProperty: DataProperty.Def = Project.Ontology.visibilityProperty
val dateCreatedProperty: DataProperty.Def = Project.Ontology.dateCreatedProperty
val keywordsProperty: DataProperty.Def = Project.Ontology.keywordsProperty
val descriptionProperty: DataProperty.Def = Project.Ontology.descriptionProperty
val creatorProperty: Property = Project.Ontology.creator
val imageProperty: Property = Project.Ontology.image
val nameProperty: DataProperty.Def = Project.Ontology.nameProperty
val pathProperty: DataProperty.Def = Project.Ontology.pathProperty
val visibilityProperty: DataProperty.Def = Project.Ontology.visibilityProperty
val dateCreatedProperty: DataProperty.Def = Project.Ontology.dateCreatedProperty
val dateModifiedProperty: DataProperty.Def = Project.Ontology.dateModifiedProperty
val keywordsProperty: DataProperty.Def = Project.Ontology.keywordsProperty
val descriptionProperty: DataProperty.Def = Project.Ontology.descriptionProperty
val creatorProperty: Property = Project.Ontology.creator
val imageProperty: Property = Project.Ontology.image

lazy val typeDef: Type = Type.Def(
Class(renku / "DiscoverableProject"),
Expand All @@ -46,6 +47,7 @@ object ProjectSearchInfoOntology {
pathProperty,
visibilityProperty,
dateCreatedProperty,
dateModifiedProperty,
keywordsProperty,
descriptionProperty
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ import io.renku.generators.Generators.Implicits._
import io.renku.generators.Generators._
import io.renku.graph.model._
import io.renku.graph.model.projects.Visibility
import io.renku.graph.model.testentities.{Dataset, RenkuProject, StepPlan}
import io.renku.graph.model.testentities.generators.EntitiesGenerators
import io.renku.http.rest.{SortBy, Sorting}
import io.renku.graph.model.testentities.{Dataset, RenkuProject, StepPlan}
import io.renku.http.rest.paging.PagingRequest
import io.renku.http.rest.paging.model._
import io.renku.http.rest.{SortBy, Sorting}
import io.renku.testtools.IOSpec
import io.renku.triplesstore._
import org.scalatest.matchers.should
Expand Down Expand Up @@ -616,6 +616,7 @@ class EntitiesFinderOldSpec
val projectDateCreated = timestamps(min = sinceAsInstant, max = Instant.now()).generateAs[projects.DateCreated]
val ds -> project = renkuProjectEntities(visibilityPublic)
.modify(replaceProjectDateCreated(to = projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.withActivities(
activityEntities(
stepPlanEntities().map(
Expand Down Expand Up @@ -657,6 +658,7 @@ class EntitiesFinderOldSpec
val projectDateCreated = timestamps(max = sinceAsInstant minus (2, DAYS)).generateAs(projects.DateCreated)
val _ -> project = renkuProjectEntities(visibilityPublic)
.modify(replaceProjectDateCreated(to = projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.withActivities(
activityEntities(
stepPlanEntities().map(
Expand Down Expand Up @@ -704,12 +706,10 @@ class EntitiesFinderOldSpec
val since = sinceParams.generateOne
val sinceAsInstant = Instant.from(since.value atStartOfDay ZoneOffset.UTC)

val projectDateCreated = timestamps(max = sinceAsInstant minus (2, DAYS)).generateAs(projects.DateCreated)
val matchingDS -> dsProject = renkuProjectEntities(visibilityPublic)
.modify(
replaceProjectDateCreated(to =
timestamps(max = sinceAsInstant minus (2, DAYS)).generateAs(projects.DateCreated)
)
)
.modify(replaceProjectDateCreated(projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.addDataset(
datasetEntities(provenanceImportedExternal)
.modify(
Expand Down Expand Up @@ -745,6 +745,7 @@ class EntitiesFinderOldSpec
val projectDateCreated = timestamps(max = untilAsInstant).generateAs[projects.DateCreated]
val ds -> project = renkuProjectEntities(visibilityPublic)
.modify(replaceProjectDateCreated(to = projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.withActivities(
activityEntities(
stepPlanEntities().map(
Expand Down Expand Up @@ -787,6 +788,7 @@ class EntitiesFinderOldSpec
.generateAs(projects.DateCreated)
val _ -> project = renkuProjectEntities(visibilityPublic)
.modify(replaceProjectDateCreated(to = projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.withActivities(
activityEntities(
stepPlanEntities().map(
Expand Down Expand Up @@ -832,12 +834,11 @@ class EntitiesFinderOldSpec
val until = Until(untilParams.generateOne.value minusDays 2)
val untilAsInstant = Instant.from(until.value atStartOfDay ZoneOffset.UTC)

val projectDateCreated =
timestampsNotInTheFuture(butYoungerThan = untilAsInstant plus (1, DAYS)).generateAs(projects.DateCreated)
val matchingDS -> dsProject = renkuProjectEntities(visibilityPublic)
.modify(
replaceProjectDateCreated(to =
timestampsNotInTheFuture(butYoungerThan = untilAsInstant plus (1, DAYS)).generateAs(projects.DateCreated)
)
)
.modify(replaceProjectDateCreated(projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.addDataset(
datasetEntities(provenanceImportedExternal)
.modify(
Expand Down Expand Up @@ -879,6 +880,7 @@ class EntitiesFinderOldSpec
val projectDateCreated = timestamps(min = sinceAsInstant, max = untilAsInstant).generateAs[projects.DateCreated]
val dsInternal -> dsExternal -> _ -> _ -> project = renkuProjectEntities(visibilityPublic)
.modify(replaceProjectDateCreated(to = projectDateCreated))
.modify(replaceProjectDateModified(projectModifiedDates(projectDateCreated.value).generateOne))
.withActivities(
activityEntities(
stepPlanEntities().map(
Expand Down
Loading

0 comments on commit 91ca8b1

Please sign in to comment.