Skip to content

[release/2.3] Remove deprecated SignalR.Redis and SignalR.Protocols.MessagePack packages - #68072

Merged
wtgodbe merged 1 commit into
dotnet:release/2.3from
wtgodbe:wtgodbe/remove-signalr-redis-messagepack-2.3
Jul 28, 2026
Merged

[release/2.3] Remove deprecated SignalR.Redis and SignalR.Protocols.MessagePack packages#68072
wtgodbe merged 1 commit into
dotnet:release/2.3from
wtgodbe:wtgodbe/remove-signalr-redis-messagepack-2.3

Conversation

@wtgodbe

@wtgodbe wtgodbe commented Jul 28, 2026

Copy link
Copy Markdown
Member

Removes Microsoft.AspNetCore.SignalR.Redis and Microsoft.AspNetCore.SignalR.Protocols.MessagePack (1.2.x) entirely from release/2.3, per the deprecation announced in aspnet/Announcements#531 — both carry vulnerable transitive dependencies that can't be fixed without breaking changes.

Changes:

  • Deleted the two project directories (src + test).
  • Removed all references from the solution and build manifests (Baseline.xml, Baseline.Designer.props, ProjectReferences.props, artifacts.props, Dependencies.props, dependencies.props, external-dependencies.props, repo.targets). Note: SignalR.Redis was part of the Microsoft.AspNetCore.All metapackage, so its dependency set changes for the next patch.
  • Removed MessagePack-specific tests/registrations across the SignalR test suite; kept StackExchange.Redis.StrongName (still needed by Microsoft.AspNetCore.DataProtection.Redis).

Verified the three affected test projects build successfully.

…kages

Both packages were announced deprecated (aspnet/Announcements#531) due to
vulnerable transitive dependencies that can't be fixed without breaking
changes. Removes the two projects, all build-manifest/solution references,
and MessagePack-specific tests across the SignalR test suite.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 28, 2026 19:53
@wtgodbe
wtgodbe requested review from a team, BrennanConroy and halter73 as code owners July 28, 2026 19:53
@wtgodbe wtgodbe changed the title Remove deprecated SignalR.Redis and SignalR.Protocols.MessagePack packages [release/2.3] Remove deprecated SignalR.Redis and SignalR.Protocols.MessagePack packages Jul 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the deprecated Microsoft.AspNetCore.SignalR.Redis and Microsoft.AspNetCore.SignalR.Protocols.MessagePack (1.2.x) packages from the SignalR codebase and build manifests in the release/2.3 branch to eliminate vulnerable transitive dependencies.

Changes:

  • Deleted the SignalR Redis scale-out implementation + tests and the MessagePack hub protocol implementation + tests.
  • Updated SignalR tests/utilities to no longer register or exercise the MessagePack protocol.
  • Removed package/project references from solution/build manifests (baselines, dependency lists, artifacts, signing list).

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/SignalR/SignalR.sln Removes the Redis and MessagePack protocol projects from the SignalR solution.
src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Utils.cs Stops registering MessagePack protocol in shared test service provider setup.
src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs Removes MessagePack-specific handshake/options/protocol-interop tests and related code.
src/SignalR/server/Redis/test/Startup.cs Deletes Redis test startup that configured Redis + MessagePack.
src/SignalR/server/Redis/test/SkipIfDockerNotPresentAttribute.cs Deletes Redis test infrastructure for Docker-based execution.
src/SignalR/server/Redis/test/RedisServerFixture.cs Deletes Redis test fixture that bootstrapped Docker + multiple servers.
src/SignalR/server/Redis/test/RedisProtocolTests.cs Deletes Redis protocol encoding/decoding tests.
src/SignalR/server/Redis/test/RedisHubLifetimeManagerTests.cs Deletes Redis HubLifetimeManager behavioral tests.
src/SignalR/server/Redis/test/RedisEndToEnd.cs Deletes Redis end-to-end tests using multiple servers and protocol matrix.
src/SignalR/server/Redis/test/RedisDependencyInjectionExtensionsTests.cs Deletes DI extension tests for AddRedis(...).
src/SignalR/server/Redis/test/Microsoft.AspNetCore.SignalR.Redis.Tests.csproj Deletes Redis test project.
src/SignalR/server/Redis/test/EchoHub.cs Deletes Redis test hub.
src/SignalR/server/Redis/test/Docker.cs Deletes Redis test Docker helper.
src/SignalR/server/Redis/src/RedisOptions.cs Deletes Redis options type.
src/SignalR/server/Redis/src/RedisHubLifetimeManager.cs Deletes Redis scale-out HubLifetimeManager implementation.
src/SignalR/server/Redis/src/RedisDependencyInjectionExtensions.cs Deletes AddRedis(...) DI extensions for SignalR server builder.
src/SignalR/server/Redis/src/Microsoft.AspNetCore.SignalR.Redis.csproj Deletes Redis package project.
src/SignalR/server/Redis/src/Internal/RedisSubscriptionManager.cs Deletes internal Redis subscription manager.
src/SignalR/server/Redis/src/Internal/RedisProtocol.cs Deletes internal Redis message protocol implementation (MessagePack-based).
src/SignalR/server/Redis/src/Internal/RedisLog.cs Deletes Redis logging helpers.
src/SignalR/server/Redis/src/Internal/RedisInvocation.cs Deletes Redis invocation payload type.
src/SignalR/server/Redis/src/Internal/RedisGroupCommand.cs Deletes Redis group command payload type.
src/SignalR/server/Redis/src/Internal/RedisChannels.cs Deletes Redis channel naming helpers.
src/SignalR/server/Redis/src/Internal/MessagePackUtil.cs Deletes MessagePack utility helpers used by Redis protocol.
src/SignalR/server/Redis/src/Internal/GroupAction.cs Deletes group action enum used by Redis protocol.
src/SignalR/server/Redis/src/Internal/AckHandler.cs Deletes Redis ack handling used for group ops coordination.
src/SignalR/common/testassets/Tests.Utils/TestConnectionMultiplexer.cs Deletes Redis test double for StackExchange.Redis (IConnectionMultiplexer/ISubscriber).
src/SignalR/common/testassets/Tests.Utils/Microsoft.AspNetCore.SignalR.Tests.Utils.csproj Removes MessagePack + Redis strong-name references from shared SignalR test utilities project.
src/SignalR/common/testassets/Tests.Utils/HubProtocolHelpers.cs Reduces supported test hub protocols list to JSON-only.
src/SignalR/common/SignalR.Common/test/Internal/Protocol/MessagePackHubProtocolTests.cs Deletes MessagePack hub protocol tests.
src/SignalR/common/Protocols.MessagePack/src/Protocol/MessagePackHubProtocol.cs Deletes MessagePack hub protocol implementation.
src/SignalR/common/Protocols.MessagePack/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj Deletes MessagePack protocol package project.
src/SignalR/common/Protocols.MessagePack/src/MessagePackProtocolDependencyInjectionExtensions.cs Deletes server-side DI extensions for enabling MessagePack protocol.
src/SignalR/common/Protocols.MessagePack/src/MessagePackHubProtocolOptions.cs Deletes MessagePack protocol options type.
src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionBuilderTests.cs Removes client-side MessagePack builder test.
src/SignalR/clients/csharp/Client/test/UnitTests/HubConnectionBuilderExtensionsTests.cs Removes client-side MessagePack extension registration test.
src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs Stops enabling MessagePack protocol in functional test server.
src/SignalR/clients/csharp/Client/test/FunctionalTests/HubConnectionTests.cs Removes MessagePack from protocol/transport matrices and drops binary-protocol negotiation test.
eng/ProjectReferences.props Removes project reference providers for MessagePack protocol and Redis.
eng/Dependencies.props Removes tracking of the MessagePack dependency.
eng/Baseline.xml Removes baseline package entries for Redis and MessagePack protocol packages.
eng/Baseline.Designer.props Removes baseline dependency graphs for Redis and MessagePack protocol packages.
build/repo.targets Removes signing entry for MessagePack.dll.
build/external-dependencies.props Removes MessagePack from external dependency inventory.
build/dependencies.props Removes MessagePackPackageVersion definition.
build/artifacts.props Removes package artifacts for Redis and MessagePack protocol packages.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 14 to +18
private static readonly IHubProtocol JsonHubProtocol = new JsonHubProtocol();

private static readonly IHubProtocol MessagePackHubProtocol = new MessagePackHubProtocol();

public static readonly List<string> AllProtocolNames = new List<string>
{
JsonHubProtocol.Name,
MessagePackHubProtocol.Name
JsonHubProtocol.Name
@wtgodbe
wtgodbe merged commit e1b83f7 into dotnet:release/2.3 Jul 28, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants