* Add `Timestamp` to the SDK, moving it out of `client_api`
Companion to SpacetimeDB#1836
* Add `TimeDuration` class
* Add forgotten return type annotation
* 🤦
* Prettier
* Update `client_api` schema to use `TimeDuration`
* Micros, not nanos
From SpacetimeDB 072c2ea3a3:
Prioritize BSATN and BFLATN compat with 0.12
Timestamp and TimeDuration store `micros: i64`, not `nanos: i64`.
This means that old commitlogs and snapshots should still be compatible,
assuming they don't include timestamps greater than `i64::MAX`,
as previously we used `micros: u64`. This seems unlikely.
* Ran new code gen
* Fixed rebase conflicts
---------
Co-authored-by: Tyler Cloutier <cloutiertyler@aol.com>
* Updated the quickstart to use the new 1.0 API
* Ran prettier
* Updated CSS
* Removed server code
* Moved out of the client dir
* Updated lockfile
* Added new workflow
* Small fixes
* Updated PR template
* Ran prettier
* Fixes to workflwo
* Workflow fixes
* Fixes the toolchain thing
* Added SpacetimeDB integration test
* Fix workflow hopefully
* Fix workflow
* Prettier
* Updated pull request template to better reflect the reality
* Fixed path in workflow
* Prettier after codegen
* Regenerate
* Say yes to deleting data
* Updated codegen to latest master of SpacetimeDB
* debug actions
* Formatting
* Implemented EventContext update
* Removed unused imports
* Fix merge marker
* Updated the quickstart to use the new 1.0 API
* Ran prettier
* Updated CSS
* Removed server code
* Moved out of the client dir
* Updated lockfile
* Added new workflow
* Small fixes
* Updated PR template
* Ran prettier
* Fixes to workflwo
* Workflow fixes
* Fixes the toolchain thing
* Added SpacetimeDB integration test
* Fix workflow hopefully
* Fix workflow
* Prettier
* Updated pull request template to better reflect the reality
* Fixed path in workflow
* Prettier after codegen
* Regenerate
* Say yes to deleting data
* Updated codegen to latest master of SpacetimeDB
* debug actions
* Formatting
* add README steps
* Ran lints
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.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>
* Fix C# server build process & get rid of dead link in client manifest.json
* Fix unfinished paste
* Update for new c# codegen
* Update generated code and package jsons
* Revert server-rust dependency override
## 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>