-
Notifications
You must be signed in to change notification settings - Fork 825
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
Adding the C# gRPC SDK #1315
Adding the C# gRPC SDK #1315
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed (or fixed any issues), please reply here with What to do if you already signed the CLAIndividual signers
Corporate signers
ℹ️ Googlers: Go here for more info. |
CLAs look good, thanks! ℹ️ Googlers: Go here for more info. |
/assign @pooneh-m |
Build Succeeded 👏 Build Id: 41b5738e-2db2-4fcb-9ae9-e3d39d59ae7e The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 👏 Build Id: ca4e2676-a6dd-4984-a503-af48465b9965 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you reuse annotations.proto and http.proto at here
19a60ef
to
f52be8b
Compare
Build Succeeded 👏 Build Id: ba627446-c719-4446-a362-37ef6822dc9a The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Build Succeeded 👏 Build Id: cc36bb36-e113-4e09-a8fb-b42faabb4ccc The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Thanks so much for putting the work in on this 👍 The biggest concern I have is that this is not integrated into our gRPC SDK build toolchain, which you can find here: Without this, it's going to be very hard for maintainers to update this client for new functionality. Would it be possible to integrate this into your PR? |
Happy to contribute! :) Yeah I was wondering where to get started, thanks for the heads up! I'll get cracking at it this weekend and update the PR when ready 👌 |
@markmandel Was wondering how the nuget API key would be integrated into the publish script? I haven't written it yet, is there some environment variable that I should take into account? Also, for some reason when I run |
Build Failed 😱 Build Id: bf630313-f6d5-484f-9e89-b8c9f99f673c To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Update: I've hacked a bit more at it tonight, it seems to be that this readme is outdated (?) From my understanding so far, There's also Getting a little lost here, appreciate any direction! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good digging 👍 and very close! Nice job.
Have a look at these run-sdk-conformance-test-*
for example of conformance tests. (it runs the sidecar for you)
Also note - you can do one PR for generating the gRPC Client, and some simple unit tests with some docs.
Conformance tests, examples, etc can be a separate PR (in fact it's easier to review that way), it doesn't have to come all at once. 👍 (Ditto for publish - we're going to have to rejig that node one anyway, because internal policies)
Sound good?
Build Failed 😱 Build Id: 542cf023-150f-45f3-9771-9d97dc07acde To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😱 Build Id: f546e567-a03e-43b4-89e8-b7a5d8d7ed09 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
It's automatically generated by the Grpc.Tools package before any sort of build step, should I still include a dedicated |
Build Failed 😱 Build Id: 40d52bf9-dc51-4a24-a779-26fb88e132c1 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
I'm not quite sure what this means -- is there something I can read? (remember, I know very little about the C# ecosystem 😭 ) With other languages we bundle the generated code so that our users don't need to generate it. But maybe that doesn't make sense in the C# ecosystem? |
Copy that, I feel the same with golang! 😅 😅 As for how gRPC works in C#: Which means, whenever the C# SDK is built, it will refresh the auto-generated code by default, unless told otherwise. |
I'm assuming that means that we'll generate the C# code? That makes sense to me - it also means that the users of the SDK don't need to go hunting for where the proto file is, or install any tooling. 👍 |
Build Failed 😱 Build Id: d59bcbe6-5caf-4919-b65f-24f610251d98 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
😞 |
Build Failed 😱 Build Id: df630ae8-96f4-4360-9826-afa8ab2af677 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
Build Failed 😱 Build Id: 6137ac9a-b6c0-457f-8df0-fc907aa4c1aa To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
@markmandel Hey, I think I've fixed the C# build, gen and test issues. Took a look at the logs, both build & test seems to pass, but the overall tests are failing. I couldn't pinpoint whether it's related to the C# sdk or not though, could you kindly take a look? 🤔 Once you confirm it works, I'll clean up, rebase & squash. |
Ooh! Looks like you hit some rate limiting with the website link checker against github. If you rebase against master it should go away. I'll hit "update branch" here, and it should go away. |
Build Succeeded 👏 Build Id: fc96c9c1-bd76-4c3d-8453-23393604c1d0 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Hey, it works at last! 🎉 On a side note, how can I follow up with plans for agones? I'd like to know when you guys plan out the publish specifics :) |
Everything is planned out on Github! Keep track there, and/or come join us in Slack. The monthly community meetings also are a great place for discussion. Please drop by! |
Added a C# wrapper for the Agones gRPC client built against .NET Standard 2.0 & Code Integrity tests built against .NET Core 2.2. Commit includes: - Core C# Wrapper - Fully async & automatic health checks. - Agones CI Gen, Build & Test scripts. - Docs. - Relevant .gitignore modifications. - Make targets for C# SDK - Configuration specific auto-generate (DebugProtoGen), for development purposes Resolves: googleforgames#884 , googleforgames#883
Build Succeeded 👏 Build Id: d87cc941-dc2f-4e5f-97d4-906ed6e91c5e The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Looks like this is good to go 👍 Let's get this merged! |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: markmandel, pooneh-m, Reousa The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Build Succeeded 👏 Build Id: 5fdaf281-1e16-41a9-a6f5-f499ad2edf60 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
Added a C# wrapper for the Agones gRPC client built against .NET Standard 2.0 & Code Integrity tests built against .NET Core 2.2. Commit includes: - Core C# Wrapper - Fully async & automatic health checks. - Agones CI Gen, Build & Test scripts. - Docs. - Relevant .gitignore modifications. - Make targets for C# SDK - Configuration specific auto-generate (DebugProtoGen), for development purposes Resolves: googleforgames#884 , googleforgames#883 Co-authored-by: Mark Mandel <markmandel@google.com>
A gRPC based SDK for the C# language, compiled against the .NET Standard 2.0.
#884
To do:
[x] Write the SDK's core
AgonesSDK
wrapper.[x] Write the docs for it.
[ ] Make it publish as a NuGet package[x] Fix
google/api
missing directory issue[ ] Integrate into the conformance test.[x] Integrate the code integiry tests.
[x] Integrate into the CI pipeline.
Some issues:
The SDK requires thegoogle/api
folder to be based in the same directory assdk.proto
as opposed toproto/googleapis/...
.I'm unsure where/how themock-client
should be, directory structure wise & CI wise.