Skip to content

Add Cargo.lock tracking and NuGet smoke test - #6

Open
dandm1 wants to merge 2 commits into
mainfrom
v0.2-Update
Open

dandm1 wants to merge 2 commits into
mainfrom
v0.2-Update

Conversation

@dandm1

@dandm1 dandm1 commented May 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Track Cargo.lock for reproducible builds — removed from .gitignore so CI and local builds use identical dependency versions
  • Add NuGet smoke test to CI — a standalone console app that installs ChromaDB.NET from the built .nupkg via a local feed, then exercises the full lifecycle (client, heartbeat, collection CRUD, query, delete) on all 3 platforms (Linux, Windows, macOS ARM64)

Test plan

  • CI smoke_test job passes on all 3 platform matrix entries
  • build_native and pack_nuget jobs unaffected
  • cargo build locally produces identical results with tracked Cargo.lock

🤖 Generated with Claude Code

David Baker and others added 2 commits May 11, 2026 17:32
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a standalone console project that installs ChromaDB.NET from the
freshly-built NuGet package (via a local feed), then exercises the full
lifecycle: client creation, heartbeat, collection CRUD, query, and delete.

This runs on all three platforms (Linux, Windows, macOS ARM64) after
pack_nuget, testing the real NuGet runtimes/ native lib resolution path
that consumers use — unlike the unit tests which copy the native lib
directly into the output directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 11, 2026 22:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR improves build reproducibility and adds CI validation that the produced NuGet package can be installed and exercised end-to-end across supported OSes.

Changes:

  • Removed Cargo.lock from .gitignore so it can be checked in and used for reproducible Rust/native builds.
  • Added a new Tests/NuGetSmokeTest console app that runs a basic lifecycle against ChromaDB.NET (client creation, heartbeat, collection CRUD, query).
  • Extended the NuGet build workflow with a cross-platform smoke_test job that installs the freshly built .nupkg from a local feed and runs the console app.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated no comments.

File Description
Tests/NuGetSmokeTest/Program.cs Implements the smoke-test lifecycle using the public ChromaDB.NET API.
Tests/NuGetSmokeTest/NuGetSmokeTest.csproj Adds a standalone executable project intended to have ChromaDB.NET installed via CI (not a project reference).
.gitignore Stops ignoring Cargo.lock to allow lockfile tracking.
.github/workflows/build-nuget.yaml Adds a smoke_test matrix job (Linux/Windows/macOS) that installs from the locally built package artifact and runs the smoke test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants