## Description of Changes
Just bumping version numbers in preparation for a release.
The Unity SDK and C# SDK had different version numbers. That seems
confusing, so I bumped them both to 1.1.5.
## API
No breaking changes
## Requires SpacetimeDB PRs
None, afaik
## Testsuite
SpacetimeDB branch name: master
## Testing
None
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Recreating #311 using a branch in this repo in the hope of fixing the
Unity build.
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] blackholio
- [ ] bitcraft
---------
Co-authored-by: Guribo <guribovr@gmail.com>
## Description of Changes
Leverages https://github.com/clockworklabs/SpacetimeDB/pull/2725 to
speed up row deserialization. Also updates DLLs for recent upstream
fixes.
Changes:
- Uses much simpler code when deserializing enums, avoiding the use of
reflection
- Uses manually monomorphized row deserialization methods, which again
avoid the use of reflection when constructing row objects
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2725
## Testsuite
SpacetimeDB branch name: jgilles/perf/faster-allocation
## Testing
*Write instructions for a test that you performed for this PR*
- [x] Blackholio
- [x] Bitcraft (have done a basic test but no in-depth testing)
This purges the DbValue type, instead using row instances themselves as
primary key for rows without primary keys. In addition, it instantiates
only a single BinaryReader when reading updates for a table, rather than
instantiating a BinaryReader and performing an array copy per-row of the
table.
Addresses
https://github.com/clockworklabs/SpacetimeDBPrivate/issues/1633
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [ ] CI
---------
Co-authored-by: rekhoff <r.ekhoff@clockworklabs.io>
## Description of Changes
*Describe what has been changed, any new features or bug fixes*
- Bumps version to 1.1.4
## API
Not breaking
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
This is just a version bump
## Description of Changes
*Describe what has been changed, any new features or bug fixes*
- Bumps version to 1.1.3
## API
This is not an API breaking change
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
- None
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
This is just a version bump, CI is sufficient.
This dramatically improves performance by avoiding the default
implementation of BrotliStream.ReadByte() inherited from Stream, which
allocates an array per byte read.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [ ] Describe a test for this PR that you have completed
## Description of Changes
Bumping the version since 1.1.1 has been released.
## API
No breaking changes
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
None, just a version bump.
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Just bumping the DLLs for a version number update. No actual changes.
## API
No breaking changes
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
Just existing CI. This only bumps versions.
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
As it stands today, Unity WebGL doesn't work. Partially the reason for
this is Multi-Threading, and the other reason is the use of
`ClientWebSocket`. In order to fix this (specifically in the case of
Unity), here's some changes that _can_ be made. Note that this is mostly
a suggestion and does come with a few flaws, though arguably it might
still be better than it not working at all? Up to you!
The Tl;Dr of how it works, is to:
- **MultiThreading Problem**: simply invoke the `Task.Run` functions on
main thread instead, and use a coroutine in place of where the two
simultaneous threads was expected.
- **ClientWebSocket**: Use a `.jslib` to create the WebSocket directly
within Javascript, and then have JS call the corresponding correct
functions.
DISCLAIMER: currently OnClose doesn't quite work correctly as
`__allocate` isn't invoked correctly.
## API
Not a breaking change to the API, should be internal implementation
details
## Requires SpacetimeDB PRs
None
## Testsuite
????
SpacetimeDB branch name: master
## Testing
Open the Blackholeio project, try building it for WebGL
- [X] Made a game using the feature:
https://daxode.itch.io/eat-to-the-deep
---------
Co-authored-by: rekhoff <r.ekhoff@clockworklabs.io>
Co-authored-by: John Detter <no-reply@boppygames.gg>
Co-authored-by: John Detter <4099508+jdetter@users.noreply.github.com>
Co-authored-by: James Gilles <jameshgilles@gmail.com>
## Description of Changes
Instead of our CI failing and telling the user that a PR should be based
on `master`, we automatically change the base branch to `master`.
## API
No code changes.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] See below, where the new CI changed the base branch of this PR!
- [x] On this test PR, the base branch was not changed:
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/pull/299
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Just bumping version numbers in preparation for an upcoming release.
I also relaxed the version constraints in the `.csproj` files to be
flexible in their patch versions.
## API
- [ ] This is an API breaking change to the SDK
No breaking changes.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
Just existing CI, since this just bumps version numbers.
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Addresses
https://github.com/clockworklabs/SpacetimeDBPrivate/issues/1585
There was an issue with row deduplication when a TransactionUpdate of
the form:
```
+ k1: v1
- k1: v1
- k1: v1
+ k1: v2
```
appeared, where `k1` is the primary key of a row and `v1`, `v2` are the
full values of that row. The old manner of processing updates would see
this as a no-op. I've updated the logic to handle this case correctly,
at the cost of an extra equality comparison per row in an update.
(Actually it's slightly cheaper than this, it skips the equality
comparison if there is only row with a particular primary key in an
update. This may help speed up processing of large updates e.g. chunk
data in BitCraft.)
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] Added a failing test, then fixed it
## Description of Changes
Bump yet another version number.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
None
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Update DLLs to 1.1.0.
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2566
## Testsuite
SpacetimeDB branch name: release/v1.1.0
## Testing
We tested this with some bots
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
*Describe what has been changed, any new features or bug fixes*
- Fixes an issue that was reported in the discord where a user was
connecting 2 clients to the same SpacetimeDB module with the same
identity but different connection IDs.
## API
- This is not breaking.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] Build blackholio as a player build and launch it twice. You can
play on both clients without seeing this warning in Player.log.
---------
Co-authored-by: John Detter <no-reply@boppygames.gg>
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
This PR fixes one issue and adds regression tests for it, plus another
issue. These regression tests are run on CI. You can also run them
locally -- run a local spacetime instance and then
`tools~/run-regression-tests.sh ../SpacetimeDB`).
### Issue 1: Unsubscribe is non-functional
See
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/issues/279.
This was a coding mistake made during the rush to 1.0. It was easily
fixed.
### Issue 2: Indexes not tracking deletes
This was recently discovered by the BitCraft team.
The problem was introduced in
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/commit/cefc727b7693fe97e3dd848fef2bb17bf20c8be6
which introduced `RemoteTableHandle<EventContext,
Row>.IndexBase<Column>`. This class stores a `Dictionary<Column,
List<Row>>` to allow fast filtering. It relies on `List<Row>.Remove` to
remove elements from a list when a row delete is received.
`List<Row>.Remove` relies on `Row.Equals` to determine when elements are
equal.
`Row.Equals` formerly was not implemented for `[SpacetimeDB.Type]`s or
for generated Row types. So, this didn't work.
Now it does: it was fixed by
https://github.com/clockworklabs/SpacetimeDB/pull/239 . So all this PR
does to address this issue is add a regression test.
## API
- [x] This is an API breaking change to the SDK
The interface IDbConnection was changed; however, this changed part of
the interface is `internal`, so this should be entirely invisible to
users.
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/239 (merged)
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [x] Added a repro for both issues
- [x] Added the repro to CI
- [x] Fixed both issues
## Description of Changes
Bumped version numbers to 1.1.0.
## API
- [ ] This is an API breaking change to the SDK
No, this just updates to the latest version.
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2518
## Testsuite
SpacetimeDB branch name: bfops/bump-version
## Testing
- [x] Existing CI passes (when pointed at the corresponding SpacetimeDB
branch)
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Updates package version to 1.0.1
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
No specific PR needed
## Testsuite
SpacetimeDB branch name: release/v1.0.1
## Testing
- [X] Confirmed Unity sees version as 1.0.1 after change
## Description of Changes
I don't know if the DLLs need updating, but updated the DLLs just in
case.
## API
Incorporate any chances in SpacetimeDB 1.0.1. There should be no
breaking changes.
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
SpacetimeDB branch name: release/v1.0.1
## Testing
None. Will test in release.
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Updated two README docs:
* README.md - Updated links to point to Blackholio repo and tutorial
docs.
* README.dotnet.md - Updated to point to new URL paths for C# SDK
Quickstart and Reference docs.
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
N/A - Docs only change
## Testsuite
N/A - Docs only change
SpacetimeDB branch name: master
## Testing
- [X] Clicked on each new link and confirm the browser can locate the
new locations.
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Co-authored-by: John Detter <no-reply@boppygames.gg>
Adds an additional test of the `GenericEqualityComparer` function for
`Integer`, `String`, `Byte Array`, `Identity`, `User` and `TaggedEnum` type
comparisons.
This PR resolves additional checks as reported in by [Issue
230](https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/issues/230)
that where not-yet covered elsewhere.
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
No other PR are needed for this to work.
## Testsuite
SpacetimeDB branch name: master
## Testing
- [X] Locally ran `dotnet test` against the `tests.csproj` project and
it passed all tests
## Description of Changes
*Describe what has been changed, any new features or bug fixes*
I've already pushed this out to nuget here:
<https://www.nuget.org/packages/SpacetimeDB.ClientSDK>
- We want to update our REAME on nuget.org because the README that we
released as part of 1.0.1 was very much out of date.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
NA
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [x] The README is updated.
Co-authored-by: John Detter <no-reply@boppygames.gg>
## Description of Changes
Relaxed this version number from `1.0.0` to `1.0.*`
## API
No breaking changes.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
Existing CI should run `dotnet test` and confirm that this is not
broken.
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Just link to the existing docs.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
## Testsuite
SpacetimeDB branch name: master
## Testing
# Description of Changes
Update the C# server and client SDK quickstart-chat example to match the
code presented in the tutorial, as of
https://github.com/clockworklabs/spacetime-docs/pull/170 .
Also renamed the directory from `quickstart` to `quickstart-chat` in
order to be more specific.
# API and ABI breaking changes
If this is an API or ABI breaking change, please apply the
corresponding GitHub label.
# Expected complexity level and risk
1
## Requires SpacetimeDB PRs
SpacetimeDB branch name: master
com.clockworklabs.spacetimedbsdk: master
# 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] Ran `quickstart-chat` C# server and C# client locally and:
- Set my name.
- Sent a message.
- Restarted and viewed the message backlog.
- Sent a few more messages.
- Exited, deleted my local token, restarted and connected as a new
identity.
- Set my new identity's name.
- Sent a message as my new identity.
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Co-authored-by: John Detter <no-reply@boppygames.gg>
Co-authored-by: james gilles <jameshgilles@gmail.com>
## Description of Changes
Adds closing `</summary>` to end of comment.
## API
No breaking changes
## Requires SpacetimeDB PRs
N/A
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
Just fixing a comment. No tests required.
## Description of Changes
Updates comment on `SubscribeToAllTables` since undefined behavior is not possible anymore.
No code changes made in this patch.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
N/A
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
No code changes made in this patch.
## Description of Changes
Add SubscribeMulti and UnsubscribeMulti from upstream.
Fix unsubscribe bug found by testing against Bitcraft: Calling
`UnsubscribeThen` with any (non-null) callback would result in an
exception incorrectly telling the user that `Unsubscribe` had been
called twice.
Multiplicity support is implemented with unit tests + manual testing of
quickstart-chat.
Also, rows in the client cache are now looked up by primary key if
available, which I suspect is going to be a large performance boost.
## API
- [x] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: jgilles/final-cs-codegen-changes
## Testing
*Write instructions for a test that you performed for this PR*
- [x] unit tests
- [ ] Working with Ryan to add a test suite.
- [x] blackholio
## Description of Changes
This updates the CI check protecting the release branch, as part of
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/issues/226
(see that ticket for more details).
Once this is merged, it will need to be cherrypicked into our release
branch in order to take effect there.
The check itself has also been renamed. I have already updated the
branch protection rules to look for the new name.
## API
No code changes.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
The previous behavior was well-tested, and I've just changed some
strings here, so I have not done further testing. It does pass on this
branch though.
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Switches to Bearer authentication, which is the more proper auth schema
to use with tokens.
## API
- [ ] This is an API breaking change to the SDK
## Requires SpacetimeDB PRs
- https://github.com/clockworklabs/SpacetimeDB/pull/2181
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
---------
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Co-authored-by: rekhoff <r.ekhoff@clockworklabs.io>
Co-authored-by: James Gilles <jameshgilles@gmail.com>
## Description of Changes
We were not stripping `/` from the end of URIs provided to `Connect`. We
manually append `/...` to the provided addresses, so if we don't start
by stripping trailing `/`s, we end up with `//` in the URI and we get
errors.
Addresses part of
https://github.com/clockworklabs/SpacetimeDB/issues/1551.
## API
No breaking changes. This fixes an error case.
## Requires SpacetimeDB PRs
None
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] Tested the quickstart chat client with a host containing a
trailing `/`
```
# start a server, publish the module, send some input
# I also updated one line in `client.csproj` to use `Net8.0` because I no longer have `Net7.0` installed
$ cd examples~/quickstart/client
$ dotnet run
[I] SpacetimeDBClient: Connecting to ws://localhost:3000 quickstart-chat
C200098E is online
Connected
C2007471: hello
C2007471: godo
C2007471: asdf
$ sed -i 's/localhost:3000/localhost:3000\//' Program.cs
$ dotnet run
[I] SpacetimeDBClient: Connecting to ws://localhost:3000 quickstart-chat
C2000601 is online
Connected
C2007471: hello
C2007471: godo
C2007471: asdf
$ git diff
diff --git a/examples~/quickstart/client/Program.cs b/examples~/quickstart/client/Program.cs
index 9eb43b1..289e736 100644
--- a/examples~/quickstart/client/Program.cs
+++ b/examples~/quickstart/client/Program.cs
@@ -7,8 +7,8 @@ using System.Threading;
using SpacetimeDB;
using SpacetimeDB.Types;
-const string HOST = "http://localhost:3000";
-const string DBNAME = "chatqs";
+const string HOST = "http://localhost:3000/";
+const string DBNAME = "quickstart-chat";
// our local client SpacetimeDB identity
Identity? local_identity = null;
diff --git a/examples~/quickstart/client/client.csproj b/examples~/quickstart/client/client.csproj
index 48917cc..ab7ce44 100644
--- a/examples~/quickstart/client/client.csproj
+++ b/examples~/quickstart/client/client.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net7.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<ImplicitUsings>disable</ImplicitUsings>
<Nullable>enable</Nullable>
```
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
as described
## API
no breaks
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2241
## Testsuite
SpacetimeDB branch name: jgilles/unknown_reducer
## Testing
see SpacetimeDB PR
## Description of Changes
Companion to [Rename `Address` to
`ConnectionId`](https://github.com/clockworklabs/SpacetimeDB/pull/2220).
See that PR's description for more.
Like all the SDKs, this PR does not change the SDK's behavior; the SDK
still generates a connection ID locally and passes it through the HTTP
API. This is not exposed to users, and can be changed in a follow-up.
Also, use `/usr/bin/env bash` instead of `/bin/bash` in tools, for
portability reasons.
## API
- [x] This is an API breaking change to the SDK
`Address` is renamed to `ConnectionId`.
## Requires SpacetimeDB PRs
- https://github.com/clockworklabs/SpacetimeDB/pull/2220
-
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: phoebe/rename-address-to-connection-id
## Testing
- [x] Pretty much just automated testing.
- [x] @kazimuth will need to update and run Blackholio.
---------
Co-authored-by: James Gilles <jameshgilles@gmail.com>
## Description of Changes
This seems to fix the unity testsuite, which otherwise is failing when
pointed at master.
## API
No breaking changes.
## Requires SpacetimeDB PRs
None
## Testsuite
This is meant to fix pointing at master.
SpacetimeDB branch name: master
## Testing
- [x] Unity testsuite now passes
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
C# part of https://github.com/clockworklabs/SpacetimeDB/pull/1836
Needs to be rebased onto
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/pull/220
once that is merged.
## API
- [x] This is an API breaking change to the SDK
ScheduleAt is now constructed in slightly different ways.
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: phoebe/timestamp-special-type
## Testing
Will need an update to blackholio as well.
## Description of Changes
Unfortunately, none of our tests currently cover this, but while working
on the V9 upgrade, I noticed that this code still relies on `type(Row)`
as a unique table identifier.
That no longer holds with multi-tables as several tables can share the
same `Row` type. In that case, subscription updates would be grouped
incorrectly and always applied to the same first table that uses `Row`
for its data storage.
This PR fixes that by using the table handle itself as a key (compared
by reference).
If transaction updates are already grouped uniquely by table, it should
be possible to simplify this code much further, but I'm not sure if such
guarantee exists, so leaving that untouched.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [x] I did `dotnet test`, but as mentioned in the description, this
requires adding tests for multi-table subscriptions, which I'm afraid I
won't have time to do, so have to leave to follow-up devs.
---------
Co-authored-by: james gilles <jameshgilles@gmail.com>
## Description of Changes
This is the companion PR for
https://github.com/clockworklabs/SpacetimeDB/pull/2184, please see the
other PR for full description.
On the client side main changes are:
- Regenerate .NET and Unity test client bindings and test snapshot.
- Remove `IDatabaseRow` since V9 multi-tables splits data types from
actual table definitions, so those "table data types" are no longer
special. Just using `IStructuralReadWrite` in its place now.
- Add base index classes as mentioned in the other PR.
- As a sub-improvement, the non-unique index class actually does
indexing instead of iterating over the entire table like we did before.
- Remove internal-but-not-really `InternalInvokeValueDeleted` and
`InternalInvokeValueInserted` methods in favour of private events.
## API
- [x] This is an API breaking change to the SDK
Removes some technically-visible but internal APIs.
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2184
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: ingvar/csharp-new-codegen
## Testing
*Write instructions for a test that you performed for this PR*
- [x] Manually tested Blackholio
---------
Co-authored-by: James Gilles <jameshgilles@gmail.com>
## Description of Changes
Use SpacetimeDB commit hash in the cache key and skip
rebuild/reinstallation altogether if we got an exact hit.
This saves 6-8 minutes off CI time on reruns.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
*If you would like to run the your SDK changes in this PR against a
specific SpacetimeDB branch, specify that here. This can be a branch
name or a link to a PR.*
SpacetimeDB branch name: master
## Testing
*Write instructions for a test that you performed for this PR*
- [x] CI testing forth and back until it worked correctly.
## Description of Changes
Corresponding change to
https://github.com/clockworklabs/SpacetimeDB/pull/2177. See that PR for
more details.
~~Note that this PR only bumps the versions, but does **not** update the
DLLs. This is because SpacetimeDB will likely have further changes, so
the DLLs will just need to be updated again (in principle, they should
be updated every time we push to SpacetimeDB `master`, which isn't
really feasible. For this reason, users should not use `staging` without
having their own copy of the SpacetimeDB repo as well).~~
## API
- [ ] This is an API breaking change to the SDK
No breaking changes.
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/2177
## Testsuite
SpacetimeDB branch name: master
## Testing
- [x] CI passes with that branch name
- [x] The branch name has been changed back to `master` after that PR
merges and CI still passes
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Revert DLLs, which I should have done in
https://github.com/clockworklabs/com.clockworklabs.spacetimedbsdk/pull/223.
See that PR for background on why it was necessary.
## API
- [ ] This is an API breaking change to the SDK
Kinda, but it's a revert.
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Testsuite
SpacetimeDB branch name: master
## Testing
I would have liked to say that the current CI is sufficient as I did in
the last PR, but now I no longer feel confident.. Currently the repo is
in a somewhat inconsistent state, though, so I think we should merge
this right now as it will not make it _less_ consistent.
I'm very open to suggestions about how to test this properly.
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>