chore: embed SpannerLib in ADO.NET driver#660
Conversation
Summary of ChangesHello @olavloite, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the Google Cloud Spanner ADO.NET driver's dependency model by embedding the SpannerLib source code and its native gRPC server binaries directly within the driver project. This change aims to streamline the build and distribution process, reduce external NuGet package dependencies, and provide a more self-contained solution. It involves adding the SpannerLib source, introducing scripts to manage its lifecycle (copying source, building binaries), and updating the project configuration to include these embedded components and their native runtime assets. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
295bcbb to
23d663c
Compare
There was a problem hiding this comment.
Code Review
This pull request embeds the SpannerLib into the ADO.NET driver, removing the need for external NuGet packages. The changes involve adding the SpannerLib source code, updating project references, and including scripts for copying source and building native binaries. The overall approach aligns with the goal of self-containment. However, there are several areas related to asynchronous programming patterns and exception handling that require attention to prevent potential deadlocks and ensure consistent error propagation.
spanner-ado-net/spanner-ado-net/SpannerLibGrpcImpl/GrpcBidiConnection.cs
Outdated
Show resolved
Hide resolved
spanner-ado-net/spanner-ado-net/SpannerLibGrpcImpl/StreamingRows.cs
Outdated
Show resolved
Hide resolved
spanner-ado-net/spanner-ado-net/SpannerLibGrpcImpl/GrpcLibSpanner.cs
Outdated
Show resolved
Hide resolved
a567053 to
afecb8e
Compare
2bd345c to
f543536
Compare
Embed the relevant code from SpannerLib in the ADO.NET driver to remove the need to create nuget packages for SpannerLib. This change also includes scripts for copying the relevant code, and for building the required binaries for the driver.
f543536 to
5316e04
Compare
8844c36 to
062a71d
Compare
Embed the relevant code from SpannerLib in the ADO.NET driver to remove the need to create nuget packages for SpannerLib. This change also includes scripts for copying the relevant code, and for building the required binaries for the driver.