## Description of Changes
*Describe what has been changed, any new features or bug fixes*
Changed logging based on [this
proposal](https://github.com/clockworklabs/SpacetimeDBPrivate/pull/981)
## API
- [x] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
Logging interface is different now. `Logger` has been renamed to `Log`,
and its methods have been renamed as well (ex. `Logger.LogError` is now
`Log.Error`)
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
---------
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Co-authored-by: Jeremie Pelletier <jeremiep@gmail.com>
Co-authored-by: Steve Boytsun <steve@clockwokrlabs.io>
Co-authored-by: Ingvar Stepanyan <me@rreverser.com>
## Description of Changes
Single-line change so that `dotnet pack` stops complaining that nothing
was generated.
Per @RReverser this brings this package more in line with our other C#
packages.
## API
Nah nothing breaking.
## Requires SpacetimeDB PRs
Nope
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
This creates a frankenstein monster of a repo that is compatible with
both .NET / MSBuild as well as can be consumed as a Unity package.
- `.meta` files, Unity manifests and Unity README were copied over from
the Unity repo.
- `examples` and `tests` folders were renamed to `examples~` and
`tests~` correspondingly, as the `~` suffix is the only way to get
entire folders ignored by Unity.
- MSBuild was configured to change `bin` and `obj` to `bin~` and `obj~`
for the same reasons. This doesn't matter for the Git repo, but helpful
for local development where you don't want Unity to try and load local
DLL artifacts.
- NuGet was configured to restore Unity-compatible NuGet DLLs (and
delete others) in a local folder and committed to the repo - so, from
now on, we can easily update them by modifying `.csproj` and via
standard `dotnet restore` / `dotnet build`.
After this change, this repo should be compatible with both .NET CLI
(e.g. `dotnet test`) as well as consumable from Unity, but due to amount
of metadata changes, it needs further testing before we merge repos
properly.
Fixes#114.
## 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*
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Single-line change so that `dotnet pack` stops complaining that nothing
was generated.
Per @RReverser this brings this package more in line with our other C#
packages.
## API
Nah nothing breaking.
## Requires SpacetimeDB PRs
Nope
---------
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
## Description of Changes
Minor simplifications using BSATN helpers for Protobufectomy code.
Also removed unnecessary usings and a pattern.
## 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*
## Description of Changes
Currently, a push to a PR triggers our `dotnet` workflows twice: once
for the `push` event, and once for the `pull_request` event.
This PR brings the CI behavior in line with how SpacetimeDB does it.
(Someday we should reduce the number of `pull_request` events that
trigger this, but today is not that day).
---------
Co-authored-by: Zeke Foppa <github.com/bfops>
## Description of Changes
- Roslyn codegen won't need to be added as a separate dependency
anymore.
- ByteArrayComparer, Identity, and Address will now live in
BSATN.Runtime so that they're reused between the client and module SDKs.
## API
- [ ] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
## Requires SpacetimeDB PRs
- [x] https://github.com/clockworklabs/SpacetimeDB/pull/1440
- [ ] https://github.com/clockworklabs/SpacetimeDB/pull/1455
---------
Co-authored-by: Zeke Foppa <github.com/bfops>
## Description of Changes
Our CI now uses the packages from SpacetimeDB's `master` branch when
applicable.
## Testing
- [x] CI passes in test PR merging in the 0.11 upgrades:
https://github.com/clockworklabs/spacetimedb-csharp-sdk/pull/109
---------
Co-authored-by: Zeke Foppa <github.com/bfops>
## Description of Changes
*Describe what has been changed, any new features or bug fixes*
## 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*
## Description of Changes
- Removed JSON support (similar to changes being made on the TypeScript
side)
- Removed all references to protobuf
- Swapped the protobuf codegen for the output of our own C# codegen in
rust
- Refactored the connection class to reflect the API changes from
protobuf to bsatn
- Updated the example to reflect these changes
## API
- [ ] This is an API breaking change to the SDK
Changes the SDK types passed into event handlers.
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Description of Changes
See https://github.com/clockworklabs/SpacetimeDB/pull/1312 for the main
description and API breakages.
In the process extracted and simplified various common bits from
generated code into the SDK itself to make generated code more concise.
- Closes#67.
- Closes#68.
- Closes#73.
- Closes#76.
## 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
https://github.com/clockworklabs/SpacetimeDB/pull/1312
## Description of Changes
Just bumps the version number. Since 0.9.1 has been released, we are now
on 0.9.2+!
## 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*
Co-authored-by: Zeke Foppa <github.com/bfops>
## Description of Changes
As a result of the consistent filtering rules proposal
(clockworklabs/SpacetimeDB#1256), all equatable types are now natively
equatable in C# as well.
This allows us to compare objects directly, without holding and
comparing AlgebraicValue in the entries map as well, which has a bit of
a domino effect and allows to optimise, simplify or even remove some
parts of the SDK.
## API
- [x] This is an API breaking change to the SDK
New filtering rules limit types on which filtering can be done, as well
as change the return type of `FilterBy` functions to always be iterable.
## Requires SpacetimeDB PRs
https://github.com/clockworklabs/SpacetimeDB/pull/1277
## Description of Changes
Ignore duplicate inserts in the same subscription update
## 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*
## Description of Changes
Bumped the version number to 0.9.0 as this was forgotten in the previous
release. Includes all changes to date.
## API
- [X] This is an API breaking change to the SDK
*If the API is breaking, please state below what will break*
Not sure but its going out with the latest release. The previous package
was 5 months ago.
## Requires SpacetimeDB PRs
*List any PRs here that are required for this SDK change to work*
## Description of Changes
Instead of a separate TableOp enum, and 4 fields to handle insert/delete
metadata in DbOp, use a nullable struct that contains non-nullable
object + bytes pair internally:
- if `insert` is present (non-nullable) and `delete` is nullable, that
naturally indicates insert operation
- if `insert` is nullable and `delete` is not, that's a delete
- if both are non-nullable, it's an update
- if both are null, it's an internal "no change" state
This simplifies and shortens update handling as well as reduces risk of
state getting out of sync - e.g. TableOp saying that the operation is
insert should exist but field containing inserted value being null. Now
nullable struct itself communicates whether there is an insert or not,
without a separate enum.
## 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*
## Description of Changes
Initially just fixed the nullability issues / warnings, but in the
process did a few more minor drive-by refactorings.
## 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*