Skip to content

7.4.6

Latest

Choose a tag to compare

@KrzysFR KrzysFR released this 08 Sep 22:49
· 135 commits to master since this release
Immutable release. Only release title and notes can be modified.

FoundationDB .NET client 7.4.6 targets .NET 11 RC1, serializes .NET 11 union types, formats dates two to five times faster, and the emulator now applies the cluster's 5 second history window.

Full release notes: https://snowbanksdk.github.io/foundationdb-dotnet-client/releases/7.4.6.html

Highlights

SnowBank:

  • CrystalJson serializes .NET 11 union types (write side, work in progress).
  • CrystalXml serializes a [DataMember] with a non-public setter instead of rejecting it with CXML0013.
  • Types without a parameterless constructor deserialize through their constructor.
  • Generator diagnostics respect #pragma warning and .editorconfig.
  • TuPack unpacks into a caller-supplied Span<Range>, with CountItems to size it.
  • Dates format and parse two to five times faster, and an Instant keeps its nanoseconds.
  • Seven date-literal defects fixed in the parsers and DOM factories.
  • String literals, decimals, and Guid values serialize faster.

FoundationDB:

  • The emulator (FoundationDB.FakeDb) applies the cluster's 5 second history window.
  • FoundationDB.Client.Native ships one package per branch (7.4.7 and 7.3.78), with a new osx-x64 runtime.
  • Aspire: the 7.4 image tag is now 7.4.7.
  • The experimental text index writes documents without reflection.

Breaking changes

  • The net11.0 build targets .NET 11 RC1. Its BCL and ASP.NET Core assets depend on 11.0.0-rc.1 packages, so a consumer building that target needs the .NET 11 RC1 SDK. The net10.0, net9.0, and net8.0 builds move to released servicing (10.0.12, 9.0.20) and need no change.
  • The emulator applies the 5 second history window. A test that reads at a version older than 5 seconds of store time, or commits from a transaction older than that, fails with FdbError.TransactionTooOld. To keep the old behavior: new FakeDbStore(retention: FdbSnapshotRetention.KeepEverything).
  • FoundationDB.Client.Native version numbering now follows the native version (7.4.7, 7.3.78); a project pinning the exact 7.4.4.1 should move to 7.4.*.
  • Dates built through the DOM change their text (whole seconds without a fraction, an unspecified midnight as a date only, default(Instant) as ""). Every spelling still parses back to the same value; only tests, hashes, and byte comparisons over the JSON text see a difference.