-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[REGRESSION] - grpc kotlin code generation breaking other things #46675
Comments
/cc @alesj (grpc), @cescoffier (grpc), @geoand (kotlin) |
@PhilKes ^^^ |
I guess this was to be expected, since the newly generated Kotlin GRPC code requires
I wasn't aware of the Quarkus Super Heroes project unfortunately, otherwise I would have opened an issue there We could also add a dependency check for the |
Thanks for the quick response @PhilKes !
This is a breaking change, so we also need to make sure this is documented in the release notes for whichever release this change becomes part of (cc: @gsmet). Is the
I think this would be better than flat-out breaking people. I think it should be as transparent to the end user as possible, as thats one of the Quarkus core values.
The hint mentions Gradle, not Maven.
@maxandersen / @cescoffier / @insectengine / @holly-cummins After 3-4 years of the Superheroes being around, how are contributors not aware of it? Its the "PetClinic" of Quarkus and should be used for testing new things and verifying things. This is why we have the nightly ecosystem job in place. We need to do better about getting contributors familiar with it. I'm open to ideas. |
Yes I added the according entry into the bom with the most recent version: quarkus/bom/application/pom.xml Lines 6262 to 6267 in 43c95ab
I agree, I can a open a PR for it
I'm not 100% sure about that, initially I had the hint not including "When using Gradle", but then @cescoffier wanted me to include it (#44552 (comment)), so I thought there was some reason it wasnt needed for maven, but maybe it was just a misunderstanding. 😅
Really sorry about that, I will definitely use it in the future. |
I had the impression that the dependency was only required for Gradle. If it is x required for Maven too, it should be declared as dependency. |
No need to be sorry. Quarkus is a huge project. It’s hard to understand exactly the impact of all of all patches. That’s why we have all sorts of CI runs. And I really don’t think we should put this burden on the shoulders of occasional contributors. This suggests that maybe it needs to be a conditional dependency when Kotlin is around. |
No need to be sorry at all! I'm only mentioning it (& tagging a few others) to try to figure out how we can advertise the Superheroes better and get more people familiar with it. I like your suggestion of including it in the contributing guide - I hadn't thought of that. I'm open to other suggestions too! |
So should |
I will have a look at the conditional dependency mechanism that @gsmet mentioned |
@cescoffier before actually implementing this, I would like to know what |
grpc stubs contains the utility classes used by the gRPC stub we generate. I'm surprised by the dependency on grpc-codegen as it should be the opposite. The generated code depends on grpc stub, not the opposite. (@alesj do you know why we have that dependency?) |
Thanks. I'll just proceed then as my fix shouldn't affect anything. |
Ok, now I "remember" .... It's a bit of a mess. gRPC Stub contains a few standard proto files. We want to generate the stub for these, so we need to depend on the grpc-codegen. It's even worse... we can't "just" generate; we need to run the post-processing too, as gRPC standard generation still uses javax.generated. |
This is automatically added by Quarkus during build time if both the `quarkus-grpc` and `quarkus-kotlin` extensions are present. Currently, all the extension does is plug into the gRPC codegen phase. Fixes: quarkusio#46675
#46698 is the implementation of the conditional dependency idea. |
This is automatically added by Quarkus during build time if both the `quarkus-grpc` and `quarkus-kotlin` extensions are present. Currently, all the extension does is plug into the gRPC codegen phase. Fixes: quarkusio#46675
This is automatically added by Quarkus during build time if both the `quarkus-grpc` and `quarkus-kotlin` extensions are present. Currently, all the extension does is plug into the gRPC codegen phase. Fixes: quarkusio#46675
This is automatically added by Quarkus during build time if both the `quarkus-grpc` and `quarkus-kotlin` extensions are present. Currently, all the extension does is plug into the gRPC codegen phase. Fixes: quarkusio#46675
This is automatically added by Quarkus during build time if both the `quarkus-grpc` and `quarkus-kotlin` extensions are present. Currently, all the extension does is plug into the gRPC codegen phase. Fixes: quarkusio#46675
As it seems conditional dependency do not work, what would be the alternative? Should we have a specific dependency for Kotlin? Like quarkus-grpc-codegen-Kotlin? |
Yeah, we'll probably have to do that and document it (and also maybe update the project generator) |
Describe the bug
It seems that #44552 has broken some things. The superheroes CI has been broken since March 2 (see #23612 (comment) for the details).
The
grpc-locations
application uses grpc and is written in Kotlin. After this change the application no longer compiles.Expected behavior
No response
Actual behavior
No response
How to Reproduce?
Steps to reproduce:
cd grpc-locations
./mvnw clean verify -Dquarkus.platform.group-id=io.quarkus -Dquarkus.platform.version=999-SNAPSHOT
Output of
uname -a
orver
No response
Output of
java -version
No response
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
No response
The text was updated successfully, but these errors were encountered: