Repository navigation
JasperFx 2.80.0
Fixes
ValueTypeInfostrong-typed id wrappers now work under Native AOT (#942, #946).CreateWrapper<TOuter, TInner>()andUnWrapper<TOuter, TInner>()previously always compiled via FastExpressionCompiler and threwPlatformNotSupportedExceptionin a native image. They now branch onRuntimeFeature.IsDynamicCodeSupported, likeLambdaBuilder, and fall back to invoking the resolved constructor, static builder, or value property through reflection. JIT behaviour is unchanged.
Compliance suite (JasperFx.Events.ComplianceTests)
DocumentSearchCompliancegains hierarchy facts (#944, #945). Two newComplianceMemorysub-classes and four facts, gated onSupportsDocumentHierarchiesplus the search flags: sub-class vector search, root vector search, sub-class hybrid search, and a sub-class search filtering on the sub-class's own member. The facts assert a member only the requested sub-class carries, not just a count.⚠️ Stores whose search path has nodoc_typepredicate will fail these (see polecat#723, marten#5440).GuidOptimisticConcurrencyCompliancecovers the mapped version member (#943). It now covers a version mapped through the store's metadata (Metadata(m => m.Version.MapTo(...))) as well as theIVersionedmarker interface. The mapped route is a separate code path that has broken four times across stores.
Downstream follow-ups
- Marten: JasperFx/marten#5579
- Polecat: JasperFx/polecat#736
- Fisher: JasperFx/fisher#423 (drop the local #942 workarounds)
Full Changelog: V2.79.2...V2.80.0