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