Skip to content

Commit

Permalink
bump: Kalix Runtime version 1.1.31 (#545)
Browse files Browse the repository at this point in the history
* switching codegen DescriptorSet implementation
* fixing doc links

---------

Co-authored-by: Andrzej Ludwikowski <[email protected]>
  • Loading branch information
kalix-bot and aludwiko committed Feb 1, 2024
1 parent dc8ad00 commit 039b723
Show file tree
Hide file tree
Showing 27 changed files with 90 additions and 57 deletions.
2 changes: 1 addition & 1 deletion codegen/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ lazy val `kalix-codegen-js-cli` =
lazy val library =
new {
object Version {
val kalix = "1.1.0" // FIXME pick up supported protocol/proxy version from node project?
val kalix = "1.1.31" // FIXME pick up supported protocol/proxy version from node project?
val munit = "0.7.29"
}
val commonsIo = "commons-io" % "commons-io" % "2.11.0"
Expand Down
91 changes: 62 additions & 29 deletions codegen/core/src/main/scala/io/kalix/codegen/DescriptorSet.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,26 @@

package io.kalix.codegen

import com.google.protobuf.{ DescriptorProtos, Descriptors }
import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.IOException
import java.io.InputStream
import java.util.logging.Level
import java.util.logging.Logger

import java.io.{ File, FileInputStream, FileNotFoundException, IOException }
import java.util.logging.{ Level, Logger }
import scala.jdk.CollectionConverters._
import scala.util.{ Failure, Success, Using }
import scala.util.Failure
import scala.util.Success
import scala.util.Using

import com.google.protobuf.ExtensionRegistry
import com.google.protobuf.DescriptorProtos
import com.google.protobuf.Descriptors

/**
* Provides conveniences for reading and parsing Protobuf descriptor sets
*
* Copy from JVM SDK
*/
object DescriptorSet {

Expand All @@ -37,37 +47,60 @@ object DescriptorSet {
* @return
* a collection of FileDescriptor objects or an error condition
*/
@SuppressWarnings(Array("org.wartremover.warts.Throw"))
def fileDescriptors(file: File): Either[CannotOpen, Iterable[Either[ReadFailure, Descriptors.FileDescriptor]]] =
Using[FileInputStream, Either[CannotOpen, Iterable[Either[ReadFailure, Descriptors.FileDescriptor]]]](
new FileInputStream(file)) { fis =>
val registry = ExtensionRegistry.newInstance()
registry.add(kalix.Annotations.codegen)
registry.add(kalix.Annotations.service)
registry.add(kalix.Annotations.file)
registry.add(kalix.Annotations.method)

Right(try {
val descriptorProtos =
DescriptorProtos.FileDescriptorSet.parseFrom(fis, registry).getFileList.asScala

for (descriptorProto <- descriptorProtos)
yield try Right(Descriptors.FileDescriptor.buildFrom(descriptorProto, Array.empty, true))
catch {
case e: Descriptors.DescriptorValidationException =>
Left(CannotValidate(e))
}
} catch {
case e: IOException =>
List(Left(CannotRead(e)))
})
} match {
def fileDescriptors(
file: java.io.File): Either[CannotOpen, Either[ReadFailure, Iterable[Descriptors.FileDescriptor]]] =
Using[FileInputStream, Either[CannotOpen, Either[ReadFailure, Iterable[Descriptors.FileDescriptor]]]](
new FileInputStream(file)) { fis => descriptors(fis) } match {
case Success(result) => result
case Failure(e: FileNotFoundException) => Left(CannotOpen(e))
case Failure(e) => throw e
}

@SuppressWarnings(Array("org.wartremover.warts.Throw"))
def descriptors(is: InputStream): Either[CannotOpen, Either[ReadFailure, Iterable[Descriptors.FileDescriptor]]] = {
val registry = ExtensionRegistry.newInstance()
registry.add(kalix.Annotations.codegen)
registry.add(kalix.Annotations.service)
registry.add(kalix.Annotations.file)
registry.add(kalix.Annotations.method)

Right(try {
val descriptorProtos =
DescriptorProtos.FileDescriptorSet.parseFrom(is, registry).getFileList.asScala

val empty: Either[ReadFailure, Iterable[Descriptors.FileDescriptor]] =
Right(Array[Descriptors.FileDescriptor]())
descriptorProtos.foldLeft(empty)((acc, file) => accumulatedBuildFrom(acc, file))
} catch {
case e: IOException =>
Left(CannotRead(e))
})
}

private val descriptorslogger = Logger.getLogger(classOf[Descriptors].getName)
descriptorslogger.setLevel(Level.OFF); // Silence protobuf

/**
* This method accumulates `FileDescriptor`s to provide all the necessary dependencies for each call to
* FileDescriptor.buildFrom. Otherwise placeholders (mocked references) get created instead and these can't function
* as proper dependencies. Chiefly as imports.
*
* see allowUnknownDependencies per
* https://github.com/protocolbuffers/protobuf/blob/ae26a81918fa9e16f64ac27b5a2fb2b110b7aa1b/java/core/src/main/java/com/google/protobuf/Descriptors.java#L286
*/
private def accumulatedBuildFrom(
reads: Either[ReadFailure, Iterable[Descriptors.FileDescriptor]],
file: DescriptorProtos.FileDescriptorProto): Either[ReadFailure, Iterable[Descriptors.FileDescriptor]] = {
reads match {
case Left(_) => reads
case Right(fileDescriptors) =>
try {
Right(fileDescriptors ++ List(Descriptors.FileDescriptor.buildFrom(file, fileDescriptors.toArray, true)))
} catch {
case e: Descriptors.DescriptorValidationException =>
Left(CannotValidate(e))
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class DescriptorSetSuite extends munit.FunSuite {
val descriptorFile = testFilesPath.resolve("descriptor-sets/hello-1.0-SNAPSHOT.protobin").toFile
val result = DescriptorSet
.fileDescriptors(descriptorFile)
.flatMap(x => x.head.map(_.getServices.get(0).getFullName))
.flatMap(x => x.map(_.head.getServices.get(0).getFullName))
assertEquals(result, Right("com.lightbend.MyServiceEntity"))
}

Expand Down
2 changes: 1 addition & 1 deletion codegen/js-gen-cli/src/it/resources/application.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ kalix-npm-js {
}

kalix-proxy {
image = "gcr.io/kalix-public/kalix-runtime:1.1.30"
image = "gcr.io/kalix-public/kalix-runtime:1.1.31"
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ object Cli {
val _ = DescriptorSet.fileDescriptors(protobufDescriptor) match {
case Right(fileDescriptors) =>
val model =
ModelBuilder.introspectProtobufClasses(fileDescriptors.map {
ModelBuilder.introspectProtobufClasses(fileDescriptors match {
case Right(fileDescriptor) => fileDescriptor
case Left(e) =>
System.err.println("There was a problem building the file descriptor from its protobuf:")
Expand Down
6 changes: 3 additions & 3 deletions docs/src/modules/javascript/pages/views.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -372,9 +372,9 @@ The View definitions are stored and validated when a new version is deployed. Th

=== Drop obsolete view data

The data for old Views, that are no longer actively used, can be dropped using the `kalix` CLI https://docs.kalix.io/kalix/kalix_services_views.html[service view commands].
The data for old Views, that are no longer actively used, can be dropped using the `kalix` CLI https://docs.kalix.io/reference/kalix/kalix_services_views.html[service view commands].

A summary of all views for a running service can be listed using the https://docs.kalix.io/kalix/kalix_services_views_list.html[views list command]:
A summary of all views for a running service can be listed using the https://docs.kalix.io/reference/kalix/kalix_services_views_list.html[views list command]:

----
> kalix service views list customer-registry
Expand All @@ -383,7 +383,7 @@ CustomerByName false 1d
CustomerByNameV2 true 5m
----

Any views that are inactive and no longer needed can be dropped using the https://docs.kalix.io/kalix/kalix_services_views_drop.html[views drop command]:
Any views that are inactive and no longer needed can be dropped using the https://docs.kalix.io/reference/kalix/kalix_services_views_drop.html[views drop command]:

----
> kalix service views drop customer-registry CustomerByName
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-customer-registry/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-doc-snippets/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-replicated-entity-example/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-shopping-cart-quickstart/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-valueentity-shopping-cart/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/js-views-example/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/js/valueentity-counter/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-customer-registry/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-replicated-entity-example/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-shopping-cart-quickstart/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-valueentity-counter/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-valueentity-shopping-cart/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion samples/ts/ts-views-example/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3"
services:
kalix-runtime:
image: gcr.io/kalix-public/kalix-runtime:1.1.30
image: gcr.io/kalix-public/kalix-runtime:1.1.31
command: -Dconfig.resource=dev-mode.conf -Dlogback.configurationFile=logback-dev-mode.xml -Dkalix.proxy.eventing.support=google-pubsub-emulator
ports:
- "9000:9000"
Expand Down
2 changes: 1 addition & 1 deletion sdk/config.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"frameworkVersion": "1.1.30"
"frameworkVersion": "1.1.31"
}

0 comments on commit 039b723

Please sign in to comment.