Fixes:
- 9bc6b44 Fix race in ExpireAfter when item is removed or updated before expiration fires (#1076) @dwcullop
- 7b861d0 Fixed that the cache-land dynamic
.Filter()operator relied on limited mutation of an internalDictionary<,>during enumeration, a behavior that is not supported on target frameworks older than .NET Core 3.0. Additional logic to copy the keys to iterate, before mutation, should now be injected for builds targeting such older frameworks. (#1084) @JakenVeina - b93a6b9 Fix docs and exception messages for Change (#1085) @xackus
- cc8b91e Fixed that the Build and Release action defined in release.yml was attempting to publish a bogus "empty.nupkg" file that exists in the normal build output of the DynamicData.Tests project, as a part of the EmptyFiles package, since the job was written to search for "*.nupkg". (#1124) @JakenVeina
Other:
- bf45445 Add AI Instruction Files for GitHub Copilot (#1078) @dwcullop
- 12c1947 Overhaul XML documentation for ObservableCacheEx extension methods (#1080) @dwcullop
- b0d4c70 Update SwappableLock to support NET9+ Lock type (#1077) @dwcullop
- b966943 Add DynamicAccessedMembers attributes to BindingListEx methods (#1087) @daniel-lerch
- 28adb4f Overhaul XML documentation for ObservableListEx extension methods (#1081) @dwcullop
- 335ecbc Add Preview workflows and enforce versioning rules (#1088) @dwcullop
- d59ed5c Replace softprops/action-gh-release with gh CLI (#1092) @dwcullop
- 767f273 Restore stable 9.4 versioning on release/9.x (#1123) @dwcullop