Repository navigation
Conversation
Bumps Autofac from 9.0.0 to 9.3.2 Bumps Dapper from 2.1.66 to 2.1.79 Bumps Fastenshtein from 1.0.11 to 1.0.12 Bumps Google.Cloud.Firestore from 4.1.0 to 4.4.0 Bumps Microsoft.AspNetCore.Http from 2.3.0 to 2.3.13 Bumps Microsoft.AspNetCore.OpenApi from 10.0.2 to 10.0.12 Bumps Microsoft.Extensions.Caching.StackExchangeRedis from 10.0.2 to 10.0.12 Bumps Microsoft.Extensions.Http.Polly from 10.0.2 to 10.0.12 Bumps Microsoft.NET.Test.Sdk from 18.0.1 to 18.9.0 Bumps Npgsql.NetTopologySuite from 10.0.1 to 10.0.3 Bumps NUnit from 4.4.0 to 4.6.1 Bumps StackExchange.Redis from 2.10.1 to 2.13.17 Bumps System.Text.Json to 9.0.20, 10.0.12 Bumps ZiggyCreatures.FusionCache from 2.5.0 to 2.7.2 Bumps ZiggyCreatures.FusionCache.Serialization.SystemTextJson from 2.5.0 to 2.7.2 --- updated-dependencies: - dependency-name: NUnit dependency-version: 4.6.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: System.Text.Json dependency-version: 9.0.20 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: System.Text.Json dependency-version: 10.0.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Autofac dependency-version: 9.3.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: Dapper dependency-version: 2.1.79 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Fastenshtein dependency-version: 1.0.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Google.Cloud.Firestore dependency-version: 4.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: Microsoft.AspNetCore.Http dependency-version: 2.3.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Microsoft.AspNetCore.OpenApi dependency-version: 10.0.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Microsoft.Extensions.Caching.StackExchangeRedis dependency-version: 10.0.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Microsoft.Extensions.Http.Polly dependency-version: 10.0.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: Npgsql.NetTopologySuite dependency-version: 10.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: safe-dependencies - dependency-name: StackExchange.Redis dependency-version: 2.13.17 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: ZiggyCreatures.FusionCache dependency-version: 2.7.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: ZiggyCreatures.FusionCache.Serialization.SystemTextJson dependency-version: 2.7.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies - dependency-name: Microsoft.NET.Test.Sdk dependency-version: 18.9.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: safe-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
stdavis
deleted the
dependabot/nuget/libs/EsriJson/EsriJson.Net.Tests/safe-dependencies-361f7147b2
branch
September 16, 2026 22:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated Autofac from 9.0.0 to 9.3.2.
Release notes
Sourced from Autofac's releases.
9.3.2
What's Changed
[ServiceKey]attribute by @npease18 (#1495, fixes #1480)New Contributors
Full Changelog: autofac/Autofac@v9.3.1...v9.3.2
9.3.1
What's Changed
Fix per-resolve closure allocation in resolve pipeline (#1493) by @tillig in autofac/Autofac#1494
Full Changelog: autofac/Autofac@v9.3.0...v9.3.1
9.3.0
What's Changed
Full Changelog: autofac/Autofac@v9.2.0...v9.3.0
9.2.0
What's Changed
IStartablethrows during Build (#1392) by @tillig in Dispose container when an IStartable throws during Build (#1392) autofac/Autofac#1485ExternallyOwnedownership for decorators (#1402) by @tillig in Honor ExternallyOwned ownership for decorators (#1402) autofac/Autofac#1486Moduleregistry events when hooks are overridden (#1446) by @tillig in Only subscribe Module registry events when hooks are overridden (#1446) autofac/Autofac#1487GetRegistrationIdextension to expose a registration's unique ID (#1327) by @tillig in Add GetRegistrationId extension to expose a registration's unique ID (#1327) autofac/Autofac#1490Full Changelog: autofac/Autofac@v9.1.0...v9.2.0
9.1.0
This is a pretty big release for Autofac with some major new functionality!
AnyKey Support
First, Autofac now natively supports the concept of
AnyKey. It behaves the same wayAnyKeyworks in Microsoft.Extensions.DependencyInjection, but it is native to Autofac directly. The unit tests here show some very detailed examples of usage, but on a high level:Inject Service Key Into Constructors
The new
[ServiceKey]attribute allows you to inject the service key provided during resolution. This is handy in conjunction withAnyKey. Again, this is similar to the construct in Microsoft.Extensions.DependencyInjection, but with native Autofac.First, mark up your class to take the constructor parameter.
Then when you resolve the class, the service key will automatically be injected.
You can also make use of this in a lambda registration.
Metrics
Some metrics have been introduced that can allow you to capture counters on how long middleware is taking, how often lock contention occurs, and so on.
Set the
AUTOFAC_METRICSenvironment variable in your process totrueor1to enable this feature. You can see the set of counters that will become available here.... (truncated)
Commits viewable in compare view.
Updated Dapper from 2.1.66 to 2.1.79.
Release notes
Sourced from Dapper's releases.
2.1.79
What's Changed
New Contributors
Full Changelog: DapperLib/Dapper@2.1.72...2.1.79
2.1.72
What's Changed
New Contributors
Full Changelog: DapperLib/Dapper@2.1.66...2.1.72
Commits viewable in compare view.
Updated Fastenshtein from 1.0.11 to 1.0.12.
Release notes
Sourced from Fastenshtein's releases.
1.0.12
What's Changed
Full Changelog: DanHarltey/Fastenshtein@1.0.11...1.0.12
Commits viewable in compare view.
Updated Google.Cloud.Firestore from 4.1.0 to 4.4.0.
Release notes
Sourced from Google.Cloud.Firestore's releases.
4.4.0
New features
Commits viewable in compare view.
Updated Microsoft.AspNetCore.Http from 2.3.0 to 2.3.13.
Release notes
Sourced from Microsoft.AspNetCore.Http's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.AspNetCore.OpenApi from 10.0.2 to 10.0.12.
Release notes
Sourced from Microsoft.AspNetCore.OpenApi's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.Caching.StackExchangeRedis from 10.0.2 to 10.0.12.
Release notes
Sourced from Microsoft.Extensions.Caching.StackExchangeRedis's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.Extensions.Http.Polly from 10.0.2 to 10.0.12.
Release notes
Sourced from Microsoft.Extensions.Http.Polly's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated Microsoft.NET.Test.Sdk from 18.0.1 to 18.9.0.
Release notes
Sourced from Microsoft.NET.Test.Sdk's releases.
18.9.0
What's Changed
New Contributors
Full Changelog: microsoft/vstest@v18.8.0...v18.9.0
18.8.1
What's Changed
Full Changelog: microsoft/vstest@v18.8.0...v18.8.1
18.8.0
What's Changed
Full Changelog: microsoft/vstest@v18.7.0...v18.8.0
18.7.0
What's Changed
New Contributors
Full Changelog: microsoft/vstest@v18.6.0...v18.7.0
18.6.0
What's Changed
Changes to tests and infra
... (truncated)
18.5.1
What's Changed
Full Changelog: microsoft/vstest@v18.5.0...v18.5.1
18.5.0
What's Changed
Full Changelog: microsoft/vstest@v18.4.0...v18.5.0
18.4.0
What's Changed
Add LoongArch64 support by @stdmnpkg in Add LoongArch64 support microsoft/vstest#15359
Refactor Condition evaluation by @Youssef1313 in Refactor Condition evaluation microsoft/vstest#15357
Adding info on extensions points part 1 by @nohwnd in Adding info on extensions points part 1 microsoft/vstest#15360
Add option to ask for uploading code QL before the standard window ends by @nohwnd in Add option to ask for uploading code QL before the standard window ends microsoft/vstest#15373
Update runtime versions by @nohwnd in Update runtime versions microsoft/vstest#15372
Fix .NET 10 regression for traits by @Youssef1313 in Fix .NET 10 regression for traits microsoft/vstest#15370
Update target frameworks to net10.0 and net11.0 by @dotnet-maestro[bot] in Update target frameworks to net10.0 and net11.0 microsoft/vstest#15349
Fix names in pipeline matrix so we don't have to align them by @nohwnd in Fix names in pipeline matrix so we don't have to align them microsoft/vstest#15365
Update SECURITY.md by @Youssef1313 in Update SECURITY.md microsoft/vstest#15342
New Contributors
Full Changelog: microsoft/vstest@v18.3.0...v18.4.0
18.3.0
What's Changed
Internal fixes and updates
New Contributors
Commits viewable in compare view.
Updated Npgsql.NetTopologySuite from 10.0.1 to 10.0.3.
Release notes
Sourced from Npgsql.NetTopologySuite's releases.
10.0.3
Release milestone
Full Changelog: npgsql/npgsql@v10.0.2...v10.0.3
10.0.2
v10.0.2 contains several minor bug fixes.
Milestone issues
Full Changelog: npgsql/npgsql@v10.0.1...v10.0.2
Commits viewable in compare view.
Updated NUnit from 4.4.0 to 4.6.1.
Release notes
Sourced from NUnit's releases.
4.6.1
See release notes for details.
4.6.0
See release notes for details.
4.5.1
See release notes for details.
4.5.0
See release notes for details.
Commits viewable in compare view.
Updated StackExchange.Redis from 2.10.1 to 2.13.17.
Release notes
Sourced from StackExchange.Redis's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated System.Text.Json from 9.0.12 to 9.0.20.
Release notes
Sourced from System.Text.Json's releases.
9.0.20
Release
What's Changed
Full Changelog: dotnet/runtime@v9.0.19...v9.0.20
9.0.19
Release
What's Changed
Full Changelog: dotnet/runtime@v9.0.18...v9.0.19
9.0.18
Release
What's Changed
Full Changelog: dotnet/runtime@v9.0.17...v9.0.18
9.0.17
Release
What's Changed
Full Changelog: dotnet/runtime@v9.0.16...v9.0.17
9.0.16
Release
9.0.15
Release
9.0.14
Release
9.0.13
Release
What's Changed
Full Changelog: dotnet/runtime@v9.0.12...v9.0.13
Commits viewable in compare view.
Updated System.Text.Json from 10.0.2 to 10.0.12.
Release notes
Sourced from System.Text.Json's releases.
No release notes found for this version range.
Commits viewable in compare view.
Updated ZiggyCreatures.FusionCache from 2.5.0 to 2.7.2.
Release notes
Sourced from ZiggyCreatures.FusionCache's releases.
2.7.2
🔃 Better DI registrations checks
Community member @erikatsg noticed what seemed like a strange behavior, but after a preliminary check discovered that the problem was on their side, because they were adding the same FusionCache registration to the DI container more than once.
Something like this:
This is generally not suggested nor supported.
Luckily, FusionCache already had a series of checks for that and more strange situations, and those checks emit log records in those situations.
Unluckily though, those checks were previously performed only when asking to the DI container for an
IFusionCacheProvider(to work with named caches).Well, not anymore: now it works in any setup/scenarion, all automatically.
The current list of checks performed is:
IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache()calls)IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache(name)calls with the same name)IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache().AsKeyedService(key)calls with the same key, for either named caches or the default cache)See here for the issue.
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default configuration deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing a specific json configuration for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.... (truncated)
2.7.1
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default configuration deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing a specific json configuration for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.See here and here for the issues.
🆕 New
SerializationConfigIssuesLogLeveloptionSee the previous item: with this new option is possible to change the desired log level, or suppress it.
🆕 New
DistributedLockerErrorsLogLeveloptionIt's now possible to granularly configure the log level to use for distributed lockers errors, which is nice.
🔭 Better handling of OTEL parent traces
Sometimes the handling of OTEL parent traces was not the best, particularly around highly multithreaded scenarios where a native
Activityis not being passed around correctly in the context.This has now been fixed.
🏷️ OTEL traces for a
RemoveByTag(tag)operation now include the tag (duh)Normally, every operation in the cache has a cache key as the main argument.
In the case of a
RemoveByTag(tag)operation though, that is not the case since the main argument is not the cache key, but the tag: strangely enough, FusionCache previously was not logging it front and center, but now it does.This should help with tagging-related investigations and troubleshootings.
Thanks to community member @tvardero for spotting this.
See here for the issue.
🐞 Better temporal checks during an L2 to L1 copy
Thanks to community member @DanielStout5 for spotting this: it's quite rare, but sometimes an entry in L2 may be older than the corresponding entry in L1, and before this fix that assumption did not hold sometimes.
Now an extra check is performed, to make sure that this scenario doesnot produce unwanted results.
... (truncated)
2.7.0
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default behavior deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing different json options specifically for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.See here and here for the issues.
🆕 New
SerializationIssuesLogLeveloptionSee the previous item: with this new option is possible to change the desired log level, or suppress it.
🆕 New
DistributedLockerErrorsLogLeveloptionIt's now possible to granularly configure the log level to use for distributed lockers errors, which is nice.
🔭 Better handling of OTEL parent traces
Sometimes the handling of OTEL parent traces was not the best, particularly around highly multithreaded scenarios where a native
Activityis not being passed around correctly in the context.This has now been fixed.
🏷️ OTEL traces for a
RemoveByTag(tag)operation now include the tag (duh)Normally, every operation in the cache has a cache key as the main argument.
In the case of a
RemoveByTag(tag)operation though, that is not the case since the main argument is not the cache key, but the tag: strangely enough, FusionCache previously was not logging it front and center, but now it does.This should help with tagging-related investigations and troubleshootings.
Thanks to community member @tvardero for spotting this.
See here for the issue.
🐞 Better temporal checks during an L2 to L1 copy
Thanks to community member @DanielStout5 for spotting this: it's quite rare, but sometimes an entry in L2 may be older than the corresponding entry in L1, and before this fix that assumption did not hold sometimes.
Now an extra check is performed, to make sure that this scenario doesnot produce unwanted results.
... (truncated)
2.6.0
🏷️ Configurable cleanup behavior for
RemoveByTag()Normally, when calling
RemoveByTag("my-tag"), the entries with such a tag will be gradually expired on a subsequent access.Community member @charlesvigneault asked for the ability to instead properly remove them.
So I added a new option to allow configuring this behavior:
See here for the original issue.
RemoveByTag("*")in HybridCache adapterAfter the initial release of HybridCache in 2025, the team added support for a special case: using
RemoveByTag("*")to clear the entire cache.I didn't notice untile recently, and thanks to community user @vrbyjimmy I did that.
Or, to better say it, he did that!
He acted so quickly that a PR immediately landed with the implementation, so thanks Jakub for that!
What happens underneath is that a
RemoveByTag("*")call on the adapter is detected and re-routed to a Clear() call on the underlying FusionCache instance: very simple and elegant, and I like that a lot.See here for the original issue.
🔒 Better Distributed Locker + Eager Refresh
Community user @jgshowpad noticed that when using the new distributed stampede protection introduced in v2.5.0 with Eager Refresh some errors were being logged.
That was caused by the Redis-based distributed locker not handling correctly a timeout of zero (which btw is a pretty common approach to basically check for a lock already being acquired by someone else, without having to wait).
This has now been fixed.
See here for the original issue.
⚡ Perf boost for
GenerateOperationId()Community user @Inok contributed with a nice set of low-level perf optimizations for the
GenerateOperationId()internal method, which may be called quite a lot when doing observability (logging, OTEL, etc).That's a very nice and welcome contribution, thanks Pavel!
See here for the original issue.
... (truncated)
Commits viewable in compare view.
Updated ZiggyCreatures.FusionCache.Serialization.SystemTextJson from 2.5.0 to 2.7.2.
Release notes
Sourced from ZiggyCreatures.FusionCache.Serialization.SystemTextJson's releases.
2.7.2
🔃 Better DI registrations checks
Community member @erikatsg noticed what seemed like a strange behavior, but after a preliminary check discovered that the problem was on their side, because they were adding the same FusionCache registration to the DI container more than once.
Something like this:
This is generally not suggested nor supported.
Luckily, FusionCache already had a series of checks for that and more strange situations, and those checks emit log records in those situations.
Unluckily though, those checks were previously performed only when asking to the DI container for an
IFusionCacheProvider(to work with named caches).Well, not anymore: now it works in any setup/scenarion, all automatically.
The current list of checks performed is:
IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache()calls)IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache(name)calls with the same name)IFusionCacheregistrations (e.g.: multipleservices.AddFusionCache().AsKeyedService(key)calls with the same key, for either named caches or the default cache)See here for the issue.
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default configuration deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing a specific json configuration for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.... (truncated)
2.7.1
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default configuration deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing a specific json configuration for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.See here and here for the issues.
🆕 New
SerializationConfigIssuesLogLeveloptionSee the previous item: with this new option is possible to change the desired log level, or suppress it.
🆕 New
DistributedLockerErrorsLogLeveloptionIt's now possible to granularly configure the log level to use for distributed lockers errors, which is nice.
🔭 Better handling of OTEL parent traces
Sometimes the handling of OTEL parent traces was not the best, particularly around highly multithreaded scenarios where a native
Activityis not being passed around correctly in the context.This has now been fixed.
🏷️ OTEL traces for a
RemoveByTag(tag)operation now include the tag (duh)Normally, every operation in the cache has a cache key as the main argument.
In the case of a
RemoveByTag(tag)operation though, that is not the case since the main argument is not the cache key, but the tag: strangely enough, FusionCache previously was not logging it front and center, but now it does.This should help with tagging-related investigations and troubleshootings.
Thanks to community member @tvardero for spotting this.
See here for the issue.
🐞 Better temporal checks during an L2 to L1 copy
Thanks to community member @DanielStout5 for spotting this: it's quite rare, but sometimes an entry in L2 may be older than the corresponding entry in L1, and before this fix that assumption did not hold sometimes.
Now an extra check is performed, to make sure that this scenario doesnot produce unwanted results.
... (truncated)
2.7.0
🏅 Better Advisor checks
A new check has been added in the Advisor that detecs a potentially incorrect configuration for a System.Text.Json based serializer related to value tuples.
This is not about a FusionCache bug, but about the System.Text.Json serializer's default behavior deviating from the commonly expected one (like, historically, Json.NET for example), see here for more.
Instead of forcing different json options specifically for FusionCache, the Advisor now checks if the serializer in use is not supporting value tuples correctly and, if so, emits a warning (also configurable) in the logs to warn users about that.
This allows them to make the best decision for their specific use case.
Thanks to @sychare and @bassepeder for the hints.
Also, the check for a missing
CacheKeyPrefixis now better, more limited in scope.See here and here for the issues.
🆕 New
SerializationIssuesLogLeveloptionSee the previous item: with this new option is possible to change the desired log level, or suppress it.
🆕 New
DistributedLockerErrorsLogLeveloptionIt's now possible to granularly configure the log level to use for distributed lockers errors, which is nice.
🔭 Better handling of OTEL parent traces
Sometimes the handling of OTEL parent traces was not the best, particularly around highly multithreaded scenarios where a native
Activityis not being passed around correctly in the context.This has now been fixed.
🏷️ OTEL traces for a
RemoveByTag(tag)operation now include the tag (duh)Normally, every operation in the cache has a cache key as the main argument.
In the case of a
RemoveByTag(tag)operation though, that is not the case since the main argument is not the cache key, but the tag: strangely enough, FusionCache previously was not logging it front and center, but now it does.This should help with tagging-related investigations and troubleshootings.
Thanks to community member @tvardero for spotting this.
See here for the issue.
🐞 Better temporal checks during an L2 to L1 copy
Thanks to community member @DanielStout5 for spotting this: it's quite rare, but sometimes an entry in L2 may be older than the corresponding entry in L1, and before this fix that assumption did not hold sometimes.
Now an extra check is performed, to make sure that this scenario doesnot produce unwanted results.
... (truncated)
2.6.0
🏷️ Configurable cleanup behavior for
RemoveByTag()Normally, when calling
RemoveByTag("my-tag"), the entries with such a tag will be gradually expired on a subsequent access.Community member @charlesvigneault asked for the ability to instead properly remove them.
So I added a new option to allow configuring this behavior:
See here for the original issue.
RemoveByTag("*")in HybridCache adapterAfter the initial release of HybridCache in 2025, the team added support for a special case: using
RemoveByTag("*")to clear the entire cache.I didn't notice untile recently, and thanks to community user @vrbyjimmy I did that.
Or, to better say it, he did that!
He acted so quickly that a PR immediately landed with the implementation, so thanks Jakub for that!
What happens underneath is that a
RemoveByTag("*")call on the adapter is detected and re-routed to a Clear() call on the underlying FusionCache instance: very simple and elegant, and I like that a lot.See here for the original issue.
🔒 Better Distributed Locker + Eager Refresh
Community user @jgshowpad noticed that when using the new distributed stampede protection introduced in v2.5.0 with Eager Refresh some errors were being logged.
That was caused by the Redis-based distributed locker not handling correctly a timeout of zero (which btw is a pretty common approach to basically check for a lock already being acquired by someone else, without having to wait).
This has now been fixed.
See here for the original issue.
⚡ Perf boost for
GenerateOperationId()Community user @Inok contributed with a nice set of low-level perf optimizations for the
GenerateOperationId()internal method, which may be called quite a lot when doing observability (logging, OTEL, etc).That's a very nice and welcome contribution, thanks Pavel!
See here for the original issue.
... (truncated)
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditions