fs2-grpc
fs2-grpc copied to clipboard
Support generating code from proto in src/test/protobuf
We have proto files in src/test/protobuf which doesn't seem to be supported out of the box. To get it to work I've had to copy paste some settings from https://github.com/typelevel/fs2-grpc/blob/90fe82c78470f74ea49981701ff8dfb736792412/plugin/src/main/scala/fs2/grpc/codegen/Fs2GrpcPlugin.scala#L103.
inConfig(Test)(
Seq(
PB.targets := Fs2GrpcPlugin.autoImport.scalapbCodeGenerators.value,
PB.protoSources := Seq(sourceDirectory.value / "protobuf"),
fs2GrpcServiceSuffix := "Fs2Grpc",
fs2GrpcOutputPath := sourceManaged.value / "fs2-grpc",
scalapbCodeGeneratorOptions := Seq(CodeGeneratorOption.Grpc, CodeGeneratorOption.Fs2Grpc),
scalapbCodeGenerators := {
val options = scalapbCodeGeneratorOptions.value.toSet
Target(
scalapb.gen(
flatPackage = options(CodeGeneratorOption.FlatPackage),
javaConversions = options(CodeGeneratorOption.JavaConversions),
grpc = options(CodeGeneratorOption.Grpc),
singleLineToProtoString = options(CodeGeneratorOption.SingleLineToProtoString),
asciiFormatToString = options(CodeGeneratorOption.AsciiFormatToString)
),
sourceManaged.value / "scalapb"
) ::
Option(
Target(
(
SandboxedJvmGenerator.forModule(
"scala-fs2-grpc",
Artifact(
BuildInfo.organization,
s"${BuildInfo.codeGeneratorName}_${CrossVersion.binaryScalaVersion(BuildInfo.scalaVersion)}",
BuildInfo.version
),
BuildInfo.codeGeneratorFullName + "$",
Nil
),
scalapbCodeGeneratorOptions.value.filterNot(_ == CodeGeneratorOption.Fs2Grpc).map(_.toString) :+
s"serviceSuffix=${fs2GrpcServiceSuffix.value}"
),
fs2GrpcOutputPath.value
)
).filter(_ => scalapbCodeGeneratorOptions.value.contains(CodeGeneratorOption.Fs2Grpc)).toList
}
)
)
It would be good if we supported this out of the box like Akka gRPC does here.
I had to revert your PR that I merged as the changes are breaking the build of downstream projects. I need to look into it.
Got a link to those builds? I couldn't really work out how to confidently test the changes so maybe those builds will give me some inspiration