v1.0.0-rc3-hotfix7
clockworklabs/SpacetimeDBv1.0.0-rc3-hotfix7Jan 14, 2025by bfops
AI Summary
This hotfix release focuses on performance, logging macro changes, and CLI improvements for the RC3 candidate.
Key Highlights
- Significant performance improvements across the codebase.
- Replaced `println!` and `eprintln!` with `log::info!` and `log::error!`.
- CLI fixes including `spacetime energy balance` and renaming `dns` to `rename`.
- New C# index syntax and fixes for C# compilation with .NET 9.
Breaking Changes
- Directory structure restructured, requiring a data wipe.
New Features
- Performance improvements
- New logging macros
- CLI rename command
- New C# index syntax
Full Release Notes
## 🥇 We're getting close! 🥇 We're full steam ahead toward our 1.0 release soon! This release candidate brings a sneak peek at lots of upcoming changes. This release will require a data wipe, because we restructured the SpacetimeDB directory structure. Some highlights: - Lots of performance improvements! - Removed the `println!` and `eprintln` macros in favor of `log::info!` and `log::error!` - Fix defining multiple tables on the same `struct` in Rust modules - CLI - Fixed `spacetime energy balance` not working at all - The `spacetime dns` subcommand is now `spacetime rename` - When updating the `cli.toml` config file, comments and formatting are preserved - C# - New C# index syntax - Reduce noisy C# compilation errors - Fixed a bug where C# modules would not build if .NET 9 was installed on the system ## What's Changed * commitlog: Introduce epoch by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1851 * Remove jdetter as codeowner for now by @jdetter in https://github.com/clockworklabs/SpacetimeDB/pull/1939 * Fix benches for ia_loop, circles by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1922 * Logical to physical plan lowering by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1910 * Be more careful about endianness with Identity and Address by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1926 * Simplify benchmarking wrappers by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1951 * Decode identity correctly by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/1952 * Removing dead code: Relational ops and cursor by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1956 * Get `jsonwebtoken` and `jwks` forks from crates.io by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1958 * Add LICENSE file to `sql-parser` crate by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1959 * Add missing LICENSE by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1960 * Bump version to 1.0.0-rc2 by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1962 * Add typing context for lowering by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1963 * Add test for light update by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1953 * Clean up benchmark .spacetime in CI by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1968 * refactor: encode type info implicitly in the physical plan by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1938 * CLI - Remove unused `default_identity` stuff by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1969 * CLI - Tell users if they're already logged in by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1955 * CLI - Fix stale helptext instructing users to use `spacetime identity` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1954 * commitlog: Small tweaks by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1978 * NFC: Remove unused fsync param in benchmarks by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1981 * Directory structure impl by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/1879 * Bump C# versions to `-hotfix1` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1984 * Light updates test: Ensure subcriptions have been applied before calling reducers by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/1979 * Optimize integrate_generated_columns by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/1895 * Update run_standalone_temp.sh to the new folder specification by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1990 * Clean up auth related code with traits, and reuse existing key generation code. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/1988 * core: Make NDV non-zero by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/1985 * test: No divide by zero for row estimation of empty index by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/1986 * Run and test benchmarks against C# as well by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1965 * Preserve reducer order in schema conversion by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1987 * Durability Provider by @Shubham8287 in https://github.com/clockworklabs/SpacetimeDB/pull/1864 * Fix flaky oidc tests by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2000 * C# endianness fixes by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1964 * Rip useless names out of RawDef by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/1918 * commitlog: Fix set_epoch by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2005 * create commitlog dir in fs::New by @Shubham8287 in https://github.com/clockworklabs/SpacetimeDB/pull/2006 * Don't autogen schedule fields by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/1894 * Remove problematic debug assertions by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2010 * CLI should not depend on rustup by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/1996 * Speed up `state_view::Iter` by special casing committed-with-no-deletes by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2003 * Rust SDK: Actual client-side indices for unique constraints by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/1909 * Decide that BSATN `byte` that ain't 0 or 1 is not a valid `AV::Bool` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2026 * Add `Layout.fixed: bool` for a fast path in `eq_row_in_page` & `row_type_visitor` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2025 * Add `static_bsatn_validator` & `validate_bsatn` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2029 * Add `Static(Bsatn)Layout::deserialize_row_into` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2032 * Remove IO macros by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1929 * Migrate C# client-side reducer enum to the new syntax by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2033 * Rust SDK: no more reducer args structs by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2036 * Fix subscription benchmarks by fixing `create_table_for_test_with_the_works` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2027 * move unique constraint checking until after optimistic insertion by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2037 * Allocation pool the chunked iters in `InstanceEnv` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2038 * Avoid a multimap when the index is unique by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2044 * Fix declaration order of ScheduleAt in C# by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/2007 * commitlog: Provide `segment_len` method for segments by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2042 * Fix some places where trying to parse an empty string could panic. by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2051 * Fix spacetime server clear by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2055 * query rewriter by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2031 * Migrate C# ModuleDef to V9 by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/1670 * fix: filter pushdown over table scan by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2063 * commitlog: Fix offset index truncation by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2073 * fix: qualified projection columns by @joshua-spacetime in https://github.com/clockworklabs/SpacetimeDB/pull/2070 * commitlog: Make memory segment behave like `O_APPEND` by @kim in https://github.com/clockworklabs/SpacetimeDB/pull/2072 * CLI - Remove deprecated use of the `--project-path` flag by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/915 * Reduce noisy C# compilation errors by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2067 * Split Iter & IterByColRange types into Tx and MutTxId versions by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2043 * Tweak scheduled_at macro syntax by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2054 * Server-side implementation of incremental subscription changes by @jsdt in https://github.com/clockworklabs/SpacetimeDB/pull/2030 * Implement the `identity` host call and `ctx.identity()` in Rust by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2085 * Preserve the comments of the "cli.toml" on changes by @mamcx in https://github.com/clockworklabs/SpacetimeDB/pull/2002 * CLI - Confirm before publishing to non-local servers by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2086 * C#: fix class names for unique column indices by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2088 * CLI - Fix `spacetime energy balance` not working by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/2087 * Use a spinner to show that wasm is compiling in spacetime generate by @coolreader18 in https://github.com/clockworklabs/SpacetimeDB/pull/2057 * Enforce .NET 8 SDK for new C# modules by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2046 * Implement `ctx.Identity` for C# by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2091 * Implement new C# index syntax by @RReverser in https://github.com/clockworklabs/SpacetimeDB/pull/2078 * CLI - `dns` subcommand becomes `rename` by @bfops in https://github.com/clockworklabs/SpacetimeDB/pull/1694 * datastore: insert via BSATN instead of via PV by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2069 * Extract `MutTxId::tx_state_removed_index(&self, index_id) -> bool` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2095 * Extract `InstanceEnv::project_cols_bsatn` by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2096 * Updated version to 1.0.0-rc3 by @cloutiertyler in https://github.com/clockworklabs/SpacetimeDB/pull/2059 * Use `println`/`eprintln` in the quickstart-chat client, not `log` by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2099 * perf(2019): skip `PointerMap` given a unique index by @Centril in https://github.com/clockworklabs/SpacetimeDB/pull/2092 * Make automatic migrations deterministic by @kazimuth in https://github.com/clockworklabs/SpacetimeDB/pull/2104 * Fix defining multiple tables on the same `struct` in Rust modules by @gefjon in https://github.com/clockworklabs/SpacetimeDB/pull/2103 **Full Changelog**: https://github.com/clockworklabs/SpacetimeDB/compare/v1.0.0-rc2-hotfix2...v1.0.0-rc3-hotfix7