Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CodeAnalysisRuleset>$(MSBuildThisFileDirectory)Shared.ruleset</CodeAnalysisRuleset>
<MSBuildWarningsAsMessages>NETSDK1069</MSBuildWarningsAsMessages>
<!-- SER002/SER003/SER006/SER007/SER008 retired (Redis 8.4/8.6/8.8/8.10 features, and geo-redundant
failover, no longer experimental); IDs reserved, see Experiments.cs -->
<NoWarn>$(NoWarn);NU5105;NU1507;SER001;SER004;SER005;SER009</NoWarn>
<!-- SER001/SER002/SER003/SER006/SER007/SER008 retired (vector sets, Redis 8.4/8.6/8.8/8.10 features,
and geo-redundant failover, no longer experimental); IDs reserved, see Experiments.cs -->
<NoWarn>$(NoWarn);NU5105;NU1507;SER004;SER005;SER009</NoWarn>
<PackageReleaseNotes>https://github.com/StackExchange/StackExchange.Redis/releases</PackageReleaseNotes>
<PackageProjectUrl>https://seredis.dev/</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
31 changes: 23 additions & 8 deletions docs/exp/SER001.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
At the current time, [Redis documents that](https://redis.io/docs/latest/commands/vadd/):
# SER001 — retired

**This diagnostic is no longer produced.** Vector set support in current library versions is not marked
experimental, so nothing emits `SER001` and no suppression is needed. The page is kept because the
diagnostic's help link pointed here, and older builds still carry it.

If you have a suppression for `SER001` — in a `csproj`, a `.editorconfig`, or a `#pragma` — it is now
inert, and can be removed whenever it suits you.

## What it used to mean

At the time, [Redis documented that](https://redis.io/docs/latest/commands/vadd/):

> Vector set is a new data type that is currently in preview and may be subject to change.

As such, the corresponding library feature must also be considered subject to change:
The corresponding library feature therefore had to be considered subject to change too:

1. Existing bindings may cease working correctly if the underlying server API changes.
2. Changes to the server API may require changes to the library API, manifesting in either/both of build-time
or run-time breaks.
1. Existing bindings might cease working correctly if the underlying server API changed.
2. Changes to the server API might require changes to the library API, manifesting in either/both of
build-time or run-time breaks.

While this seems *unlikely*, it must be considered a possibility. If you acknowledge this, you can suppress
this warning by adding the following to your `csproj` file:
Acknowledging that was what the suppression meant:

```xml
<NoWarn>$(NoWarn);SER001</NoWarn>
Expand All @@ -19,4 +29,9 @@ or more granularly / locally in C#:

``` c#
#pragma warning disable SER001
```
```

## Reserved, not recycled

`SER001` is not reused for anything else, so an old suppression cannot silently hide an unrelated
warning. The same applies to the other retired identifiers — see `Experiments.cs`.
3 changes: 2 additions & 1 deletion src/RESPite/Shared/Experiments.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ internal static class Experiments
// note: {0} is substituted with the DiagnosticId by the analyzer, e.g. .../exp/SER002
public const string UrlFormat = "https://seredis.dev/exp/{0}";

// Retired experiments: these server features are now stable and no longer gated.
// Retired experiments: these features are now stable and no longer gated.
// The DiagnosticIds remain reserved (do NOT reuse them) so old callers' suppressions
// and the /docs/exp pages stay meaningful:
// SER001 = vector sets
// SER002 = Server_8_4 (Redis 8.4 features)
// SER003 = Server_8_6 (Redis 8.6 features)
// SER006 = Server_8_8 (Redis 8.8 features)
Expand Down
Loading