Skip to content

feat: update .NET SDK support to include versions 8.0, 9.0, and 10.0;… - #14

Merged
lukekim merged 13 commits into
trunkfrom
lukim/dotnet
Nov 23, 2025
Merged

feat: update .NET SDK support to include versions 8.0, 9.0, and 10.0;…#14
lukekim merged 13 commits into
trunkfrom
lukim/dotnet

Conversation

@lukekim

@lukekim lukekim commented Nov 23, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces significant improvements to the Spice.ai .NET SDK, focusing on enhanced multi-framework support, resource management, and developer usability. The most important changes include support for .NET 8, 9, and 10, proper disposal of network resources via IDisposable in key classes, stricter input validation, and updates to CI/CD workflows to build and test across multiple frameworks.

Multi-framework support and packaging:

  • Updated Spice/Spice.csproj to support netstandard2.0, net8.0, net9.0, and net10.0, and upgraded package dependencies to the latest versions. Also changed the package ID to lowercase and bumped the version to 0.2.0.
  • Updated CI/CD workflows (.github/workflows/pr.yaml, .github/workflows/publish.yaml) to build and test against multiple .NET versions (8, 9, 10) and improved NuGet publishing to skip duplicates. [1] [2]

Resource management and disposal:

  • Implemented IDisposable in SpiceClient and SpiceFlightClient to ensure proper cleanup of gRPC channels and HTTP clients, preventing resource leaks. [1] [2] [3]
  • Updated documentation and code samples in README.md to emphasize using using statements/declarations for automatic disposal of SpiceClient instances. [1] [2]

Input validation and error handling:

  • Added stricter input validation to SpiceClientBuilder methods (WithFlightAddress, WithApiKey, WithMaxRetries, WithUserAgent) using ThrowHelper for pre-.NET 8 targets and built-in exceptions for .NET 8+. [1] [2] [3] [4] [5]
  • Improved error messages and exception types for invalid API keys and other parameters.

Documentation and usability:

  • Updated README.md to reflect new framework support, improved code samples to use using var, and added a section on memory management best practices. [1] [2] [3]

These changes collectively make the SDK more robust, easier to use, and compatible with the latest .NET platforms.

… enhance build and test workflows; implement IDisposable for client classes
@lukekim lukekim added this to the v0.2.0 milestone Nov 23, 2025
@lukekim lukekim self-assigned this Nov 23, 2025
@lukekim lukekim added the enhancement New feature or request label Nov 23, 2025
Comment thread .github/workflows/pr.yaml Fixed
Comment thread .github/workflows/pr.yaml Fixed
@lukekim lukekim linked an issue Nov 23, 2025 that may be closed by this pull request
Comment thread Spice/Spice.csproj Outdated
@lukekim
lukekim enabled auto-merge (squash) November 23, 2025 05:58
@lukekim
lukekim merged commit badfa0b into trunk Nov 23, 2025
14 checks passed
@lukekim
lukekim deleted the lukim/dotnet branch November 23, 2025 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

task: Update SDK for feature parity

3 participants