Repository navigation
·
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 withCXML0013. - Types without a parameterless constructor deserialize through their constructor.
- Generator diagnostics respect
#pragma warningand.editorconfig. TuPackunpacks into a caller-suppliedSpan<Range>, withCountItemsto size it.- Dates format and parse two to five times faster, and an
Instantkeeps 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.Nativeships one package per branch (7.4.7and7.3.78), with a newosx-x64runtime.- Aspire: the 7.4 image tag is now
7.4.7. - The experimental text index writes documents without reflection.
Breaking changes
- The
net11.0build targets .NET 11 RC1. Its BCL and ASP.NET Core assets depend on11.0.0-rc.1packages, so a consumer building that target needs the .NET 11 RC1 SDK. Thenet10.0,net9.0, andnet8.0builds 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.Nativeversion numbering now follows the native version (7.4.7,7.3.78); a project pinning the exact7.4.4.1should move to7.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.