Skip to content

Commit 7712869

Browse files
authored
SE.Redis DC backend / HybridCache : add net8.0 TFM (#56122)
* add net8.0 TFM for distributed caching SE.Redis impl - this is for Garnet on Aspire which targets LTS hence 8 * prefer Versions.props variable over hard-coding net8.0 * PR feedback
1 parent 79cab58 commit 7712869

File tree

6 files changed

+34
-2
lines changed

6 files changed

+34
-2
lines changed

docs/UpdatingMajorVersionAndTFM.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Once dotnet/runtime has updated their TFM, we update ours in the dependency upda
4141
### Required changes
4242

4343
* In [eng/Versions.props](/eng/Versions.props), increment `DefaultNetCoreTargetFramework` by 1.
44+
* In [eng/Versions.props](/eng/Versions.props), **if and only if** the new TFM is LTS, update `CurrentLtsTargetFramework` to match `DefaultNetCoreTargetFramework`
4445
* In [eng/SourceBuild.props](/eng/SourceBuild.props), update `SourceBuildTargetFrameworkFilter` to include the current TFM.
4546
* Do a global repo search for the current version string, and update almost everything by 1 (e.g. find `net8`, replace with `net9`). See the PR linked above for examples - this shouldn't be done blindly, but on a case-by-case basis. Most things should be updated, and most choices should be obvious.
4647
* Exceptions to this are [eng/tools/RepoTasks/RepoTasks.csproj](/eng/tools/RepoTasks/RepoTasks.csproj) and [eng/tools/RepoTasks/RepoTasks.tasks](/eng/tools/RepoTasks/RepoTasks.tasks). These build without the workarounds from [eng/tools/GenerateFiles/Directory.Build.targets.in](/eng/tools/GenerateFiles/Directory.Build.targets.in), and need to be kept at the previous TFM until we get an SDK containing a runtime with the new TFM. Generally this means we have to hard-code the previous TFM for these files, rather than using `DefaultNetCoreTargetFramework`.

eng/Versions.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@
4444
src\Razor\test\testassets\Directory.Build.props when this changes.
4545
-->
4646
<DefaultNetCoreTargetFramework>net9.0</DefaultNetCoreTargetFramework>
47+
<!-- this should usually match for LTS builds, and be off-by-one otherwise;
48+
example use-case here is OOB packages where Aspire wants to be able to consume
49+
new features specific to OOB -->
50+
<CurrentLtsTargetFramework>net8.0</CurrentLtsTargetFramework>
4751
</PropertyGroup>
4852
<PropertyGroup Label="Arcade settings">
4953
<!-- Opt-in to Arcade tools for building VSIX projects. -->

src/Caching/Hybrid/src/Microsoft.Extensions.Caching.Hybrid.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
net 5.0 : [DynamicallyAccessedMembers], EncodingExtensions.GetString/GetBytes, IsExternalInit
1010
net 7.0 : ArgumentNullException.ThrowIfNull
1111
-->
12-
<TargetFrameworks>$(DefaultNetCoreTargetFramework);$(DefaultNetFxTargetFramework);netstandard2.0;netstandard2.1</TargetFrameworks>
12+
<TargetFrameworks>$(DefaultNetCoreTargetFramework);$(DefaultNetFxTargetFramework);netstandard2.0;netstandard2.1;$(CurrentLtsTargetFramework)</TargetFrameworks>
1313
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1414
<PackageTags>cache;distributedcache;hybrid</PackageTags>
1515
<ExcludeFromSourceOnlyBuild>true</ExcludeFromSourceOnlyBuild>

src/Caching/StackExchangeRedis/src/Microsoft.Extensions.Caching.StackExchangeRedis.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Description>Distributed cache implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache using Redis.</Description>
5-
<TargetFrameworks>$(DefaultNetCoreTargetFramework);$(DefaultNetFxTargetFramework);netstandard2.0</TargetFrameworks>
5+
<TargetFrameworks>$(DefaultNetCoreTargetFramework);$(DefaultNetFxTargetFramework);netstandard2.0;$(CurrentLtsTargetFramework)</TargetFrameworks>
66
<GenerateDocumentationFile>true</GenerateDocumentationFile>
77
<PackageTags>cache;distributedcache;redis</PackageTags>
88
<ExcludeFromSourceOnlyBuild>true</ExcludeFromSourceOnlyBuild>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#nullable enable
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#nullable enable
2+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache
3+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Dispose() -> void
4+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Get(string! key) -> byte[]?
5+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.GetAsync(string! key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task<byte[]?>!
6+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.RedisCache(Microsoft.Extensions.Options.IOptions<Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions!>! optionsAccessor) -> void
7+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Refresh(string! key) -> void
8+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.RefreshAsync(string! key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
9+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Remove(string! key) -> void
10+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.RemoveAsync(string! key, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
11+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.Set(string! key, byte[]! value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions! options) -> void
12+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCache.SetAsync(string! key, byte[]! value, Microsoft.Extensions.Caching.Distributed.DistributedCacheEntryOptions! options, System.Threading.CancellationToken token = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!
13+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions
14+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.Configuration.get -> string?
15+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.Configuration.set -> void
16+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ConfigurationOptions.get -> StackExchange.Redis.ConfigurationOptions?
17+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ConfigurationOptions.set -> void
18+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ConnectionMultiplexerFactory.get -> System.Func<System.Threading.Tasks.Task<StackExchange.Redis.IConnectionMultiplexer!>!>?
19+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ConnectionMultiplexerFactory.set -> void
20+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.InstanceName.get -> string?
21+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.InstanceName.set -> void
22+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ProfilingSession.get -> System.Func<StackExchange.Redis.Profiling.ProfilingSession!>?
23+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.ProfilingSession.set -> void
24+
Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions.RedisCacheOptions() -> void
25+
Microsoft.Extensions.DependencyInjection.StackExchangeRedisCacheServiceCollectionExtensions
26+
static Microsoft.Extensions.DependencyInjection.StackExchangeRedisCacheServiceCollectionExtensions.AddStackExchangeRedisCache(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action<Microsoft.Extensions.Caching.StackExchangeRedis.RedisCacheOptions!>! setupAction) -> Microsoft.Extensions.DependencyInjection.IServiceCollection!

0 commit comments

Comments
 (0)