Skip to content

Lift restriction that multi-col indices only allow = constraints #2872

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 682 commits into
base: mamcx/query-test-explain
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
682 commits
Select commit Hold shift + click to select a range
30852e7
Renamed client directory to client-unity (#15)
rekhoff Jan 24, 2025
abbf043
Merged the player and logged_out_player tables (#16)
rekhoff Jan 24, 2025
27be301
Bump version to `1.0.0-rc3-hotfix3` (#222)
bfops Jan 24, 2025
80e886a
Rekhoff/unity blackhol.io tutorial switcher (#140)
rekhoff Jan 24, 2025
76194c2
Revert trunk branch versions to `1.0.0-rc3` (no hotfix) (#223)
bfops Jan 27, 2025
aa6cb5b
Revert DLLs to `1.0.0-rc3` (#224)
bfops Jan 27, 2025
011187d
Changed subscript to SubscribeToAllTables (#155)
rekhoff Jan 27, 2025
2ab7e5e
Updated the TypeScript quickstart guide to use the new 1.0 API (#141)
cloutiertyler Jan 28, 2025
3c15d8a
Update Rust client SDK docs for SpacetimeDB#2118 (#130)
gefjon Jan 28, 2025
82ad0a0
Bump version to `1.0.0-rc4` (#225)
bfops Jan 29, 2025
8355ac2
docs(70): The 1.0 SQL spec
joshua-spacetime Jul 16, 2024
f4cc0b3
Improve CI caching (#228)
RReverser Feb 5, 2025
cefc727
Rewrite C# codegen to the new Lang infra + fixes (#220)
RReverser Feb 5, 2025
636e7fe
Update for new codegen (#18)
kazimuth Feb 5, 2025
fed2a9d
Fix handling of multi-tables (#229)
RReverser Feb 6, 2025
b4aa612
Make Timestamp and TimeDuration special types (#233)
kazimuth Feb 7, 2025
9f58828
Rework event contexts in C# (#240)
kazimuth Feb 7, 2025
f966144
Update DLLs (#241)
bfops Feb 7, 2025
fa25bed
Updated the quickstart to use the new 1.0 API (#130)
cloutiertyler Feb 8, 2025
f26e9cc
Small TS SDK Quickstart Fixes (#157)
cloutiertyler Feb 8, 2025
6c11c86
Style guide: add formatting advice for GUI elements and menu paths (#…
gefjon Feb 8, 2025
b882aee
Updates the TypesScript SDK to use the new EventContext variants (#136)
cloutiertyler Feb 8, 2025
f86104f
Add `Timestamp` to the SDK, moving it out of `client_api` (#114)
gefjon Feb 8, 2025
cc0747c
Add shared `ScheduleAt` type (#88)
kazimuth Feb 8, 2025
96d52c1
Rename `Address` to `ConnectionId` (#239)
gefjon Feb 10, 2025
8163131
TypeScript SDK: Rename address to connection ID (#133)
gefjon Feb 10, 2025
d16e2d6
Now emitting UnknownTransaction (#138)
cloutiertyler Feb 10, 2025
61c1f0e
Implemented the new mutable subscriptions API (#135)
cloutiertyler Feb 11, 2025
204d43c
DBConnection -> DbConnection + some comments (#137)
cloutiertyler Feb 11, 2025
a344b5e
Switch to Bearer auth (#131)
coolreader18 Feb 11, 2025
086a239
Reimplemented/rebased the changes Noa submitted (#134)
coolreader18 Feb 11, 2025
498b25f
Emit Event.UnknownTransaction rather than throwing on unknown reducer…
kazimuth Feb 11, 2025
c6eded9
Adjust http api usage for glowup (#242)
coolreader18 Feb 11, 2025
076d4ec
Strip trailing `/` from URIs before connecting (#238)
bfops Feb 11, 2025
0386121
Switch to Bearer auth (#236)
coolreader18 Feb 11, 2025
724ac3b
Update for Timestamp stuff & EventContext stuff & ConnectionId stuff …
kazimuth Feb 11, 2025
4d9cc59
Import timestamp and duration by file, not from root (#139)
gefjon Feb 11, 2025
094f6c9
Remove WebSocket api docs and all references to them (#165)
joshua-spacetime Feb 12, 2025
b80a2b9
CI - Update release branch check (#246)
bfops Feb 13, 2025
860edb4
CLI docs (#168)
bfops Feb 19, 2025
fdc8c25
bump versions to 1.0.0 (#126)
bfops Feb 19, 2025
8e0ed66
Disable SpacetimeDB integration test for now (#145)
cloutiertyler Feb 19, 2025
fa32101
Add link to the `cli` (#171)
mamcx Feb 20, 2025
3bccc07
Rename satn.md -> sats-json.md (#158)
coolreader18 Feb 21, 2025
ec14d20
Fix auto_inc attribute name (#175)
mamcx Feb 21, 2025
43a1632
Document LIMIT and COUNT (#178)
joshua-spacetime Feb 24, 2025
9efb7f0
Add best practices for Spacetime SQL (#180)
joshua-spacetime Feb 25, 2025
9a86ea1
API for mutable subscriptions (#166)
joshua-spacetime Feb 25, 2025
7b0ad99
Remove references to SpacetimeDB 0.6
joshua-spacetime Feb 25, 2025
df263b1
Remove reference to set energy-balance in http api
joshua-spacetime Feb 25, 2025
53d99af
Remove references to testnet
joshua-spacetime Feb 25, 2025
083531e
SubscribeMulti + UnsubscribeMulti, multiplicities (#249)
kazimuth Feb 25, 2025
83da8dd
Handle duplicate rows and delay callbacks (#146)
jsdt Feb 26, 2025
7ed444c
Remove 0.12 migration guide
joshua-spacetime Feb 26, 2025
d41bc73
Update to C# Quickstart-Chat Server Module and Client SDK tutorial do…
rekhoff Feb 26, 2025
8d04c3e
Move Rust Module SDK reference to docs.rs (#114)
kazimuth Feb 26, 2025
b1a9f96
Fix comment for SubscribeToAllTables (#256)
joshua-spacetime Feb 26, 2025
9e8463a
Document reducer semantics wrt. transactionality (#185)
Centril Feb 27, 2025
5943e6f
Document behaviour of SEQUENCES (#174)
mamcx Feb 27, 2025
df1dcf2
Fix comment for SubscribeToAllTables (#259)
joshua-spacetime Feb 28, 2025
05f6de9
Update Rust client SDK quickstart for 1.0 API (#162)
gefjon Feb 28, 2025
7c87879
Add docs for standalone config.toml (#190)
coolreader18 Feb 28, 2025
f38e72e
Update docs for http api (#188)
coolreader18 Feb 28, 2025
01adcc7
Bump version for release (#148)
jdetter Feb 28, 2025
fdfe68a
Update Rust SDK ref, and also a few small fixes (#172)
gefjon Mar 3, 2025
11b45c1
How-to: Incremental Migrations (#127)
gefjon Mar 3, 2025
84acba2
Updates to blackhol.io tutorials (#194)
rekhoff Mar 3, 2025
25689c1
Update C# server and client quickstart examples to match tutorial doc…
rekhoff Mar 3, 2025
bc6ecab
Updated with corrected table names to lower case, for compatibility w…
rekhoff Mar 3, 2025
12a1fdf
Small doc fixes potpourri (#198)
gefjon Mar 3, 2025
ebce4c2
Fixes the typescript quickstart for the new subscription API (#161)
cloutiertyler Mar 3, 2025
8d68997
Multiplayer bug fix in tutorial (#169)
jdetter Mar 3, 2025
b8c8a0f
Add instructions for deploying to maincloud (#167)
bfops Mar 4, 2025
52b80ef
C# Module Library docs (#193)
kazimuth Mar 4, 2025
68a8daa
C# sdk reference (#191)
joshua-spacetime Mar 4, 2025
973b623
Describe how a JWT's sub/iss are translated into an Identity (#204)
coolreader18 Mar 4, 2025
6cce14e
Rekhoff/blackholio fixes (#205)
rekhoff Mar 4, 2025
bb50146
Updates to fix multiplayer bug found in tutorial. (#23)
rekhoff Mar 4, 2025
e21566a
Update README (#260)
kazimuth Mar 4, 2025
60761bb
Bump versions to 1.0.0 (#253)
bfops Mar 4, 2025
a97ca01
Bump Typescript SDK Version in Quickstart (#208)
jdetter Mar 4, 2025
d9ef0a6
Fix code error and wrong code block (#210)
hardliner66 Mar 4, 2025
707446a
Self-Hosted guide (#206)
jdetter Mar 4, 2025
47dd62a
Set other url params even if we dont have an authToken. (#151)
jsdt Mar 4, 2025
2a7d05d
Version 1.0.2 (#152)
jdetter Mar 4, 2025
990fe06
Bump typescript version to 1.0.2 (#213)
jdetter Mar 4, 2025
cfba6bb
Update CLI docs for #2349 (#215)
bfops Mar 5, 2025
a0e30f3
Remove stale references to removed CLI functions (#218)
bfops Mar 6, 2025
04ba152
Fix version and old property (#24)
WeslomPo Mar 6, 2025
92d22cc
Updated to correct old timestamp format. (#221)
rekhoff Mar 7, 2025
35c287d
Clarify what is a valid module name (#252)
coolreader18 Mar 7, 2025
9a88da8
Removed double semi-colon (#254)
cloutiertyler Mar 10, 2025
73aa138
fix broken links in README (#26)
bfops Mar 11, 2025
521da1d
Explain `spacetime login` (#217)
bfops Mar 11, 2025
efd9d86
Updated tutorial for Blackholio/pull/19 (#163)
cloutiertyler Mar 12, 2025
421256a
Relax the version constraint on SpacetimeDB nuget package (#270)
bfops Mar 12, 2025
bbdb0fd
Minor Version Bump to 1.0.1 (#261)
jdetter Mar 12, 2025
be4c2ef
Adjust the BSATN doc to fit reality better (#216)
Centril Mar 12, 2025
9523ba3
Adds tests of GenericEqualityComparer (#271)
rekhoff Mar 13, 2025
4d3f0a0
Resolved 404 and references to deprecated tutorial repos. (#268)
rekhoff Mar 14, 2025
23c2dc0
Update DLLs to 1.0.1 (#269)
bfops Mar 14, 2025
a072e8c
Fix some subscription lifecycle issues. (#158)
jsdt Mar 14, 2025
76329e9
Reverse byte order when converting to/from hex strings (#161)
jsdt Mar 14, 2025
89c019c
Bump package version to 1.0.1 (#272)
rekhoff Mar 14, 2025
c16bc4f
Add instructions to README (#28)
jdetter Mar 14, 2025
d3aa26e
Version upgrade to 1.0.3 (#162)
jdetter Mar 15, 2025
3887c47
Added "Connecting to Maincloud" section to part-4.md (#275)
otdavies Mar 25, 2025
d4267b3
Bump versions to 1.1.0 (#282)
bfops Mar 28, 2025
3543132
Fix for unsubscribe bug + regression tests (#264)
kazimuth Mar 28, 2025
8a0fc18
TS quickstart: Install latest SDK, not specific version (#280)
gefjon Apr 2, 2025
fbf1543
Correction on c# server module quickstart (#253)
kaneviggers Apr 4, 2025
96aeffa
Fixed Minor Typos in Unity Tutorial (#273)
blindgoat Apr 4, 2025
0818aff
Small fix on part-3.md (#264)
AdielMag Apr 4, 2025
160cb57
fix(ts-sdk): correct the function signature of onConnectError (#255)
cjodo Apr 4, 2025
fade50a
Fix typo (#289)
heliam1 Apr 9, 2025
dc7ae16
Update the timestamp format output by spacetime sql in the quickstart…
joshua-spacetime Apr 9, 2025
468a6f1
Fix warning message for failed to track reducer call (#280)
jdetter Apr 12, 2025
6e15325
CI - Add release branch check (#270)
bfops Apr 12, 2025
c80417e
Added a preliminary llms.md/.txt file to the repo to help LLMs genera…
cloutiertyler Apr 14, 2025
2a1cc4d
License Apache2 (#172)
jdetter Apr 14, 2025
dd829e6
Typo fix quickstart.md (#294)
8Times Apr 14, 2025
14b34eb
Update quickstart.md (#295)
torjusik Apr 14, 2025
7d25b03
Switch to a better index data structure (#291)
kazimuth Apr 14, 2025
40d6688
Reference docs for row level security (#291)
joshua-spacetime Apr 15, 2025
289396f
Add convention for table names to style guide (#300)
gefjon Apr 15, 2025
0ba2b78
Fix typo in unity/part-2.md (#298)
waaverecords Apr 15, 2025
228436c
Deploying: Maincloud: add section for connecting via SDKs (#311)
bfops Apr 15, 2025
f24b0e8
Update DLLs to 1.1.0 (#288)
bfops Apr 15, 2025
47e9638
Bump version in `package.json` (#293)
bfops Apr 15, 2025
edc68cb
1.1.0 release (#170)
bfops Apr 16, 2025
e7cb1ee
Add docs for indexable types to C# (#285)
gefjon Apr 16, 2025
1cb61db
remove specific programming lang for server module code (#312)
tamaro-skaljic Apr 16, 2025
b74b5a6
fix sql identifier casing in c# quickstart test query #220 (#309)
tamaro-skaljic Apr 16, 2025
31c9ee5
Rename module to database where appropriate (#277)
tamaro-skaljic Apr 16, 2025
b1b4724
Remove experimental label of C# #246 (#305)
tamaro-skaljic Apr 16, 2025
6656120
rename http/index.md to "Authorization" #235 (#308)
tamaro-skaljic Apr 16, 2025
c7f89fa
Revert CLI reference to match what the CLI outputs (#317)
bfops Apr 17, 2025
c033449
CI - Check the CLI docs (#318)
bfops Apr 17, 2025
f32754b
Fix row deduplication issues (#294)
kazimuth Apr 18, 2025
11aeb5e
Fixed typo (#320)
torjusik Apr 21, 2025
4b48e00
fix links from rls docs to sql docs on website (#323)
tamaro-skaljic Apr 21, 2025
81ef6a0
Update docs links to remove index.md (#316)
jsdt Apr 21, 2025
9565b2f
Remove `.changeset/pre.json` (#177)
bfops Apr 21, 2025
be38694
Make ws connection fail when token is invalid (#176)
BastianGanze Apr 22, 2025
ce7828e
Bump versions to 1.1.1 (#297)
bfops Apr 22, 2025
0fa4cf9
CI - Release branch check auto-changes base branch (#298)
bfops Apr 22, 2025
20ed2dc
SpacetimeDB working in Unity WebGL Builds (#286)
Daxode Apr 22, 2025
c99c4cb
Update DLLs to 1.1.1 (#300)
bfops Apr 22, 2025
b27ed08
Fix typo in quickstart.md (#331)
lokimckay Apr 23, 2025
1eb2dbd
Subscribe to all the subscriptions together in the quickstart example…
jsdt Apr 23, 2025
3ed21c4
Bump version to 1.1.2 (#301)
bfops Apr 23, 2025
a703394
rls docs self-join example: undefined 'u' sql name -> 'a' (#330)
rapus95 Apr 23, 2025
b6f8362
Implement OnUnhandledReducerError (#295)
kazimuth Apr 23, 2025
5ad9baa
Pre-decompress query updates (#302)
kazimuth Apr 24, 2025
8756058
Version Bump 1.1.3 (#303)
jdetter Apr 24, 2025
3d1fa97
CI - Expand CI-triggering events (#332)
bfops Apr 24, 2025
78f5000
Bump version to 1.1.4 (#307)
jdetter Apr 25, 2025
8508bbf
Subscribe to all queries together in the ts quickstart. (#297)
jsdt Apr 25, 2025
590e873
Significantly reduce small byte array allocations (#305)
kazimuth Apr 26, 2025
45a83c9
Correcting Reducer Callback Information in llms.md (#335)
Lethalchip Apr 28, 2025
3dabd47
Add comment on the performance of LINQ for reading BSATN (#309)
joshua-spacetime Apr 28, 2025
53e0b77
fix wrong quote usage and copy the "start the server" section from c#…
tamaro-skaljic Apr 29, 2025
0cca3d9
updated dotnet add package (#337)
Lethalchip Apr 30, 2025
930e7a2
Fix so spacetimedb can be hosted with a pathname (#183)
ChaseLewis May 1, 2025
ec37594
Fix link checking (#340)
bfops May 1, 2025
694bc48
fix typo (#339)
jcurbelo May 2, 2025
6b4433b
Add "Subscription Semantics" page (#278)
gefjon May 5, 2025
f469676
Fix blocking publish route (#338)
jdetter May 6, 2025
51883b1
Add directions for navigating to the dashboard (#326)
cloutiertyler May 6, 2025
ed1808d
Fixed a typo with acquainted (#322)
cloutiertyler May 6, 2025
b230a92
Now noting that StdbModule.csproj is important (#327)
cloutiertyler May 6, 2025
be1c2e1
Stronger wording to direct users to working unity versions (#334)
Lethalchip May 6, 2025
c99b56f
Run lint for PRs. (#184)
jsdt May 6, 2025
e8a0dfd
Fixed typo in quickstart.md (#344)
jstreibel May 7, 2025
7528afe
Fixed DB_NAME name mismatch (#346)
jstreibel May 9, 2025
c813fb3
Fix list equals (#316)
kazimuth May 12, 2025
b46a894
Faster deserialization (#315)
kazimuth May 15, 2025
8bde94a
Recreate #311 (#317)
kazimuth May 15, 2025
5d4cce6
Document sql reserved identifiers #266 (#302)
tamaro-skaljic May 16, 2025
f3a7e8c
Remove double code-lang buttons (#347)
sdawka May 16, 2025
c03b962
Bump versions to 1.1.5 (#320)
bfops May 21, 2025
313fdd2
RLS Documentation - Invalid SQL Query (#351)
wes-sleeman May 22, 2025
a198fad
Update DLLs to 1.1.2 (#322)
bfops May 22, 2025
0584e75
Fix TypeScript Quickstart wrong import (#349)
toqueteos Jun 3, 2025
5baf66b
Bump versions to 1.2.0 (#328)
bfops Jun 6, 2025
544085c
Example of custom event handling (#327)
lisandroct Jun 6, 2025
e3b392a
Faster Stats.cs (#326)
kazimuth Jun 6, 2025
16b6b75
Handle falsy option values (#188)
jsdt Jun 16, 2025
56fc56f
Release 1.2.0 (#187)
bfops Jun 17, 2025
e168ec6
More granular request process tracking (#330)
kazimuth Jun 18, 2025
179b666
Release 1.2.0 (#190)
github-actions[bot] Jun 18, 2025
79de507
Bump to 1.2.1 (#332)
bfops Jun 23, 2025
d62d85a
Bump versions to 1.2.1 (#333)
bfops Jun 23, 2025
4b1cce2
Bump Unity package version to 1.2.1 (#334)
bfops Jun 23, 2025
6c419cc
Add `tools~/upgrade-version.py` (#335)
bfops Jun 25, 2025
de7fb8a
Update db_connection_impl.ts (#194)
Lethalchip Jun 25, 2025
8a202b0
Use the temporary auth token. (#195)
jsdt Jun 25, 2025
e97d72d
Bump version to 1.2.1 for release (#196)
bfops Jun 25, 2025
c3cfadb
SATS: Move some method bodies to be provided in 'Serializer' instead …
Centril Jul 4, 2025
3907591
Move `sats::de::serde::NoneAccess` to `sats::de::NoneAccess` (#2922)
Centril Jul 7, 2025
533c14b
Update WebGL message queue to 1.2.1 format (#342)
rekhoff Jul 7, 2025
bcb9f3d
Require a minimum code gen version (#186)
jsdt Jul 7, 2025
5770386
Fix equality comparison between Row::Ptr and Row::Ref (#2914)
jsdt Jul 7, 2025
4dcf5f8
SATS: make `field_names`/`variant_names` return iterator + add `Field…
Centril Jul 8, 2025
edcb07c
Add `V8Runtime` skeleton + `HostType::Js` (#2923)
Centril Jul 8, 2025
ae21aae
core: Tone down `MessageExecutionError` (#2926)
kim Jul 9, 2025
93874ac
CI - Test that quickstart-chat builds (#197)
bfops Jul 9, 2025
1727ca4
SATS: add `Impossible` helper type (#2929)
Centril Jul 9, 2025
b63216a
client-api: Rewrite websocket loop (#2906)
kim Jul 10, 2025
34201c6
Fix `AlgebraicTypeLayout::is_compatible_with` (#2932)
Centril Jul 11, 2025
20b087c
Split datastore into its own crate (#2933)
cloutiertyler Jul 12, 2025
591d083
Improve performance of row ids (#180)
jsdt Jul 14, 2025
6a9b524
Enable the `datastore` crate's `test` feature where necessary (#2937)
gefjon Jul 14, 2025
4c470f0
Fix example that was still rust-ey in C# ref (#333)
gefjon Jul 14, 2025
666ade7
Move locking operations onto the module's thread (#2866)
jsdt Jul 14, 2025
a388670
Use toString() instead of an instance of Url when opening the websock…
JulienLavocat Jul 15, 2025
742303c
Bump rust-toolchain to rust 1.88 (#2749)
coolreader18 Jul 15, 2025
eef737f
Release 1.2.2 (#200)
bfops Jul 15, 2025
63dff57
Add `v8` crate + initialize `v8` (#2939)
Centril Jul 16, 2025
741208c
[bfops/import-typescript-sdk]: Merge remote-tracking branch 'temp-typ…
bfops Jul 16, 2025
f2c8c6d
Extract `ModuleCommon` + use in wasm & v8 runtimes (#2940)
Centril Jul 16, 2025
5ab01b2
Merge branch 'master' into bfops/import-typescript-sdk
bfops Jul 16, 2025
88dc369
Import TypeScript SDK repo (#2941)
bfops Jul 16, 2025
571089d
[bfops/import-Blackholio]: Merge remote-tracking branch 'temp-Blackho…
bfops Jul 16, 2025
eecc591
Document WebSocket config for standalone (#353)
kim Jul 16, 2025
09717e9
Make websocket configurable via config.toml (#2944)
kim Jul 16, 2025
cbba2b2
Fix up GitHub files related to TypeScript SDK (#2943)
bfops Jul 16, 2025
96a1ad4
[V8] Define `trait ToValue` for primitive types (#2946)
Centril Jul 16, 2025
5fe544a
[bfops/import-docs]: Merge remote-tracking branch 'temp-docs/master' …
bfops Jul 17, 2025
7709f3c
commitlog: Set up options for toml configuration (#2942)
kim Jul 17, 2025
2c7b668
[bfops/import-csharp]: Merge remote-tracking branch 'temp-csharp-sdk/…
bfops Jul 17, 2025
ce328d5
Import docs repo (#2948)
bfops Jul 17, 2025
7afa0b4
Docs import - Update GitHub-related files (#2949)
bfops Jul 17, 2025
4115658
Import Blackholio (#2945)
bfops Jul 17, 2025
07899d0
[bfops/import-csharp]: Merge remote-tracking branch 'origin/master' i…
bfops Jul 17, 2025
83f52ca
Blackholio import - README updates (#2947)
bfops Jul 17, 2025
9bdb3ed
[bfops/import-csharp]: Merge remote-tracking branch 'origin/master' i…
bfops Jul 19, 2025
bd9ea55
Import C#/Unity SDK (#2951)
bfops Jul 20, 2025
c43d8fe
smoketest: Retry if there is no current leader (#2950)
kim Jul 21, 2025
ccc4d06
Update GitHub files for C#/Unity SDK (#2952)
bfops Jul 21, 2025
004d978
Add a recursion limit to the evaluation of type_expr & parse_expr
mamcx Jul 10, 2025
908cf91
Apply suggestion from PR, and increase the recursion limit thanks to …
mamcx Jul 14, 2025
5c05581
Printer for the plan, ie: EXPLAIN
mamcx Feb 5, 2025
8bbea67
`EXPLAIN` for `dml`
mamcx Feb 6, 2025
a8839d5
`EXPLAIN` for `COUNT` and `LIMIT`
mamcx Mar 5, 2025
0267450
Change the output so we show the node info before the sub nodes
mamcx Mar 7, 2025
e43f67d
Index scans for ranges
mamcx Mar 6, 2025
e2ab4cf
Moving sql test on core to EXPLAIN
mamcx Dec 27, 2024
2326db7
count and limit
mamcx Mar 5, 2025
43eb5dd
Lift restriction that multi-col indices only allow = constraints #1317
mamcx Jun 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 20 # on a successful run, runs in 8 minutes
container:
image: rust:1.83.0
image: rust:1.88.0
options: --privileged
# filter for a comment containing 'benchmarks please'
if: ${{ github.event_name != 'issue_comment' || (github.event.issue.pull_request && contains(github.event.comment.body, 'benchmarks please')) }}
Expand Down
56 changes: 0 additions & 56 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,62 +113,6 @@ jobs:
working-directory: crates/bindings-csharp
run: dotnet test -warnaserror

sdk_test:
name: SDK Tests
runs-on: spacetimedb-runner
steps:
- name: Find Git ref
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_NUMBER="${{ github.event.inputs.pr_number || null }}"
if test -n "${PR_NUMBER}"; then
GIT_REF="$( gh pr view --repo clockworklabs/SpacetimeDB $PR_NUMBER --json headRefName --jq .headRefName )"
else
GIT_REF="${{ github.ref }}"
fi
echo "GIT_REF=${GIT_REF}" >>"$GITHUB_ENV"

- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ env.GIT_REF }}

- uses: dsherret/rust-toolchain-file@v1

- uses: actions/setup-dotnet@v3
with:
global-json-file: modules/global.json

- name: Create /stdb dir
run: |
sudo mkdir /stdb
sudo chmod 777 /stdb

- name: Checkout C# SDK
uses: actions/checkout@v4
with:
repository: clockworklabs/spacetimedb-csharp-sdk
ref: master
path: spacetimedb-csharp-sdk

- name: Setup NuGet override for C# SDK
working-directory: spacetimedb-csharp-sdk
run: |
dotnet pack ../crates/bindings-csharp/BSATN.Runtime
# The SDK package overrides the following crate for use in their tests.
# Even though it doesn't actually depend on it, we still need to pack it
# so dotnet doesn't complain.
dotnet pack ../crates/bindings-csharp/Runtime
./tools~/write-nuget-config.sh ..

# clear package caches, so we get fresh ones even if version numbers haven't changed
dotnet nuget locals all --clear

- name: Run C# SDK tests
working-directory: spacetimedb-csharp-sdk
run: dotnet test

lints:
name: Lints
runs-on: spacetimedb-runner
Expand Down
142 changes: 142 additions & 0 deletions .github/workflows/csharp-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: C#/Unity - Test Suite

on:
push:
branches:
- master
pull_request:

jobs:
unity-testsuite:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

# Run cheap .NET tests first. If those fail, no need to run expensive Unity tests.

- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
global-json-file: modules/global.json

- name: Override NuGet packages
run: |
dotnet pack crates/bindings-csharp/BSATN.Runtime
dotnet pack crates/bindings-csharp/Runtime

# Write out the nuget config file to `nuget.config`. This causes the spacetimedb-csharp-sdk repository
# to be aware of the local versions of the `bindings-csharp` packages in SpacetimeDB, and use them if
# available. Otherwise, `spacetimedb-csharp-sdk` will use the NuGet versions of the packages.
# This means that (if version numbers match) we will test the local versions of the C# packages, even
# if they're not pushed to NuGet.
# See https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file for more info on the config file.
cd sdks/csharp
./tools~/write-nuget-config.sh ../..

- name: Run .NET tests
working-directory: sdks/csharp
run: dotnet test -warnaserror

- name: Verify C# formatting
working-directory: sdks/csharp
run: dotnet format --no-restore --verify-no-changes SpacetimeDB.ClientSDK.sln

# Now, setup the Unity tests.

- name: Patch spacetimedb dependency in Cargo.toml
working-directory: demo/Blackholio/server-rust
run: |
sed -i "s|spacetimedb *=.*|spacetimedb = \{ path = \"../../../crates/bindings\" \}|" Cargo.toml
cat Cargo.toml

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
id: cache-rust-deps
with:
workspaces: demo/Blackholio/server-rust
key: ${{ steps.checkout-stdb.outputs.commit }}
# Cache Rust deps even if unit tests have failed.
cache-on-failure: true
# Cache the CLI as well.
cache-all-crates: true

- name: Install SpacetimeDB CLI from the local checkout
# Rebuild only if we didn't get a precise cache hit.
if: steps.cache-rust-deps.outputs.cache-hit == 'false'
run: |
cargo install --force --path crates/cli --locked --message-format=short
cargo install --force --path crates/standalone --locked --message-format=short
# Add a handy alias using the old binary name, so that we don't have to rewrite all scripts (incl. in submodules).
ln -sf $HOME/.cargo/bin/spacetimedb-cli $HOME/.cargo/bin/spacetime
env:
# Share the target directory with our local project to avoid rebuilding same SpacetimeDB crates twice.
CARGO_TARGET_DIR: demo/Blackholio/server-rust/target

- name: Generate client bindings
working-directory: demo/Blackholio/server-rust
run: bash ./generate.sh -y

- name: Check for changes
run: |
# This was copied from tools/check-diff.sh.
# It's required because `spacetime generate` creates lines with the SpacetimeDB commit
# version, which would make this `git diff` check very brittle if included.
PATTERN='^// This was generated using spacetimedb cli version.*'
git diff --exit-code --ignore-matching-lines="$PATTERN" -- demo/Blackholio/client-unity/Assets/Scripts/autogen || {
echo "Error: Bindings are dirty. Please generate bindings again and commit them to this branch."
exit 1
}

- name: Check Unity meta files
uses: DeNA/unity-meta-check@v3
with:
enable_pr_comment: ${{ github.event_name == 'pull_request' }}
target_path: sdks/csharp
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

- name: Start SpacetimeDB
run: |
spacetime start &
disown

- name: Run regression tests
run: bash sdks/csharp/tools~/run-regression-tests.sh .

- name: Publish unity-tests module to SpacetimeDB
working-directory: demo/Blackholio/server-rust
run: |
spacetime logout && spacetime login --server-issued-login local
bash ./publish.sh

- name: Patch com.clockworklabs.spacetimedbsdk dependency in manifest.json
working-directory: demo/Blackholio/client-unity/Packages
run: |
# Replace the com.clockworklabs.spacetimedbsdk dependency with the current branch.
# Note: Pointing to a local directory does not work, because our earlier steps nuke our meta files, which then causes Unity to not properly respect the DLLs (e.g.
# codegen does not work properly).
yq e -i '.dependencies["com.clockworklabs.spacetimedbsdk"] = "https://github.com/clockworklabs/SpacetimeDB.git?path=sdks/csharp#${{ github.head_ref }}"' manifest.json
cat manifest.json

- uses: actions/cache@v3
with:
path: demo/Blackholio/client-unity/Library
key: Unity-${{ github.head_ref }}
restore-keys: Unity-

- name: Run Unity tests
uses: game-ci/unity-test-runner@v4
with:
unityVersion: 2022.3.32f1 # Adjust Unity version to a valid tag
projectPath: demo/Blackholio/client-unity # Path to the Unity project subdirectory
githubToken: ${{ secrets.GITHUB_TOKEN }}
testMode: playmode
useHostNetwork: true
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
30 changes: 30 additions & 0 deletions .github/workflows/docs-check-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Docs - Check Link Validity

on:
pull_request:
push:
branches:
- master
merge_group:

jobs:
check-links:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16' # or the version of Node.js you're using

- name: Install dependencies
working-directory: docs
run: |
npm install

- name: Run link check
working-directory: docs
run: |
npm run check-links
47 changes: 47 additions & 0 deletions .github/workflows/docs-validate-nav-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Docs - Validate nav.ts Matches nav.js

on:
pull_request:
push:
branches:
- master
merge_group:

jobs:
validate-build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'

- name: Install dependencies
working-directory: docs
run: |
npm install

- name: Backup existing nav.js
working-directory: docs
run: |
mv docs/nav.js docs/nav.js.original

- name: Build nav.ts
working-directory: docs
run: |
npm run build

- name: Compare generated nav.js with original nav.js
working-directory: docs
run: |
diff -q docs/nav.js docs/nav.js.original || (echo "Generated nav.js differs from committed version. Run 'npm run build' and commit the updated file." && exit 1)

- name: Restore original nav.js
working-directory: docs
if: success() || failure()
run: |
mv docs/nav.js.original docs/nav.js
43 changes: 43 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: TypeScript - Lint

on:
pull_request:
push:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18

- uses: pnpm/action-setup@v4
with:
version: 9.7
run_install: true

- name: Get pnpm store directory
working-directory: sdks/typescript
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-

- name: Lint
working-directory: sdks/typescript
run: pnpm lint
12 changes: 3 additions & 9 deletions .github/workflows/pr-only-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,12 @@ jobs:
with:
ref: ${{ env.GIT_REF }}
- uses: dsherret/rust-toolchain-file@v1
- name: Checkout docs
uses: actions/checkout@v4
with:
repository: clockworklabs/spacetime-docs
ref: master
path: spacetime-docs
- name: Check for docs change
run: |
cargo run --features markdown-docs -p spacetimedb-cli > spacetime-docs/docs/cli-reference.md
cd spacetime-docs
cargo run --features markdown-docs -p spacetimedb-cli > docs/docs/cli-reference.md
cd docs
# This is needed because our website doesn't render markdown quite properly.
# See the README in spacetime-docs for more details.
# See the README in docs for more details.
sed -i'' -E 's!^(##) `(.*)`$!\1 \2!' docs/cli-reference.md
sed -i'' -E 's!^(######) \*\*(.*)\*\*$!\1 <b>\2</b>!' docs/cli-reference.md
git status
Expand Down
Loading