Skip to content

Upgrade GRPC to 1.29.0 #370

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
May 18, 2020
Merged

Conversation

TsuyoshiUshio
Copy link
Contributor

I create this PR for having a conversation.

I update the version of the grpc-netty from 1.20.0 to grpc-netty-shaded 1.29.0.
It passes the all local test. I'd like to have CI validation on this repo.

I change the interface of the usePlainText(bool). It is deprecated for the new version.
I'll investigate which library should be updated to latest.

Related issue

#365
#354

@amamounelsayed
Copy link
Contributor

Hey @TsuyoshiUshio, Thank you so much for working on this issue.
can we have two PRs?
One for the shaded, and other for the grpc upgrade.

Also can we please upgrade all the grps dependencies?

Thank you so much for your help.

@TsuyoshiUshio
Copy link
Contributor Author

@amamounelsayed I've done the change version and rebase the commit log.

@TsuyoshiUshio
Copy link
Contributor Author

I think now we are ready to merge. I did a research for grpc releases.
https://github.com/grpc/grpc-java/releases

Overall this change will cause these dependency change and some breaking change. However, customer can specify a specific version on Function App. So I think it is ready to merge.

gRPCLB policy seelection: behavioral change.
grpc-census is removed from the dependnecy
ManagedChannelBuilder.usePlaintext(boolean skipNegtiation) will be removed in the next release. 

ntty 4.1.48.Final
tcnative 2.0.30.Final
okhttp.2.7.4
google-auth-library-credentials and google-auth-library-oauth2-http 0.20.0 
truth 1.0.1
grpc-census is removed from the dependnecy
animal-sniffer-annotations 2.3.4
proto-google-common-protos 1.17.0
protobuf-java 3.11.0
protobuf-javalite 3.11.0
gson 2.8.6
mockito 2.28.2
guava 28.2-android
error_prone_annotations 2.3.3
perfmark 0.19.0
OpenCensus 0.21.0

@TsuyoshiUshio TsuyoshiUshio changed the title [Do Not Merge] Upgrade Netty package Upgrade Netty package May 18, 2020
@TsuyoshiUshio TsuyoshiUshio changed the title Upgrade Netty package [Do Not Merge]Upgrade Netty package May 18, 2020
@TsuyoshiUshio TsuyoshiUshio changed the title [Do Not Merge]Upgrade Netty package Upgrade Netty package May 18, 2020
@amamounelsayed amamounelsayed changed the title Upgrade Netty package Upgrade GRPC to 1.29.0 May 18, 2020
@amamounelsayed amamounelsayed merged commit 5350f05 into Azure:dev May 18, 2020
@pragnagopa
Copy link
Member

Can you be more specific about breaking changes? code samples? Also, we should not move to production with breaking changes on minor version releases.

@TsuyoshiUshio
Copy link
Contributor Author

@pragnagopa We update grpc-netty from 1.20.0 to 1.29.0.
Customers who uses grpc-netty on 1.20.0 might need to upgrade the library to 1.29.0 or set FUNCTIONS_EXTENSION_VERSION to the current version. 3.0.13614 on their FunctionApp.
Fore more details about the breaking change of grpc-netty, you can refer https://github.com/grpc/grpc-java/releases

I'ld like to share the overview of it.

Breaking change from grpc-netty 1.20 to 1.29

API or Behavior change

gRPCLB policy seelection: behavioral change.
grpc-census is removed from the dependnecy
ManagedChannelBuilder.usePlaintext(boolean skipNegtiation) will be removed in the next release.

Updated dependency

ntty 4.1.48.Final
tcnative 2.0.30.Final
okhttp.2.7.4
google-auth-library-credentials and google-auth-library-oauth2-http 0.20.0
truth 1.0.1
grpc-census is removed from the dependnecy
animal-sniffer-annotations 2.3.4
proto-google-common-protos 1.17.0
protobuf-java 3.11.0
protobuf-javalite 3.11.0
gson 2.8.6
mockito 2.28.2
guava 28.2-android
error_prone_annotations 2.3.3
perfmark 0.19.0
OpenCensus 0.21.0

@pragnagopa
Copy link
Member

We need more specific code samples for before and after. Please https://github.com/Azure/app-service-announcements/issues?q=is%3Aissue++breaking+java for examples on previous breaking change announcements. Also, we should avoid breaking changes even though the gRpc itself has breaking changes in the link you mentioned.

@TsuyoshiUshio
Copy link
Contributor Author

@prabgupta
Sure. I'll create some samples.

@pragnagopa
Copy link
Member

Thanks! Looking at the code sample will help you/@amamounelsayed determine the impact and decide if this change needs to be reverted.

@TsuyoshiUshio
Copy link
Contributor Author

@pragnagopa
I read your announcement, I understand. This breaking change is not for the Java Language worker and Java Functions Interface/Behavior. We change the version of the library. If the customer uses that library on their custom code, they need to change the version. In this case, do we need sample code? We might provide pom change sample for a functions that use grpc-ntty. We might introduce that we can use the java sdk on a Java functions instead.

@pragnagopa
Copy link
Member

A breaking change in a dependency would be considered a breaking change for customers. Please verify if that is the case as dependencies in Java worker take precedence over user dependencies.

@TsuyoshiUshio
Copy link
Contributor Author

Sure. Good point. I'll do it.

@TsuyoshiUshio
Copy link
Contributor Author

Hi @pragnagopa
We will revert this change.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants