Skip to content

Conversation

@rekhoff
Copy link
Contributor

@rekhoff rekhoff commented Jan 14, 2026

Description of Changes

  • Added a new cargo ci dlls subcommand to build/pack the in-repo C# NuGet packages and the C# SDK.
  • cargo ci dlls restores sdks/csharp/SpacetimeDB.ClientSDK.csproj using the freshly built local package outputs as to populate sdks/csharp/packages/**.
  • Added a Unity .meta skeleton under sdks/csharp/unity-meta-skeleton~/** and overlays those .meta files onto the latest restored versioned package directory to keep Unity GUIDs stable and import settings consistent.
  • Unity-specific import fixes are captured in the skeleton overlay (notably: preventing Unity from importing incompatible TFMs like net8.0, and marking analyzer DLLs with the RoslynAnalyzer label so Unity can recognize them).

How to use (local)

# Build/pack + restore local packages into sdks/csharp/packages/**
cargo ci dlls

API and ABI breaking changes

N/A

Expected complexity level and risk

2 - Local developer tooling + file overlay into restore output; no runtime/SDK API behavior changes.

Testing

  • cargo check -p ci
  • Ran cargo ci dlls and verified the output under sdks/csharp/packages/** and the various NuGet package locations.
  • Tested a Unity project importing the SpacetimeDB SDK after generating output and confirmed no errors.

@rekhoff rekhoff self-assigned this Jan 14, 2026
@rekhoff rekhoff requested review from bfops and jdetter January 14, 2026 23:29
@rekhoff rekhoff marked this pull request as ready for review January 15, 2026 16:27
Copy link
Collaborator

@bfops bfops left a comment

Choose a reason for hiding this comment

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

This looks pretty great to me. I left some nits, and I think there may be some remaining meta dance to do.

also, I see more files getting restored such as LICENSE and logo.png, so I think we should possibly do what #3648 did and add a gitignore for those files as well.

@rekhoff
Copy link
Contributor Author

rekhoff commented Jan 16, 2026

This looks pretty great to me. I left some nits, and I think there may be some remaining meta dance to do.

also, I see more files getting restored such as LICENSE and logo.png, so I think we should possibly do what #3648 did and add a gitignore for those files as well.

Updated .gitignore to ignore those restore artifacts and keep only lib/** + analyzers/**

Copy link
Collaborator

@jdetter jdetter left a comment

Choose a reason for hiding this comment

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

I did a quick skim of this - I don't have anything blocking. Thanks Ryan 👍

I'm not approving as Zeke has the primary review on this, but if more review from me is needed let me know 🙂

rekhoff and others added 3 commits January 21, 2026 08:12
Co-authored-by: John Detter <4099508+jdetter@users.noreply.github.com>
Signed-off-by: Ryan <r.ekhoff@clockworklabs.io>
Copy link
Collaborator

@bfops bfops left a comment

Choose a reason for hiding this comment

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

I thought I had already approved. LGTM! Thanks @rekhoff .

Someday it would be nice to add tests for some of the behavior, like the skeleton directory overlaying, or that dotnet restore has meta files on all platforms, but that seems out of scope for now since they're pretty easy to hand-test.

@rekhoff rekhoff enabled auto-merge January 22, 2026 01:29
@rekhoff rekhoff disabled auto-merge January 22, 2026 01:30
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.

4 participants