Commit Graph

182 Commits

Author SHA1 Message Date
Noa c756f11ccd Merge branch 'master' into noa/ts-module-api 2025-10-15 22:59:39 -05:00
Zeke Foppa 92cd2604ad Windows - Set linker = "lld-link" (#3406)
# Description of Changes

See the inline comments for the motivation. This was originally
introduced to our Windows CI in #3351. This PR moves it from CI to
general Windows target builds, since it seems like Windows builds are
now generally having this issue.

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing

- [x] Windows CI still passes

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-15 03:09:55 +00:00
Noa 12b6d4c605 Build module sdk before running cargo tests 2025-10-14 16:46:55 -05:00
Zeke Foppa 0b67dd23a8 CI - Check that C# bindings are up to date (#3362)
# Description of Changes

Check that our generated C# files are up-to-date in our CI.

# API and ABI breaking changes

None.

# Expected complexity level and risk

1

# Testing

- [x] CI all passes

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-10 17:12:33 +00:00
Zeke Foppa 1aa4084762 CI - Clean up several scripts and call sites related to codegen (#3363)
# Description of Changes

* Small cleanups in `tools/check-diff.sh`
* Use `tools/check-diff.sh` wherever appropriate
* Simplify the `sdks/csharp/tools~/gen-*.sh` files after the repo merge

# API and ABI breaking changes

None.

# Expected complexity level and risk

1

# Testing

- [x] CI still passes

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-10 14:23:18 +00:00
Noa 619b8ce021 Bump Rust to 1.90 (#3397)
# Description of Changes

Necessary for pulling in rolldown.

# API and ABI breaking changes

None

# Expected complexity level and risk

1, with the caveat that this updates the Rust version and therefore
touches all the code.

# Testing

- [ ] Just the automated testing
2025-10-09 20:41:25 +00:00
Zeke Foppa b84adeeebb CI - Tweak caching in typescript/build-and-test (#3396)
# Description of Changes

I changed some variables related to caching in the TypeScript test CI,
since it was failing on master due to suspected cache issues.

# API and ABI breaking changes

None

# Expected complexity level and risk
1

# Testing

- [x] CI passes on this PR when it didn't on master

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-09 18:52:13 +00:00
Mazdak Farrokhzad 4a57de1003 v8: use fast static strings for known strings (#3351)
# Description of Changes

 v8: use fast static strings for known strings 

# API and ABI breaking changes


None

# Expected complexity level and risk

1

# Testing

Covered by existing.

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-06 12:27:38 +00:00
Zeke Foppa f478e1102b CI - Multi-line runs fail properly on Windows (#3337)
# Description of Changes

It turns out that multi-line `run` statements don't fail properly on
Windows. If one of the lines fails, the run won't exit early, and in
fact the step will return successful.

# API and ABI breaking changes

CI-only changes.

# Expected complexity level and risk

1

# Testing
- [x] Confirmed that a one-line command will fail properly on Windows:
https://github.com/clockworklabs/SpacetimeDB/actions/runs/18204663513/job/51831974918?pr=3337
- [x] Confirmed that a multi-line command properly exits early with
these changes:
https://github.com/clockworklabs/SpacetimeDB/actions/runs/18203897520/job/51829384741?pr=3335
- [x] Confirmed that a windows package build still works even though the
shell is `bash` for part of it now
(https://github.com/clockworklabs/SpacetimeDB/actions/runs/18205281236/job/51834045429)

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-03 15:08:10 +00:00
Mazdak Farrokhzad 5e8124f1c5 Fix bindgen tests (due to crate timezone_provider) (#3341)
# Description of Changes

Fix bindgen tests (due to crate `timezone_provider`)

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing

Fixes CI tests.
2025-10-03 09:21:44 +00:00
Zeke Foppa 7aae091d85 C# tests - update snapshots (#3321)
# Description of Changes

I chose to regenerate all of the bindings in
https://github.com/clockworklabs/SpacetimeDB/pull/3310, but that caused
the snapshots to change. This PR follows up to update them.

I also updated the outdated script `tools~/gen-quickstart-chat.sh`
(which was generating from a different module than the CI was), and
updated the CI to use it instead of manually running a similar command.

# API and ABI breaking changes

Test-only changes.

# Expected complexity level and risk

1

# Testing

- [x] unity-testsuite passes on this PR (which it does not on `master`).

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-01 04:01:46 +00:00
Zeke Foppa 9b98d5ca5b CI - apt install invocations correctly pass -y (#3324)
# Description of Changes

We had places that weren't passing `-y`. I assume these were only
working because they were in environments where the things were already
installed, so there wasn't any confirmation dialog. For some reason, the
arm runner now newly needs to install packages, so CI invocations began
failing.

# API and ABI breaking changes

None. CI only.

# Expected complexity level and risk

1

# Testing

- [x] CI passes
- [ ] the "Test spacetimedb-update" flow passes on arm, which is not
currently true elsewhere.

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-10-01 02:55:15 +00:00
Zeke Foppa 7eab9a94d1 CI - Move Unity testsuite to a different runner (#3318)
# Description of Changes

Move the unity testsuite to `spacetimedb-runner` since it otherwise runs
out of disk space.

# API and ABI breaking changes

None. CI only.

# Expected complexity level and risk

1

# Testing
- [x] Unity CI passes now.

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-09-30 19:30:09 +00:00
Zeke Foppa 77a219aca6 Integrate tools/upgrade-version into cargo and expand (#3308)
# Description of Changes

`tools/upgrade-version` can now be run via just `cargo bump-versions`.

By default, it does nothing. You must now specify at least one of:
`--rust-and-cli`, `--typescript`, or `--csharp`.

This also now bumps the `StdbModule.csproj` version in
`demo/Blackholio`. I'm not sure if that's desired or not, but it was
still at `1.0.0` which doesn't seem quite right.

# API and ABI breaking changes

None

# Expected complexity level and risk

2

# Testing

- [x] `cargo bump-versions 1.5.0 --rust-and-cli`
```
diff --git a/Cargo.lock b/Cargo.lock
index 941b9d66d..3800e547f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -436,3 +436,3 @@ dependencies = [
  "anyhow",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -1023,3 +1023,3 @@ dependencies = [
 name = "connect_disconnect_client"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -3089,3 +3089,3 @@ dependencies = [
  "log",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -3414,3 +3414,3 @@ dependencies = [
  "log",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -3897,3 +3897,3 @@ dependencies = [
  "log",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -4382,3 +4382,3 @@ dependencies = [
  "log",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -5077,3 +5077,3 @@ dependencies = [
  "paste",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -5082,3 +5082,3 @@ dependencies = [
 name = "sdk-unreal-test-harness"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5456,3 +5456,3 @@ dependencies = [
  "log",
- "spacetimedb 1.4.0",
+ "spacetimedb 1.5.0",
 ]
@@ -5479,3 +5479,3 @@ dependencies = [
 name = "spacetimedb"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5488,6 +5488,6 @@ dependencies = [
  "scoped-tls",
- "spacetimedb-bindings-macro 1.4.0",
- "spacetimedb-bindings-sys 1.4.0",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-bindings-macro 1.5.0",
+ "spacetimedb-bindings-sys 1.5.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
  "trybuild",
@@ -5497,3 +5497,3 @@ dependencies = [
 name = "spacetimedb-auth"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5504,3 +5504,3 @@ dependencies = [
  "spacetimedb-jsonwebtoken",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
 ]
@@ -5509,3 +5509,3 @@ dependencies = [
 name = "spacetimedb-bench"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5537,7 +5537,7 @@ dependencies = [
  "spacetimedb-execution",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-query",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -5570,3 +5570,3 @@ dependencies = [
 name = "spacetimedb-bindings-macro"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5576,3 +5576,3 @@ dependencies = [
  "quote",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "syn 2.0.101",
@@ -5591,5 +5591,5 @@ dependencies = [
 name = "spacetimedb-bindings-sys"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
 ]
@@ -5598,3 +5598,3 @@ dependencies = [
 name = "spacetimedb-cli"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5634,5 +5634,5 @@ dependencies = [
  "spacetimedb-jsonwebtoken",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-schema",
@@ -5659,3 +5659,3 @@ dependencies = [
 name = "spacetimedb-client-api"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5696,3 +5696,3 @@ dependencies = [
  "spacetimedb-jsonwebtoken",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
@@ -5713,3 +5713,3 @@ dependencies = [
 name = "spacetimedb-client-api-messages"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5727,5 +5727,5 @@ dependencies = [
  "smallvec",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "strum",
@@ -5736,3 +5736,3 @@ dependencies = [
 name = "spacetimedb-codegen"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5745,4 +5745,4 @@ dependencies = [
  "spacetimedb-data-structures",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-schema",
@@ -5753,3 +5753,3 @@ dependencies = [
 name = "spacetimedb-commitlog"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5773,4 +5773,4 @@ dependencies = [
  "spacetimedb-paths",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "tempfile",
@@ -5785,3 +5785,3 @@ dependencies = [
 name = "spacetimedb-core"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5863,3 +5863,3 @@ dependencies = [
  "spacetimedb-jwks",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-memory-usage",
@@ -5868,5 +5868,5 @@ dependencies = [
  "spacetimedb-physical-plan",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-query",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -5905,3 +5905,3 @@ dependencies = [
 name = "spacetimedb-data-structures"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5919,3 +5919,3 @@ dependencies = [
 name = "spacetimedb-datastore"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5939,7 +5939,7 @@ dependencies = [
  "spacetimedb-execution",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-metrics",
  "spacetimedb-paths",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -5954,3 +5954,3 @@ dependencies = [
 name = "spacetimedb-durability"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5961,3 +5961,3 @@ dependencies = [
  "spacetimedb-paths",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-sats 1.5.0",
  "thiserror 1.0.69",
@@ -5969,3 +5969,3 @@ dependencies = [
 name = "spacetimedb-execution"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5974,6 +5974,6 @@ dependencies = [
  "spacetimedb-expr",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-physical-plan",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-sql-parser",
@@ -5984,3 +5984,3 @@ dependencies = [
 name = "spacetimedb-expr"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -5991,6 +5991,6 @@ dependencies = [
  "pretty_assertions",
- "spacetimedb 1.4.0",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb 1.5.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -6002,3 +6002,3 @@ dependencies = [
 name = "spacetimedb-fs-utils"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6064,3 +6064,3 @@ dependencies = [
 name = "spacetimedb-lib"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6082,7 +6082,7 @@ dependencies = [
  "serde_json",
- "spacetimedb-bindings-macro 1.4.0",
+ "spacetimedb-bindings-macro 1.5.0",
  "spacetimedb-memory-usage",
  "spacetimedb-metrics",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "thiserror 1.0.69",
@@ -6092,3 +6092,3 @@ dependencies = [
 name = "spacetimedb-memory-usage"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6102,3 +6102,3 @@ dependencies = [
 name = "spacetimedb-metrics"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6112,3 +6112,3 @@ dependencies = [
 name = "spacetimedb-paths"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6128,3 +6128,3 @@ dependencies = [
 name = "spacetimedb-pg"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6139,3 +6139,3 @@ dependencies = [
  "spacetimedb-client-api-messages",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "thiserror 1.0.69",
@@ -6146,3 +6146,3 @@ dependencies = [
 name = "spacetimedb-physical-plan"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6153,4 +6153,4 @@ dependencies = [
  "spacetimedb-expr",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-schema",
@@ -6174,3 +6174,3 @@ dependencies = [
 name = "spacetimedb-primitives"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6186,3 +6186,3 @@ dependencies = [
 name = "spacetimedb-query"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6194,5 +6194,5 @@ dependencies = [
  "spacetimedb-expr",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-physical-plan",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-sql-parser",
@@ -6229,3 +6229,3 @@ dependencies = [
 name = "spacetimedb-sats"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6254,6 +6254,6 @@ dependencies = [
  "smallvec",
- "spacetimedb-bindings-macro 1.4.0",
+ "spacetimedb-bindings-macro 1.5.0",
  "spacetimedb-memory-usage",
  "spacetimedb-metrics",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "thiserror 1.0.69",
@@ -6263,3 +6263,3 @@ dependencies = [
 name = "spacetimedb-schema"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6280,5 +6280,5 @@ dependencies = [
  "spacetimedb-data-structures",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-sql-parser",
@@ -6293,3 +6293,3 @@ dependencies = [
 name = "spacetimedb-sdk"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6312,5 +6312,5 @@ dependencies = [
  "spacetimedb-data-structures",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-metrics",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-testing",
@@ -6323,3 +6323,3 @@ dependencies = [
 name = "spacetimedb-snapshot"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6340,6 +6340,6 @@ dependencies = [
  "spacetimedb-fs-utils",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -6356,6 +6356,6 @@ dependencies = [
 name = "spacetimedb-sql-parser"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
  "derive_more",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "sqlparser",
@@ -6366,3 +6366,3 @@ dependencies = [
 name = "spacetimedb-standalone"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6390,3 +6390,3 @@ dependencies = [
  "spacetimedb-datastore",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
@@ -6407,3 +6407,3 @@ dependencies = [
 name = "spacetimedb-subscription"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6412,5 +6412,5 @@ dependencies = [
  "spacetimedb-expr",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-physical-plan",
- "spacetimedb-primitives 1.4.0",
+ "spacetimedb-primitives 1.5.0",
  "spacetimedb-query",
@@ -6420,3 +6420,3 @@ dependencies = [
 name = "spacetimedb-table"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6436,6 +6436,6 @@ dependencies = [
  "spacetimedb-data-structures",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-memory-usage",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -6446,3 +6446,3 @@ dependencies = [
 name = "spacetimedb-testing"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6462,3 +6462,3 @@ dependencies = [
  "spacetimedb-data-structures",
- "spacetimedb-lib 1.4.0",
+ "spacetimedb-lib 1.5.0",
  "spacetimedb-paths",
@@ -6473,3 +6473,3 @@ dependencies = [
 name = "spacetimedb-update"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6498,3 +6498,3 @@ dependencies = [
 name = "spacetimedb-vm"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6508,5 +6508,5 @@ dependencies = [
  "spacetimedb-execution",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-primitives 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-primitives 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-schema",
@@ -6589,3 +6589,3 @@ dependencies = [
 name = "sqltest"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6608,4 +6608,4 @@ dependencies = [
  "spacetimedb-datastore",
- "spacetimedb-lib 1.4.0",
- "spacetimedb-sats 1.4.0",
+ "spacetimedb-lib 1.5.0",
+ "spacetimedb-sats 1.5.0",
  "spacetimedb-vm",
@@ -6927,3 +6927,3 @@ dependencies = [
 name = "test-client"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
@@ -6939,3 +6939,3 @@ dependencies = [
 name = "test-counter"
-version = "1.4.0"
+version = "1.5.0"
 dependencies = [
diff --git a/Cargo.toml b/Cargo.toml
index b3c6d3222..f84eff4df 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -94,3 +94,3 @@ debug = true
 [workspace.package]
-version = "1.4.0"
+version = "1.5.0"
 edition = "2021"
@@ -100,34 +100,34 @@ rust-version = "1.88.0"
 [workspace.dependencies]
-spacetimedb = { path = "crates/bindings", version = "1.4.0" }
-spacetimedb-auth = { path = "crates/auth", version = "1.4.0" }
-spacetimedb-bindings-macro = { path = "crates/bindings-macro", version = "1.4.0" }
-spacetimedb-bindings-sys = { path = "crates/bindings-sys", version = "1.4.0" }
-spacetimedb-cli = { path = "crates/cli", version = "1.4.0" }
-spacetimedb-client-api = { path = "crates/client-api", version = "1.4.0" }
-spacetimedb-client-api-messages = { path = "crates/client-api-messages", version = "1.4.0" }
-spacetimedb-codegen = { path = "crates/codegen", version = "1.4.0" }
-spacetimedb-commitlog = { path = "crates/commitlog", version = "1.4.0" }
-spacetimedb-core = { path = "crates/core", version = "1.4.0" }
-spacetimedb-data-structures = { path = "crates/data-structures", version = "1.4.0" }
-spacetimedb-datastore = { path = "crates/datastore", version = "1.4.0" }
-spacetimedb-durability = { path = "crates/durability", version = "1.4.0" }
-spacetimedb-execution = { path = "crates/execution", version = "1.4.0" }
-spacetimedb-expr = { path = "crates/expr", version = "1.4.0" }
-spacetimedb-lib = { path = "crates/lib", default-features = false, version = "1.4.0" }
-spacetimedb-memory-usage = { path = "crates/memory-usage", version = "1.4.0", default-features = false }
-spacetimedb-metrics = { path = "crates/metrics", version = "1.4.0" }
-spacetimedb-paths = { path = "crates/paths", version = "1.4.0" }
-spacetimedb-pg = { path = "crates/pg", version = "1.4.0" }
-spacetimedb-physical-plan = { path = "crates/physical-plan", version = "1.4.0" }
-spacetimedb-primitives = { path = "crates/primitives", version = "1.4.0" }
-spacetimedb-query = { path = "crates/query", version = "1.4.0" }
-spacetimedb-sats = { path = "crates/sats", version = "1.4.0" }
-spacetimedb-schema = { path = "crates/schema", version = "1.4.0" }
-spacetimedb-standalone = { path = "crates/standalone", version = "1.4.0" }
-spacetimedb-sql-parser = { path = "crates/sql-parser", version = "1.4.0" }
-spacetimedb-table = { path = "crates/table", version = "1.4.0" }
-spacetimedb-vm = { path = "crates/vm", version = "1.4.0" }
-spacetimedb-fs-utils = { path = "crates/fs-utils", version = "1.4.0" }
-spacetimedb-snapshot = { path = "crates/snapshot", version = "1.4.0" }
-spacetimedb-subscription = { path = "crates/subscription", version = "1.4.0" }
+spacetimedb = { path = "crates/bindings", version = "1.5.0" }
+spacetimedb-auth = { path = "crates/auth", version = "1.5.0" }
+spacetimedb-bindings-macro = { path = "crates/bindings-macro", version = "1.5.0" }
+spacetimedb-bindings-sys = { path = "crates/bindings-sys", version = "1.5.0" }
+spacetimedb-cli = { path = "crates/cli", version = "1.5.0" }
+spacetimedb-client-api = { path = "crates/client-api", version = "1.5.0" }
+spacetimedb-client-api-messages = { path = "crates/client-api-messages", version = "1.5.0" }
+spacetimedb-codegen = { path = "crates/codegen", version = "1.5.0" }
+spacetimedb-commitlog = { path = "crates/commitlog", version = "1.5.0" }
+spacetimedb-core = { path = "crates/core", version = "1.5.0" }
+spacetimedb-data-structures = { path = "crates/data-structures", version = "1.5.0" }
+spacetimedb-datastore = { path = "crates/datastore", version = "1.5.0" }
+spacetimedb-durability = { path = "crates/durability", version = "1.5.0" }
+spacetimedb-execution = { path = "crates/execution", version = "1.5.0" }
+spacetimedb-expr = { path = "crates/expr", version = "1.5.0" }
+spacetimedb-lib = { path = "crates/lib", default-features = false, version = "1.5.0" }
+spacetimedb-memory-usage = { path = "crates/memory-usage", version = "1.5.0", default-features = false }
+spacetimedb-metrics = { path = "crates/metrics", version = "1.5.0" }
+spacetimedb-paths = { path = "crates/paths", version = "1.5.0" }
+spacetimedb-pg = { path = "crates/pg", version = "1.5.0" }
+spacetimedb-physical-plan = { path = "crates/physical-plan", version = "1.5.0" }
+spacetimedb-primitives = { path = "crates/primitives", version = "1.5.0" }
+spacetimedb-query = { path = "crates/query", version = "1.5.0" }
+spacetimedb-sats = { path = "crates/sats", version = "1.5.0" }
+spacetimedb-schema = { path = "crates/schema", version = "1.5.0" }
+spacetimedb-standalone = { path = "crates/standalone", version = "1.5.0" }
+spacetimedb-sql-parser = { path = "crates/sql-parser", version = "1.5.0" }
+spacetimedb-table = { path = "crates/table", version = "1.5.0" }
+spacetimedb-vm = { path = "crates/vm", version = "1.5.0" }
+spacetimedb-fs-utils = { path = "crates/fs-utils", version = "1.5.0" }
+spacetimedb-snapshot = { path = "crates/snapshot", version = "1.5.0" }
+spacetimedb-subscription = { path = "crates/subscription", version = "1.5.0" }
 
diff --git a/LICENSE.txt b/LICENSE.txt
index 7c5f3cfff..d6571c196 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -7,3 +7,3 @@ Parameters
 Licensor:             Clockwork Laboratories, Inc.
-Licensed Work:        SpacetimeDB 1.4.0
+Licensed Work:        SpacetimeDB 1.5.0
                       The Licensed Work is
@@ -23,3 +23,3 @@ Additional Use Grant: You may make use of the Licensed Work provided your
 
-Change Date:          2030-09-22
+Change Date:          2030-09-29
 
diff --git a/crates/cli/src/subcommands/project/rust/Cargo._toml b/crates/cli/src/subcommands/project/rust/Cargo._toml
index d2a3da80f..2bd500e78 100644
--- a/crates/cli/src/subcommands/project/rust/Cargo._toml
+++ b/crates/cli/src/subcommands/project/rust/Cargo._toml
@@ -11,3 +11,3 @@ crate-type = ["cdylib"]
 [dependencies]
-spacetimedb = "1.4"
+spacetimedb = "1.5"
 log = "0.4"
diff --git a/licenses/BSL.txt b/licenses/BSL.txt
index 125fcf25a..e35adb65f 100644
--- a/licenses/BSL.txt
+++ b/licenses/BSL.txt
@@ -7,3 +7,3 @@ Parameters
 Licensor:             Clockwork Laboratories, Inc.
-Licensed Work:        SpacetimeDB 1.4.0
+Licensed Work:        SpacetimeDB 1.5.0
                       The Licensed Work is
@@ -23,3 +23,3 @@ Additional Use Grant: You may make use of the Licensed Work provided your
 
-Change Date:          2030-09-03
+Change Date:          2030-09-29
```

- [x] `cargo bump-versions 1.5.0 --typescript`
```
diff --git a/crates/bindings-typescript/package.json b/crates/bindings-typescript/package.json
index 2a3ac1d8b..e313ce262 100644
--- a/crates/bindings-typescript/package.json
+++ b/crates/bindings-typescript/package.json
@@ -2,3 +2,3 @@
   "name": "spacetimedb",
-  "version": "1.4.0",
+  "version": "1.5.0",
   "description": "API and ABI bindings for the SpacetimeDB TypeScript module library",
```

- [x] `cargo bump-versions 1.5.0 --csharp`
```
diff --git a/crates/bindings-csharp/BSATN.Codegen/BSATN.Codegen.csproj b/crates/bindings-csharp/BSATN.Codegen/BSATN.Codegen.csproj
index 1b4193828..f9d87e31b 100644
--- a/crates/bindings-csharp/BSATN.Codegen/BSATN.Codegen.csproj
+++ b/crates/bindings-csharp/BSATN.Codegen/BSATN.Codegen.csproj
@@ -4,3 +4,3 @@
     <AssemblyName>SpacetimeDB.BSATN.Codegen</AssemblyName>
-    <Version>1.4.0</Version>
+    <Version>1.5.0</Version>
     <Title>SpacetimeDB BSATN Codegen</Title>
diff --git a/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj b/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
index 4ca49e0a0..781699c02 100644
--- a/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
+++ b/crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj
@@ -4,3 +4,3 @@
     <AssemblyName>SpacetimeDB.BSATN.Runtime</AssemblyName>
-    <Version>1.4.0</Version>
+    <Version>1.5.0</Version>
     <Title>SpacetimeDB BSATN Runtime</Title>
diff --git a/crates/bindings-csharp/Codegen/Codegen.csproj b/crates/bindings-csharp/Codegen/Codegen.csproj
index e701d4b44..d5a60956c 100644
--- a/crates/bindings-csharp/Codegen/Codegen.csproj
+++ b/crates/bindings-csharp/Codegen/Codegen.csproj
@@ -4,3 +4,3 @@
     <AssemblyName>SpacetimeDB.Codegen</AssemblyName>
-    <Version>1.4.0</Version>
+    <Version>1.5.0</Version>
     <Title>SpacetimeDB Module Codegen</Title>
diff --git a/crates/bindings-csharp/Runtime/Runtime.csproj b/crates/bindings-csharp/Runtime/Runtime.csproj
index 361f7db4d..a5492c4d3 100644
--- a/crates/bindings-csharp/Runtime/Runtime.csproj
+++ b/crates/bindings-csharp/Runtime/Runtime.csproj
@@ -4,3 +4,3 @@
     <AssemblyName>SpacetimeDB.Runtime</AssemblyName>
-    <Version>1.4.0</Version>
+    <Version>1.5.0</Version>
     <Title>SpacetimeDB Module Runtime</Title>
diff --git a/crates/cli/src/subcommands/project/csharp/StdbModule._csproj b/crates/cli/src/subcommands/project/csharp/StdbModule._csproj
index 65e514c72..63ebb94a8 100644
--- a/crates/cli/src/subcommands/project/csharp/StdbModule._csproj
+++ b/crates/cli/src/subcommands/project/csharp/StdbModule._csproj
@@ -10,3 +10,3 @@
   <ItemGroup>
-    <PackageReference Include="SpacetimeDB.Runtime" Version="1.4.*" />
+    <PackageReference Include="SpacetimeDB.Runtime" Version="1.5.*" />
   </ItemGroup>
diff --git a/demo/Blackholio/server-csharp/StdbModule.csproj b/demo/Blackholio/server-csharp/StdbModule.csproj
index cd429eb32..5fbfde1b9 100644
--- a/demo/Blackholio/server-csharp/StdbModule.csproj
+++ b/demo/Blackholio/server-csharp/StdbModule.csproj
@@ -15,3 +15,3 @@
   <ItemGroup>
-    <PackageReference Include="SpacetimeDB.Runtime" Version="1.0.0" />
+    <PackageReference Include="SpacetimeDB.Runtime" Version="1.5.*" />
   </ItemGroup>
diff --git a/sdks/csharp/SpacetimeDB.ClientSDK.csproj b/sdks/csharp/SpacetimeDB.ClientSDK.csproj
index 27ba3ab72..14c04bfe4 100644
--- a/sdks/csharp/SpacetimeDB.ClientSDK.csproj
+++ b/sdks/csharp/SpacetimeDB.ClientSDK.csproj
@@ -18,4 +18,4 @@
     <RepositoryUrl>https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk</RepositoryUrl>
-    <AssemblyVersion>1.4.0</AssemblyVersion>
-    <Version>1.4.0</Version>
+    <AssemblyVersion>1.5.0</AssemblyVersion>
+    <Version>1.5.0</Version>
     <DefaultItemExcludes>$(DefaultItemExcludes);*~/**</DefaultItemExcludes>
@@ -27,3 +27,3 @@
   <ItemGroup>
-    <PackageReference Include="SpacetimeDB.BSATN.Runtime" Version="1.4.*" />
+    <PackageReference Include="SpacetimeDB.BSATN.Runtime" Version="1.5.*" />
 
diff --git a/sdks/csharp/examples~/quickstart-chat/server/StdbModule.csproj b/sdks/csharp/examples~/quickstart-chat/server/StdbModule.csproj
index 633b214b7..29344f061 100644
--- a/sdks/csharp/examples~/quickstart-chat/server/StdbModule.csproj
+++ b/sdks/csharp/examples~/quickstart-chat/server/StdbModule.csproj
@@ -16,3 +16,3 @@
   <ItemGroup>
-    <PackageReference Include="SpacetimeDB.Runtime" Version="1.4.*" />
+    <PackageReference Include="SpacetimeDB.Runtime" Version="1.5.*" />
   </ItemGroup>
diff --git a/sdks/csharp/examples~/regression-tests/server/StdbModule.csproj b/sdks/csharp/examples~/regression-tests/server/StdbModule.csproj
index 65e514c72..63ebb94a8 100644
--- a/sdks/csharp/examples~/regression-tests/server/StdbModule.csproj
+++ b/sdks/csharp/examples~/regression-tests/server/StdbModule.csproj
@@ -10,3 +10,3 @@
   <ItemGroup>
-    <PackageReference Include="SpacetimeDB.Runtime" Version="1.4.*" />
+    <PackageReference Include="SpacetimeDB.Runtime" Version="1.5.*" />
   </ItemGroup>
diff --git a/sdks/csharp/package.json b/sdks/csharp/package.json
index 4585de204..025dfc6c1 100644
--- a/sdks/csharp/package.json
+++ b/sdks/csharp/package.json
@@ -3,3 +3,3 @@
   "displayName": "SpacetimeDB SDK",
-  "version": "1.4.0",
+  "version": "1.5.0",
   "description": "The SpacetimeDB Client SDK is a software development kit (SDK) designed to interact with and manipulate SpacetimeDB modules..",
```

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-09-30 18:47:19 +00:00
Kim Altintop 43389dd4e0 Make the .NET global.json file global (#3297)
Move the global.json file to the repo root, which should make `dotnet`
resolve the correct SDK regardless of the directory it is run in.

Where a copy of the global.json file is needed, symlink it to the one at
the root.

Should fix "C#/Unity - Test Suite".
2025-09-30 16:39:21 +00:00
Mario Montoya c78df3f957 Fix CI breakage by PR #3309 (#3314)
# Description of Changes

Cause by https://github.com/clockworklabs/SpacetimeDB/pull/3309
2025-09-29 21:09:53 -07:00
Mario Montoya ae7fee64d4 Make optional to listen to pg wire protocol and param for the port (#3309)
# Description of Changes

As the title says.

Add `--pg-port NUM` to the `start` command

# API and ABI breaking changes

Before this, it was set to `5432` unconditionally.

Docs updated at https://github.com/clockworklabs/SpacetimeDB/pull/3302.

# Expected complexity level and risk
1

# Testing

- [x] Run smoke tests
2025-09-29 18:19:38 -04:00
Tyler Cloutier 58d299ea42 Removed @clockworklabs/typescript-sdk in favor of spacetimedb (#3262)
# Description of Changes

This PR removes the `@clockworklabs/typescript-sdk` from the repository
and retains only `spacetimedb` in the `crates/bindings-typescript`
directory. Some files are migrated to `spacetimedb`. I have also updated
the appropriate READMEs.

In addition I have symlinked the old `sdks/typescript` directory to
point to `crates/bindings-typescript`.

# API and ABI breaking changes

This is not technically a breaking change of any kind, although it does
orphan and deprecate the
[@clockworklabs/spacetimedb-sdk](https://www.npmjs.com/package/@clockworklabs/spacetimedb-sdk)
npm package. This package will no longer work with SpacetimeDB.

Users should now install and use the `spacetimedb` package.

# Expected complexity level and risk

2, it's a straightforward change but affects many files.

# Testing

- [ ] I ran `pnpm test` in the `spacetimedb` package
- [ ] I ran the quickstart app

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-09-23 00:25:24 +00:00
Jason Larabie 26e99fe5e5 Added the Unreal SDK work for codegen, testing, and the plugin (#3223)
# Description of Changes

Closes #3219 
This adds the Unreal SDK, the new Unreal test cases, updates the test
runner to handle Unreal, codegen updates for Unreal, and a QuickStart
Chat.

# API and ABI breaking changes

No breaking changes.

# Expected complexity level and risk

2 - This impacts the subcommand generate.rs to include unrealcpp and
crates/testing to expand for Unreal

# Testing

- [x] Run the new Unreal tests 
- [x] Run any previous automation testing - with all the changes to
generate/testing I'm uncertain if there is an impact
- [x] Review the new CLI generate documentation changes

---------

Co-authored-by: Phoebe Goldman <phoebe@goldman-tribe.org>
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Co-authored-by: John Detter <4099508+jdetter@users.noreply.github.com>
2025-09-19 22:52:53 +00:00
Tyler Cloutier c83f55f65e Refactors TypeScript into a single spacetimedb package (#3248)
# Description of Changes

This PR moves most of the contents of `@clockworklabs/spacetimedb-sdk`
into the `spacetimedb` module. The `spacetimedb` module now exports
`sdk` and `server` as separate subpaths where `sdk` contains the code
which was previously in `@clockworklabs/spacetimedb-sdk`.

In particular it makes the following moves:

- `/sdks/typescript/packages/sdk` -> `/sdks/typescript`
- most of the contents of `/sdks/typescript/packages/sdk` ->
`crates/bindings-typescript`
- `/sdks/typescript/packages/test-app` ->
`crates/bindings-typescript/test-app`

The following packags was NOT moved:

`/sdks/typescript/examples/quickstart-chat`

## Motivation

In accordance with
https://github.com/clockworklabs/SpacetimeDB/issues/3250, we would like
to consolidate `@clockworklabs/spacetimedb-sdk` into a single
`spacetimedb` package so that users can import the different things they
need from a single package.

### Pros:
- allow users to install a single package with subpaths `spacetimedb`,
`spacetimedb/react`, `spacetimedb/sdk`, `spacetimedb/server`, etc.
- Is much simpler for bundling, etc.
- Is backwards compatible with `@clockworklabs/spacetimedb-sdk` which
now becomes a thin wrapper
- eventually allow us to break up the `spacetimedb` package into other
packages if we want to split them up (e.g. `@spacetimedb/lib`,
`@spacetimedb/sdk`, etc.) and we can solve the build complexity that
introduces when we get to it
- eventually allow us to move `bindings-csharp` out of the crates
directory where it probably doesn't belong anyway
- organizes all TypeScript packages into the packages directory where
you'd normally expect them, with the possible exception of
`/sdks/typescript` if we wanted to leave that separate

### Cons:
- The `sdk` directory is now a bit of a ruse as to where the code
actually lives since it's just a thin wrapper. If it eventually becomes
its own independent package, we'll also have to break up spacetimedb
into `@spacetimedb/lib` and `@spacetimedb/server` so that
`@clockworklabs/spacetimedb-sdk` can depend on `@spacetimedb/lib` while
being a dependency of `spacetimedb`.

Ideally this change would have been made later, however, it became
necessary for the following **heinously disastrous chain of forcing
moves**:

1. Adding `react` support necessitated shipping react as an optional
peer dependency under `@clockworklabs/spacetimedb-sdk/react`
2. This required adding a new build target/export/bundle
3. Previously `@clockworklabs/spacetimedb-sdk` was configured to have
`noExternal` for `spacetimedb` meaning it would collect the library into
the sdk bundle. I attempted to continue this for react support but...
4. Creating a new `react` bundle which also pulled in `spacetimedb`
caused their to be nominal type conflicts between classes in the
duplicate `spacetimedb` bundles.
5. Changing `spacetimedb` to be included as `external` caused compile
errors because `@clockworklabs/spacetimedb-sdk` is configured in
`tsconfig.json` to fail on unused variables and it was now including the
source of `spacetimedb` which is not configured to error on unused
variables and has "unused" private variables which are actually used by
us secretly, but not exposed to the clients.
> SIDE NOTE: The unused variables settings cannot be turned off on a
line by line basis, so it has to be turned off entirely, but in order to
maintain the linting checks we had I used `eslint` to enforce the rule
so that we could disable it line by line. (This caused me to discover
quite a lot of things that were broken that were caught by `eslint`
being applied to the entire project. `eslint` was previously only
applied to the `quickstart-chat` and the `crates/bindings-typescript`
library)
6. Changing the build to be external, now requires `spacetimedb` to also
be published to npm as its own module which
`@clockworklabs/spacetimedb-sdk` now imports, which requires that we add
`tsup` config to `spacetimedb` to publish a built version of the
library.
7. The only way to avoid that is to move the `sdk` and `react` code from
`@clockworklabs/spacetimedb-sdk` into the existing `spacetimedb` package
to avoid the duplicate import problem on step 4 and change
`@clockworklabs/spacetimedb-sdk` back to again use `noExternal` for its
`spacetimedb` dependency.

And here we are. I chose not to move `/crates/bindings-typescript` even
though that's probably not a great place long term. It would be better
to have it in `/packages/spacetimedb` or `/npm-packages/spacetimedb` or
`/ts-packages/spacetimedb` or something, and move all our TypeScript
packages in there. But that is a different matter.

The net result however is that we have a new `spacetimedb` package which
exports the different parts of the API under:

- `spacetimedb`
- `spacetimedb/server`
- `spacetimedb/sdk`
- `spacetimedb/react`

while still not breaking the existing deploy process, nor any
users/developers who are currently using
`@clockworklabs/spacetimedb-sdk`.

I think long term should we ever decide to split `spacetimedb` up into
multiple packages or if we have additional unrelated packages, we should
publish them to the `@spacetimedb` org which I reserved for us here:

https://www.npmjs.com/org/spacetimedb

> NOTE: `spacetimedb` is a package and `@spacetimedb` is an org.
`spacetimedb/sdk` is not a separate package, it's a subpath export of
the `spacetimedb` package, whereas `@spacetimedb/sdk` would be (and
would need to be) it's own separate package. You can certainly have both
`spacetimedb/sdk` and `@spacetimedb/sdk`. We could for example host the
code for the sdk at `@spacetimedb/sdk` and just reexport it from
`spacetimedb` under the `spacetimedb/sdk` subpath.

# API and ABI breaking changes

This should not change or modify the API or ABI in any way. If it does
so accidentally it is a bug, although I carefully went through the
exports.

# Expected complexity level and risk

3 because it changes how the SDK is built a bit and rearranges a lot of
paths.

# Testing

- [x] All of the CI passes
- [x] I also ran quickstart-chat to confirm that it is not broken
- [x] I also ran test-app
2025-09-19 19:33:45 +00:00
Mario Montoya 8adef2b93b Support for the PG wire protocol (#2702)
# Description of Changes

Closes
[#2686](https://github.com/clockworklabs/SpacetimeDB/issues/2686).

Add support for listening using the [PG wire
protocol](https://www.postgresql.org/docs/current/protocol.html) so `pg`
clients could be used against the database.

# API and ABI breaking changes

The output of `duration` is changed to `rfc3339`, instead of the way is
made with `sats` because is what is done in `pg`, see note below.

# Expected complexity level and risk

2

~~There is open questions that are in the [ticket
#2686](https://github.com/clockworklabs/SpacetimeDB/issues/2686). Also
the crate used here require `RustTls`, so it could be good idea to
decide if~~:

* ~~Rewrite a big chunk of code to use `OpenSSL`~~
* ~~Move to `RustTls`
https://github.com/clockworklabs/SpacetimeDB/pull/1700~~
* ~~Pay for the extra compilation cost~~.

I open another port(`5433`) to listen for `pg` connections using `ssl`.
Need to be decided if this is the way or instead try to multi-plex the
current port for both protocols.

# Testing

Only manual testing so far. Solving the above questions allow me to
implement some unit tests. Also, not yet integrated into cloud for the
same reasons.

- [x] Adding some test for the binary encoding of special and primitive
types
- [x] Smoke test using `psql` that connect to the db instance and run
some queries
- [x] Manually inspect using a UI database explorer how infer the types,
some of this tools generate special widgets when displaying `json,
duration, etc`

---------

Co-authored-by: Noa <coolreader18@gmail.com>
2025-09-10 19:58:03 +00:00
Tyler Cloutier ada45d464f Adds TypeBuilders and ColumnBuilders for specifying the schema of a TypeScript module (#3208)
# Description of Changes

This is a purely additive change to introduce, `TypeBuilder`s,
`ColumnBuilder`s, and a `t` factory export that has methods for creating
`TypeBuilder`s.

There are derived types from `TypeBuilder`s for each variant of
`AlgebraicType`. `TypeBuilder`s can be converted into a `ColumnBuilder`
which supports creating additional metadata specifying whether a column
is a primary key or should be unique. `ColumnBuilder`s are not allowed
within `TypeBuilder`s, but the opposite is allowed (for composite
types).

`ColumnBuilder`s can only be used at the top level and contain a
`TypeBuilder`.

`TypeBuilder` stores three pieces of information:

1. A phantom typescript type that the SATS type should be interpreted as
in TS
2. A phantom typescript type which is the type of the SATS type
3. A runtime AlgebraicType which stores the information to be reported
to host.

`ColumnBuilder` stores three pieces of information:

1. A `TypeBuilder`
2. A phantom typescript type with the column metadata
3. A runtime `ColumnMetadata` which stores the information to be
reported to the host.

Additionally, it is only possible to add metadata to `ColumnBuilder` or
`TypeBuilder` types which are compatible with that metadata. e.g. It is
a compile-time error to add `isAutoIncrementing` to a `String`
type/column.

# API and ABI breaking changes

None

# Expected complexity level and risk

2

# Testing

<!-- Describe any testing you've done, and any testing you'd like your
reviewers to do,
so that you're confident that all the changes work as expected! -->

- [x] I've created a set of type tests in `type_builders.test-d.ts`
- [x] I also created a set of runtime tests in `index.test.ts`
- [x] I have modified CI so that these tests run on every PR
2025-09-08 15:44:04 +00:00
Tyler Cloutier 413c8cbf3c Unifies TypeScript packages and command names (#3195)
# Description of Changes

This PR:
 - standardizes the prettier config across all TypeScript projects
 - adds a root level package.json
 - standardizes all `pnpm` commands to be the same
 - updates documentation accordingly
- adds some additional typescript testing for serialization and
deserialization
 
**IMPORTANT!** Once this PR merges we will need to change the
`compile-and-test` required check to `build-and-test`

# API and ABI breaking changes

No breaking changes.

# Expected complexity level and risk

2 - It in principle doesn't change any code, but could affect deploy
processes.

# Testing

- [x] Just the automated testing that we had previously
- [x] I added additional automated tests

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-09-04 02:23:29 +00:00
Zeke Foppa 726345206f CI - License checks (#3197)
# Description of Changes

- Checks that all `LICENSE`/`LICENSE.txt` files are symlinks to
something in `licenses/`
- Checks that all license symlinks are valid
- Adds Tyler as a codeowner for `LICENSE`

# API and ABI breaking changes

None.

# Expected complexity level and risk

2

# Testing

- [x] new CI fails on this PR (because
https://github.com/clockworklabs/SpacetimeDB/pull/3193 isn't merged yet)
- [x] new CI passes on a test PR with
https://github.com/clockworklabs/SpacetimeDB/pull/3193 merged in
(https://github.com/clockworklabs/SpacetimeDB/pull/3198)

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-09-03 19:55:41 +00:00
Zeke Foppa d8505596b7 CI - Fix caching in C#/Unity testsuite (#3194)
# Description of Changes

We had weird caching issues in the C#/Unity testsuite. Somehow, they got
triggered only as of
https://github.com/clockworklabs/SpacetimeDB/pull/3181 merging, and I
have no idea why/how.

I've restored the `id` field of the checkout step (which is used by the
cache step), and this _seems_ to have fixed it.

# API and ABI breaking changes

None.

# Expected complexity level and risk

1

# Testing

- [x] It passes on this PR
- [x] It passes in a test PR that combines this change with
https://github.com/clockworklabs/SpacetimeDB/pull/3182

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-08-21 18:35:52 +00:00
Zeke Foppa ed7de0da97 CI - Remove bots please (#3102)
# Description of Changes

We haven't used this in a while and we're pretty sure it's currently
broken.

# API and ABI breaking changes

None.

# Expected complexity level and risk

1

# Testing

None

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-08-04 16:00:02 +00:00
Zeke Foppa f664a63891 CI - Make new CI checks run in merge queue (#3016)
# Description of Changes

A few of our new CI checks weren't set up to run in the merge queue,
which prevented PRs from merging when those checks were marked required.

# API and ABI breaking changes

None. CI only change.

# Expected complexity level and risk

1

# Testing

This will have to be tested by making these checks required again, and
then seeing if this PR can merge.

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-08-01 18:36:11 +00:00
Zeke Foppa 0d0f824eb4 CI - Set Unity testsuite timeout to 30m (#3015)
# Description of Changes

Just what it says on the can. This test suite can sometimes mysteriously
hang for a long time, so a timeout will help kill this (and free up
resources) earlier.

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing

None really. I guess I could test this by adding a step that just sleeps
forever, but this is basically just setting some data.

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-08-01 16:55:09 +00:00
Zeke Foppa 679ebe5678 CI - C#/Unity test suite concurrency improvements (#3001)
# Description of Changes

New Unity test suite runs will cancel existing in-progress runs on the
same PR or github ref.

I tried to add a global limit of 2 test suites running at the same time,
but I did not find a successful way of making this work.

# API and ABI breaking changes

None. CI-only change.

# Expected complexity level and risk

1

# Testing
- [x] Test suite still runs and succeeds
- [x] If I push several commits in a row, previous runs get cancelled

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-29 19:05:02 +00:00
Zeke Foppa 797eea8575 CI - Monorepo tweaks (#3000)
# Description of Changes

Some small CI tweaks related to the monorepo merge.

Once we've landed these, I think we can make most of the new checks
required.

# API and ABI breaking changes

CI only changes

# Expected complexity level and risk

1

# Testing

None, just tweaked names.

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-29 17:58:03 +00:00
Zeke Foppa e0ae18c99e CI - Check C# quickstart-chat bindings are up to date (#2979)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-25 17:49:27 +00:00
Zeke Foppa 6c9aebdbf3 Docs CI - Check that nav.js matches the .md files list (#2984)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-25 16:54:25 +00:00
Kim Altintop 50fd07af4d ci: Skip the Unity tests if the PR is an external contribution (#2978) 2025-07-25 04:59:13 +00:00
Kim Altintop 6b9b0e3b81 smoketests: Fix server restarts and make more robust (#2977) 2025-07-23 15:29:43 +00:00
Kim Altintop 6979df59f6 ci: Temporarily disable zz_docker tests (#2974) 2025-07-22 18:24:29 +00:00
Zeke Foppa ca66340315 Disable musl builds (#2964)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-21 18:48:03 +00:00
Zeke Foppa ccc4d06ddb Update GitHub files for C#/Unity SDK (#2952)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-21 14:44:47 +00:00
Zeke Foppa 7afa0b4cce Docs import - Update GitHub-related files (#2949)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-17 16:24:09 +00:00
Zeke Foppa cbba2b29c1 Fix up GitHub files related to TypeScript SDK (#2943)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-07-16 19:32:04 +00:00
Noa 742303ca49 Bump rust-toolchain to rust 1.88 (#2749)
Co-authored-by: Mazdak Farrokhzad <twingoow@gmail.com>
2025-07-15 17:39:41 +00:00
Zeke Foppa fae2c7ece3 CI - Remove outdated Contributor Membership Check (#2827)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-06-04 16:57:21 +00:00
Viktor Szépe f6da9e1f5f Fix typos (#2812)
Signed-off-by: Viktor Szépe <viktor@szepe.net>
2025-06-04 16:33:32 +00:00
Kim Altintop f14d7cf5e2 ci: Update dependencies for the wasm_bindings job (#2717) 2025-05-19 07:53:18 +00:00
Jeffrey Dallatezza 14ba750155 Add information about the CLI version to generated code. (#2673) 2025-05-01 21:17:30 +00:00
Noa 020d64c1f1 Split client codegen out into its own crate (#2593)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-04-29 17:54:25 +00:00
Kim Altintop 7f0502ecf7 Replication Smoketest Cleanups (#2675)
Co-authored-by: Shubham Mishra <shubham@clockworklabs.io>
Co-authored-by: Shubham Mishra <shivam828787@gmail.com>
2025-04-28 11:39:07 +00:00
Zeke Foppa 118e59de14 CI - Do some basic checks that crates are publishable (#2660)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-04-23 17:08:43 +00:00
Zeke Foppa 2d0b4127c2 CI - Test spacetimedb-update self-install (#2637)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-04-19 01:44:20 +00:00
Zeke Foppa 4ec9d11e7a CI - Fix job that packages the CLI for release (#2617)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2025-04-15 22:00:52 +00:00
Phoebe Goldman 80b3613f45 Add CI job to run cargo doc on the bindings crate (#2548) 2025-04-03 17:41:17 +00:00