Skip to content

Conversation

@olavloite
Copy link
Collaborator

No description provided.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @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 enhances the .NET publishing process by integrating SourceLink across all projects, which will greatly improve the debugging experience for developers using these packages. It also standardizes continuous integration build properties and package metadata, ensuring more consistent and traceable releases. The publishing script has been updated to include an explicit build step, preventing potential issues during package creation.

Highlights

  • SourceLink Integration: SourceLink has been enabled across all .NET projects, including spannerlib-dotnet-grpc-impl, spannerlib-dotnet-grpc-server, spannerlib-dotnet-grpc-v1, spannerlib-dotnet-mockserver, spannerlib-dotnet-native-impl, spannerlib-dotnet-native, and spannerlib-dotnet. This allows consumers of these NuGet packages to debug into the original source code, improving the development experience.
  • Publish Script Enhancement: The publish.sh script now explicitly includes a dotnet build command before packing, ensuring that all projects are built successfully prior to package creation and publishing.
  • Continuous Integration Build Configuration: All .NET projects have been configured with ContinuousIntegrationBuild properties, both generally and specifically for GitHub Actions, to standardize build behavior in CI environments.
  • Package Metadata Standardization: Various package metadata properties such as PublishRepositoryUrl, EmbedUntrackedSources, and RepositoryUrl have been added or updated across all .csproj files to ensure consistent and traceable package information.
  • Symbol Package Generation: The spannerlib-dotnet.csproj project now includes configurations for generating symbol packages (.snupkg), further aiding in debugging and diagnostics.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/publish-dotnet-wrapper.yml
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the .NET project files to include properties for NuGet publishing, such as SourceLink integration, and modifies the publish script. The changes are generally good, but I've identified a few areas with redundant configuration and commands that could be simplified for better maintainability. My comments suggest removing a redundant dotnet build command from the publish.sh script and removing duplicated property settings in the .csproj files.

# Remove existing packages to ensure that only the packages that are built in the next step will be pushed to nuget.
find ./**/bin/Release -type f -name "Alpha*.nupkg" -exec rm {} \;

dotnet build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The dotnet build command is redundant here. The dotnet pack command on line 17 will automatically build the projects before packing them. You can safely remove this line to simplify the script.

Comment on lines +16 to 18
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This PropertyGroup is redundant because <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild> is already set unconditionally on line 14. You can remove this conditional block to avoid duplication. This same issue is present in the other .csproj files modified in this pull request.

<PackageId>Alpha.Google.Cloud.SpannerLib</PackageId>
<Version>1.0.0-alpha.20260119112406</Version>
<Version>1.0.0-alpha.20260120171501</Version>
<PackageVersion>$(Version)</PackageVersion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The <PackageVersion> property is redundant. If PackageVersion is not specified, it defaults to the value of the <Version> property. You can remove this line to simplify the project file.

@olavloite olavloite force-pushed the publish-dotnet-wrapper branch from 429b0ed to 0d35805 Compare January 21, 2026 13:19
@olavloite olavloite closed this Jan 21, 2026
@olavloite olavloite deleted the publish-dotnet-wrapper branch January 21, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant