v0.9.1-beta

clockworklabs/SpacetimeDBv0.9.1-betaMay 22, 2024by kurtismullins

AI Summary

A minor release focusing on CLI improvements, the removal of deprecated repeating reducers, and various bug fixes.

Key Highlights

  • Removed `#[spacetimedb(reducer, repeat = _)]` in favor of the `schedule!` macro.
  • Changed default server configuration from `local` to `testnet`.
  • Improved CLI consistency with `-s` and `-S` flag meanings.
  • Fixed deadlock issues and improved reducer queue metrics.

Breaking Changes

  • Removed `#[spacetimedb(reducer, repeat = _)]` attribute support.
  • Changed default server configuration to `testnet`.

New Features

  • CLI updates for server and skip_clippy flags
  • Bugfixes for `select * from *` and transaction locking

Full Release Notes

# v0.9.1 
Today's a good day - we have a new release for you! It's not the fanciest, shiniest release - but it includes some nice cleanups and important fixes.

> As a reminder you can upgrade from the previous release with the `spacetime upgrade` command.
> If you are on macOS and you've installed through brew we recommend using `brew install clockworklabs/tap/spacetime` to upgrade.

## Highlights
### :wastebasket: Removed repeating reducers
:warning: We have **removed repeating reducers** (`#[spacetimedb(reducer, repeat = _)]`) in favor of just using `schedule!`.

There are a lot of nuances to what exactly "repeating" means. It's easier for everyone to understand code that schedules what it wants, when it wants.
### :computer: CLI updates
:warning: The default server is now `testnet` instead of `local`!

The meaning of `-s` and `-S` are more consistent between CLI commands (`-s` is for `--server`, `-S` is for `--skip_clippy`). `spacetime build`, `spacetime identity`, and `spacetime server` have been tweaked.
### :hammer_and_wrench: Bugfixes
- Fix `select * from *`
- Atomically downgrade lock when committing tx to prevent deadlock
- fix(1170): Use scope guard to decrement reducer queue length
- fix(1173): Record wait time for all reducers
## Changelog
* Table: skip alignment checks in eq_row_in_page and hash_row_in_page by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1085
* core: Don't persist empty transactions by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1086
* Shrink AV by 8 bytes and AT by 16 by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1047
* Fix iai-callgrind rustc version mismatch by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1025
* Nuke `DataKey` 🚀  by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1093
* Simplify `ExecutionContext` constructors by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1098
* perf: optimize `Table::clone_structure` by avoiding clones by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1090
* Slow query log by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1052
* core: Store inputs (reducer info + args) in commitlog by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1091
* slow query log: only use `Instant::now` when needed + refactor by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1110
* fix(1115): Identify subscribers by Identity AND Address by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1121
* Re-instantiate replay progress reporting by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1096
* cli: Suggest to make new identity the default for server by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1109
* commitlog: Support traversal without opening the log by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1103
* Default commitlog output to info instead of debug by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/1123
* Nuke `#[spacetimedb(reducer, repeat = _)]` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1095
* `MultiMap`: don't sort values; use `.push(..)` and `.swap_remove(..)` instead by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1029
* core: AnyBytes from boxed slice by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1133
* Document RelValue variants by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1134
* Build uses -S for skip clippy by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/1129
* Use -s to specify server for spacetime identity list -s <server> by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/1130
* Fix an inconsistency with spacetime server fingerprint by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/1131
* Remove `Column.col_id` field by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1136
* Ignore discriminants in `Hash for AV + ArrayValue` + nix len-prefix for PV by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1057
* Reduce unwrap noise in CLI generate code by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1142
* Fix codegen tests by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1146
* Define `Hash + Eq` for BSATN by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1112
* NFC: format C# module SDK code by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1149
* `impl Eq for RowRef` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1135
* Tests use explicit `--server local` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1150
* CLI - Small refactor to default server configs by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1151
* CLI - Set default server to `testnet` by @dylanh724 in https://github.com/clockworklabs/SpacetimeDB/pull/1078
* Fail CI on smoketest failures by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/1155
* NFC: inline format args in `generate` code by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1153
* Dylan/doc: Link directly to cargo install on missing by @dylanh724 in https://github.com/clockworklabs/SpacetimeDB/pull/1102
* Simplify C# source generator csproj by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1143
* Ignore const members in C# types by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1175
* Disallow calling random lifecycle reducers by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/1114
* chore: Remove unused server metrics by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1171
* fix(1170): Use scope guard to decrement reducer queue length by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1172
* fix(1173): Record wait time for all reducers by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1174
* NFC: few more C# shorthand syntax conversions by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1176
* Add `Hash for RowRef` + make it consistent with `Hash for PV` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1163
* NFC: reuse common parts of C# generation by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1187
* Redefine FieldName as `(TableId, ColId)` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1165

## New Contributors
* @dylanh724 made their first contribution in https://github.com/clockworklabs/SpacetimeDB/pull/1078

**Full Changelog**: https://github.com/clockworklabs/SpacetimeDB/compare/v0.9.0-beta...v0.9.1-beta