Skip to content

Standardize the path of quickstart-chat #227

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

Closed
wants to merge 162 commits into from

Conversation

cloutiertyler
Copy link
Collaborator

@cloutiertyler cloutiertyler commented Jan 28, 2025

Description of Changes

This standardizes the paths in the quickstart example and renames the directory to quickstart-chat.

API

  • This is an API breaking change to the SDK

Requires SpacetimeDB PRs

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: release/v1.0.0-rc3-hotfixes

Testing

Write instructions for a test that you performed for this PR

None, yet ('tis draft)

jdetter and others added 30 commits November 2, 2022 12:01
Add sslEnabled option to Connect function
* Fix compilation issue with master

* Initial push for SATS (still WIP)

* Small build fix

* Small update

* Updates from meeting with Tyler

* Fixed issues with LayoutExplicit and added some missing functions

* AlgebraicValue cleanup

* Copied changes from BitCraftMini

* Removed TypeDef

---------

Co-authored-by: Clockwork Labs <[email protected]>
Co-authored-by: Tyler Cloutier <[email protected]>
Co-authored-by: John Detter <[email protected]>
* Upload script to help deploying to our partners

* You have to specify hosts individually

* Small fix

* Another small fix - tested + working

---------

Co-authored-by: John Detter <[email protected]>
* Serialize byte arrays as hex

* Fix namespace

* Small fix

---------

Co-authored-by: John Detter <[email protected]>
* First pass

* Committing meta file

* Removed option type - unneeded

* Implementing new some converter

* Some converter updates

* Tons of fixes here

* Cleaned up the some/enum serialization implementation

---------

Co-authored-by: John Detter <[email protected]>
* Several updates to the way ClientCache + processing updates works

* Client cache changes working

* Removed log statements

---------

Co-authored-by: John Detter <[email protected]>
* Copied changes from BitCraft

* Applied state diff changes

* State diffs complete

* Compilation fix

* Fix build issues

---------

Co-authored-by: John Detter <[email protected]>
* Pulled SpacetimeUnitySDK from the BitCraft project

* Removed unused logs

* Removed primary key functionality

* Fix compilation issues with older version of C#

* Primary key client implementation

* Another row update fix

---------

Co-authored-by: John <[email protected]>
* Pulled SpacetimeUnitySDK from the BitCraft project

* Removed unused logs

* Removed primary key functionality

* Fix compilation issues with older version of C#

---------

Co-authored-by: John <[email protected]>
* Adding event parameter to table callbacks

* Reverted a namespace change

---------

Co-authored-by: Steve <[email protected]>
Co-authored-by: John Detter <[email protected]>
Co-authored-by: Derek Brinkmann <[email protected]>
* Add onSubscriptionUpdate callback

* Remove unnecesary onTransactionComplete

---------

Co-authored-by: Derek Brinkmann <[email protected]>
* Deserializing reducer args before table updates so they can be accessed from callbacks

* Reducer arguments in table events

* Removed redundant onSubscriptionUpdate

---------

Co-authored-by: Steve <[email protected]>
Co-authored-by: John Detter <[email protected]>
Co-authored-by: John Detter <[email protected]>
Co-authored-by: Steve <[email protected]>
Co-authored-by: John Detter <[email protected]>
* Deserializing reducer args before table updates so they can be accessed from callbacks

* Reducer arguments in table events

* Adding OnBeforeDelete event to tables

* Renaming ReducerCallInfo to ReducerEvent

* Removed extra onSubscriptionUpdate

---------

Co-authored-by: Steve <[email protected]>
Co-authored-by: John Detter <[email protected]>
* Deserializing reducer args before table updates so they can be accessed from callbacks

* Reducer arguments in table events

* Adding OnBeforeDelete event to tables

---------

Co-authored-by: Steve <[email protected]>
Co-authored-by: John Detter <[email protected]>
Centril and others added 25 commits November 4, 2024 17:46
## Description of Changes

Adds C# sdk support for
clockworklabs/SpacetimeDB#1812.

## Requires SpacetimeDB PRs

- clockworklabs/SpacetimeDB#1812

## Testsuite

SpacetimeDB branch name: centril/websocket-light

---------

Co-authored-by: Tyler Cloutier <[email protected]>
Co-authored-by: John Detter <[email protected]>
## Description of Changes

Fix the quickstart client program, also removes the rust server program (it lives in the stdb main repo under modules/quickstart-chat)

## Testing

Second subscription resets the first one without the fix

## Testsuite

SpacetimeDB branch name: master
## Description of Changes
Just bump `package.json` to `1.0.0-rc1` instead of `1.0.0`.

## API
No breaking changes

## Requires SpacetimeDB PRs
None

## Testing

Co-authored-by: Zeke Foppa <[email protected]>
## Description of Changes
Cherrypicking the changes from
#190,
which were merged directly to `master` (by me, without thinking it
through).

## API

Fixes API breakage related to endianness.

## Requires SpacetimeDB PRs
clockworklabs/SpacetimeDB#1964

## Testsuite
SpacetimeDB branch name: master

## Testing
CI only. These changes have already been released.
## Description of Changes

Counterpart to clockworklabs/SpacetimeDB#2033.

Also updated test settings to make sure that sum type variants
implemented via subclassing are shown as expected.

## 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 against a specific SpacetimeDB branch in the
testsuite, 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*

- [ ] Describe a test for this PR that you have completed
## Description of Changes
This bumps the unity-test submodule
 
## API

No API Change

## Requires SpacetimeDB PRs

No special PRs, should work with latest master of SpacetimeDB.

## 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
I opened up this commit of CircleGame in Unity on my own machine and ran
the tests. They seemed to work fine.
## Description of Changes

(this is a reopening of #204 which targeted wrong branch)

I don't know when or why this broke (or, rather, how it worked before),
but we're installing .NET 7 but packing BSATN.Runtime that multi-targets
.NET Standard 2.1 + .NET 8. The latter part, as you'd expect, fails on
CI.

~~This change tells `dotnet pack` to only pack for .NET Standard 2.1
since that's the one we're interested in on the client - .NET 8 support
is only for C# server modules.~~ _Narrator: that didn't work out._

This change bumps .NET SDK to 8.0 because I still don't know how it
worked before with .NET 7, and this seems like the more sensible
solution anyway.

## 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*

- [ ] Describe a test for this PR that you have completed
Fixes #202.

Because SELECT * is ambiguous if the query is a join

## Description of Changes

Bug Fix

Previously `RemoteQuery` would implicitly `SELECT *`. This was wrong
because you can use `RemoteQuery` to issue join queries.

## 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: v1.0.0-rc1

## 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

Updates Unity tests to include fix from
clockworklabs/Blackholio#10.

## 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*

- [ ] Describe a test for this PR that you have completed
## Description of Changes

This is a requested DX improvement to make sure that IDE shows
reasonable argument names instead of `arg0`...`argN`.

Fixes
#200.

## API

 - [x] This is an API breaking change to the SDK

*If the API is breaking, please state below what will break*

Potentially breaking in obscure edge cases, if someone already had
`Action<...> myCallback;` that they passed to those APIs as C# won't
cast it automatically to our custom delegate type.

## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*

## Testsuite
*If you would like to run against a specific SpacetimeDB branch in the
testsuite, 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] `dotnet test`
## Description of Changes
Bump package version to `1.0.0-rc3` and do a preliminary upgrade of the
DLLs.

I believe the DLLs might need updating again once the BSATN.Runtime
package is pushed to NuGet (because then it will be fetched from NuGet).

## API

Not API breaking.

## Requires SpacetimeDB PRs
clockworklabs/SpacetimeDB#2094

## Testsuite
SpacetimeDB branch name: release/v1.0.0-rc3

## Testing
- [x] Existing CI is successful (pointed at the RC3 SpacetimeDB branch).

---------

Co-authored-by: Zeke Foppa <[email protected]>
## Description of Changes

`WithCredentials` was designed for our old auth model, where tokens were
always issued by the SpacetimeDB host alongside an `Identity`, and
therefore the bearer always knew their `Identity`.

In our new auth model, a client may have a valid auth-able JWT but not
know what `Identity` it will result in,
as the `Identity` is computed based on the hash of some of the token's
contents, and this hashing algorithm is not included in our client SDKs.
As such, this PR revises `WithCredentials` to `WithToken`, which just
accepts the token.

## API

 - [x] This is an API breaking change to the SDK

*If the API is breaking, please state below what will break*

`WithCredentials` is renamed and its signature changes.

## 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*

- [ ] @cloutiertyler should test this with the Unity tutorial, if
possible.

---------

Co-authored-by: Zeke Foppa <[email protected]>
## Description of Changes

Adds CI check to prevent issues like #208.

## 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*

- [ ] Describe a test for this PR that you have completed
## Description of Changes

Looks like the .meta check hard-fails on push events if
`enable_pr_comment` is `true`, instead of just ignoring it...

I hope this fix works, but hard to tell without merging first.

## 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] This is a PR that changes CI configuration, so see CI
## Description of Changes

Per out-of-band discussion, add
`SubscriptionBuilder.SubscribeToAllTables`, which abstracts over
`SubscriptionBuilder.Subscribe(["SELECT * FROM *"])`.

In the future, we will change the implementation of this method, so that
it uses "legacy subscriptions" while `SubscriptionBuilder.Subscribe`
moves to using "mutable subscriptions." At that time, no other interface
will be provided for using "legacy subscriptions."
`SubscribeToAllTables` may also at some point be rewritten in terms of
"mutable subscriptions" somehow.

## 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
*Write instructions for a test that you performed for this PR*

- [x] @cloutiertyler will use this in the new tutorial and report back.

---------

Co-authored-by: Ingvar Stepanyan <[email protected]>
Co-authored-by: Zeke Foppa <[email protected]>
Co-authored-by: Zeke Foppa <[email protected]>
Co-authored-by: Tyler Cloutier <[email protected]>
## Description of Changes

Looks like client API bindings haven't been regenerated in a while, and
this is a necessary precursor to the new subscription work. This PR
fixes the generation script, regenerates the bindings and updates
affected code.

## 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: v1.0.0-rc3

## Testing
*Write instructions for a test that you performed for this PR*

- [x] Ran regular `dotnet test`.
- [x] Checked Unity tests via CI.
## Description of Changes

This unifies various CI task into a single config that checks out the
referenced SpacetimeDB branch only once and using the same PR parsing
code (previously used only in Unity), and then runs all the builds and
tests against it. That is, .NET test, server module and Unity tests are
now all consistently overridden to point to the same SpacetimeDB.

## 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

- [x] Lots of CI testing and tweaking until all of existing CI tests
started working again; ensured .NET tests are executed as expected
against the specified branch name.
## Description of Changes

As proposed. No upstream codegen changes needed :)

## API

 - [x] This is an API breaking change to the SDK

*If the API is breaking, please state below what will break*
The subscription API is slightly different.

## Requires SpacetimeDB PRs
clockworklabs/SpacetimeDB#2111

## Testsuite

SpacetimeDB branch name: jsdt/subscribe-sdk-3

## Testing
So far I have performed manual testing with the chat example. Working on
updating the unity and unit tests.

- [ ] Describe a test for this PR that you have completed
## Description of Changes
Bump the version and include the DLLs from the corresponding NuGet
packages / SpacetimeDB version.

## API

 - [ ] This is an API breaking change to the SDK

I believe not?

## Requires SpacetimeDB PRs
I believe this requires tag `v1.0.0-rc3-hotfix3`

## 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: v1.0.0-rc3-hotfix3

## Testing
Only automated testing, since this itself is just a version bump.

---------

Co-authored-by: Zeke Foppa <[email protected]>
## Description of Changes
Remove the `-hotfix*` part of the version in our trunk branch.

It was a (my) mistake to merge a `-hotfix*` version change. Hotfixes
are, by definition, cherry-picked changes that are going to be released
directly to users without merging.

The consequence of merging this change was that the `SDK Tests` CI job
started failing on SpacetimeDB PRs (e.g. see failures on
clockworklabs/SpacetimeDB#2137), because it
checks out this repo, which then tried to use the `-hotifx3` version of
SpacetimeDB. But the `master` branch of SpacetimeDB is at `1.0.0-rc3`
(no hotfix), because the hotfix was correctly released from a branch
without merging in that repo.

Although this PR reverts the version change, we do still have a tag
`v1.0.0-rc3-hotfix3` that we can use to release the hotfix version (by
`git push -f origin v1.0.0-rc3-hotfix3:master`) if/when desired.

## API

 - [ ] This is an API breaking change to the SDK

No

## Requires SpacetimeDB PRs
Should work with `master`.

## 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
I claim that the CI tests passing with `master` show that this is
correct. The original version change itself passed CI because it was
pointing at a non-`master` branch for testing. I claim it would have
failed if it were tested against SpacetimeDB `master`.

Generally, this might point to a bug in how we've done this CI: We
should probably only allow a PR to merge in this repo if it tests
successfully against SpacetimeDB `master`, even if we want to point it
at other branches to test in the meantime.

Co-authored-by: Zeke Foppa <[email protected]>
## Description of Changes
Revert DLLs, which I should have done in
#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 <[email protected]>
@bfops
Copy link
Collaborator

bfops commented Aug 8, 2025

Migrated to clockworklabs/SpacetimeDB#3143, as we are merging this repo into that one.

@bfops bfops closed this Aug 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.