# Description of Changes This patches a regression introduced in [#4033](https://github.com/clockworklabs/SpacetimeDB/pull/4033) where cargo ci dlls stopped copying the Unity .meta files that live outside the package skeleton tree: 1. `overlay_unity_meta_skeleton` now copies any `sdks/csharp/unity-meta-skeleton~/spacetimedb.<pkg>.meta` file into `sdks/csharp/packages/` before overlaying nested content. 2. Added support for a `version.meta` template inside each skeleton package; it’s renamed to match the single restored version directory (e.g. `1.11.2.meta`). 3. Added the missing `version.meta` templates for both `spacetimedb.bsatn.runtime` and `spacetimedb.runtime`, based on the historical GUIDs Unity already knows about. Together this restores the `spacetimedb.bsatn.runtime.meta` and `<version>.meta` files that Unity requires to keep those folders visible when developers run `cargo ci dlls` on a clean checkout. # API and ABI breaking changes None. This only affects the CI helper responsible for syncing Unity metadata. # Expected complexity level and risk 2 — localized changes to the CI helper and skeleton assets. Primary risk is forgetting a template or mis-copying a GUID; the code paths themselves are straightforward. # Testing - [X] Ran `cargo check -p ci` - [X] Ran `cargo ci dlls` on a clean tree, verifying that: * `sdks/csharp/packages/spacetimedb.bsatn.runtime.meta` exists * The restored version directory (e.g. `sdks/csharp/packages/spacetimedb.bsatn.runtime/1.11.2.meta`) exists - [X] Locally launched Unity with a SpacetimeDB project and had no errors/issues.
SpacetimeDB's cargo ci
Overview
This document provides an overview of the cargo ci command-line tool, and documentation for each of its subcommands and options.
cargo ci
SpacetimeDB CI tasks
This tool provides several subcommands for automating CI workflows in SpacetimeDB.
It may be invoked via cargo ci <subcommand>, or simply cargo ci to run all subcommands in sequence. It is mostly designed to be run in CI environments via the github workflows, but can also be run locally
Usage:
Usage: cargo ci [OPTIONS] [COMMAND]
Options:
--skip: Skip specified subcommands when running all
When no subcommand is specified, all subcommands are run in sequence. This option allows specifying subcommands to skip when running all. For example, to skip the unreal-tests subcommand, use --skip unreal-tests.
--help: Print help (see a summary with '-h')
test
Runs tests
Runs rust tests, codegens csharp sdk and runs csharp tests. This does not include Unreal tests. This expects to run in a clean git state.
Usage:
Usage: test
Options:
--help: Print help (see a summary with '-h')
lint
Lints the codebase
Runs rustfmt, clippy, csharpier and generates rust docs to ensure there are no warnings.
Usage:
Usage: lint
Options:
--help: Print help (see a summary with '-h')
wasm-bindings
Tests Wasm bindings
Runs tests for the codegen crate and builds a test module with the wasm bindings.
Usage:
Usage: wasm-bindings
Options:
--help: Print help (see a summary with '-h')
dlls
Builds and packs C# DLLs and NuGet packages for local Unity workflows
Packs the in-repo C# NuGet packages and restores the C# SDK to populate sdks/csharp/packages/**. Then overlays Unity .meta skeleton files from sdks/csharp/unity-meta-skeleton~/** onto the restored versioned package directory, so Unity can associate stable meta files with the most recently built package.
Usage:
Usage: dlls
Options:
--help: Print help (see a summary with '-h')
smoketests
Runs smoketests
Executes the smoketests suite with some default exclusions.
Usage:
Usage: smoketests [ARGS]...
Options:
args: Additional arguments to pass to the smoketests runner. These are usually set by the CI environment, such as-- --docker--help: Print help (see a summary with '-h')
update-flow
Tests the update flow
Tests the self-update flow by building the spacetimedb-update binary for the specified target, by default the current target, and performing a self-install into a temporary directory.
Usage:
Usage: update-flow [OPTIONS]
Options:
--target: Target triple to build for, by default the current target. Used by github workflows to check the update flow on multiple platforms.--github-token-auth: Whether to enable github token authentication feature when building the update binary. By default this is disabled.--help: Print help (see a summary with '-h')
cli-docs
Usage:
Usage: cli-docs [OPTIONS]
Options:
--spacetime-path: specify a custom path to the SpacetimeDB repository root (where the main Cargo.toml is located)--help: Print help (see a summary with '-h')
self-docs
Usage:
Usage: self-docs [OPTIONS]
Options:
--check: Only check for changes, do not generate the docs--help: Print help (see a summary with '-h')
global-json-policy
Usage:
Usage: global-json-policy
Options:
--help:
help
Usage:
Usage: help [COMMAND]...
Options:
subcommand:
This document is auto-generated by running:
cargo ci self-docs