diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0943c8cc..f48c4af0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -74,6 +74,8 @@ Please ADD ALL Changes to the UNRELEASED SECTION and not a specific release
- Dependencies - Updated Microsoft.NET.Test.Sdk to 18.10.0
- Dependencies - Updated AWSSDK to 4.0.102.6
- Dependencies - Updated Meziantou.Analyzer to 3.0.235
+- Upgrade all projects to net11.0
+- Update Docker base image to net11.0 preview runtime-deps (fixes CVE-2026-45447)
### Deprecated
### Removed
- Removed NuGet audit suppressions for Scriban 6.2.0 vulnerabilities now that the transitive dependency has been dropped
diff --git a/Dockerfile b/Dockerfile
index 36dc75a0..e13dc4bd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
# chiseled-extra is needed over chiseled for Discord
#FROM mcr.microsoft.com/dotnet/runtime-deps:9.0-noble-chiseled-extra
-FROM mcr.microsoft.com/dotnet/runtime-deps:10.0-preview-noble-chiseled-extra
+FROM mcr.microsoft.com/dotnet/runtime-deps:11.0-preview-resolute-chiseled-extra
WORKDIR /usr/src/app
diff --git a/src/BuildBot.CloudFormation.Tests/BuildBot.CloudFormation.Tests.csproj b/src/BuildBot.CloudFormation.Tests/BuildBot.CloudFormation.Tests.csproj
index 96a02c01..2ecded74 100644
--- a/src/BuildBot.CloudFormation.Tests/BuildBot.CloudFormation.Tests.csproj
+++ b/src/BuildBot.CloudFormation.Tests/BuildBot.CloudFormation.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationMessageReceivedNotificationHandlerTests.cs b/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationMessageReceivedNotificationHandlerTests.cs
index bdbc72eb..bbc63b15 100644
--- a/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationMessageReceivedNotificationHandlerTests.cs
+++ b/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationMessageReceivedNotificationHandlerTests.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using System.Threading;
using System.Threading.Tasks;
using BuildBot.CloudFormation;
@@ -18,7 +19,7 @@ namespace BuildBot.CloudFormation.Tests.Publishers;
public sealed class CloudFormationMessageReceivedNotificationHandlerTests : TestBase
{
- private const string ValidArn = "arn:aws:sns:eu-west-1:123:test";
+ private const string VALID_ARN = "arn:aws:sns:eu-west-1:123:test";
private (
SnsNotificationOptions options,
@@ -29,7 +30,7 @@ CloudFormationMessageReceivedNotificationHandler handler
) CreateHandler()
{
SnsNotificationOptions options = new(
- TopicArn: ValidArn,
+ TopicArn: VALID_ARN,
Region: "eu-west-1",
AccessKey: "AKIAIOSFODNN7EXAMPLE",
SecretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
@@ -52,6 +53,11 @@ CloudFormationMessageReceivedNotificationHandler handler
return (options, extractor, aws, mediator, handler);
}
+ [SuppressMessage(
+ category: "Microsoft.IDE",
+ checkId: "IDE0028",
+ Justification = "Roslyn's IDE0028 codefix for Dictionary construction with an explicit IEqualityComparer drops the comparer, which then violates MA0002; see https://github.com/dotnet/roslyn/issues/75894"
+ )]
private static CloudFormationMessageReceived MakeNotification(string topicArn)
{
return new CloudFormationMessageReceived(
@@ -99,7 +105,7 @@ CloudFormationMessageReceivedNotificationHandler handler
extractor.ExtractDeploymentProperties(Arg.Any()).Returns((Deployment?)null);
- CloudFormationMessageReceived notification = MakeNotification(ValidArn);
+ CloudFormationMessageReceived notification = MakeNotification(VALID_ARN);
await handler.Handle(notification: notification, cancellationToken: this.CancellationToken());
@@ -121,7 +127,7 @@ CloudFormationMessageReceivedNotificationHandler handler
extractor.ExtractDeploymentProperties(Arg.Any()).Returns(deployment);
aws.GetStackDetailsAsync(Arg.Any(), Arg.Any()).Returns((StackDetails?)null);
- CloudFormationMessageReceived notification = MakeNotification(ValidArn);
+ CloudFormationMessageReceived notification = MakeNotification(VALID_ARN);
await handler.Handle(notification: notification, cancellationToken: this.CancellationToken());
@@ -144,7 +150,7 @@ CloudFormationMessageReceivedNotificationHandler handler
aws.GetStackDetailsAsync(Arg.Any(), Arg.Any())
.Returns(new StackDetails(Description: "A deployment", Version: "1.0.0"));
- CloudFormationMessageReceived notification = MakeNotification(ValidArn);
+ CloudFormationMessageReceived notification = MakeNotification(VALID_ARN);
await handler.Handle(notification: notification, cancellationToken: this.CancellationToken());
@@ -173,7 +179,7 @@ CloudFormationMessageReceivedNotificationHandler handler
extractor.ExtractDeploymentProperties(Arg.Any()).Returns(deployment);
aws.GetStackDetailsAsync(Arg.Any(), Arg.Any()).Returns((StackDetails?)null);
- CloudFormationMessageReceived notification = MakeNotification(ValidArn);
+ CloudFormationMessageReceived notification = MakeNotification(VALID_ARN);
await handler.Handle(notification: notification, cancellationToken: this.CancellationToken());
@@ -203,7 +209,7 @@ CloudFormationMessageReceivedNotificationHandler handler
aws.GetStackDetailsAsync(Arg.Any(), Arg.Any())
.Returns(new StackDetails(Description: "A deployment", Version: "2.0.0"));
- CloudFormationMessageReceived notification = MakeNotification(ValidArn);
+ CloudFormationMessageReceived notification = MakeNotification(VALID_ARN);
await handler.Handle(notification: notification, cancellationToken: this.CancellationToken());
diff --git a/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationSubscriptionConfirmationNotificationHandlerTests.cs b/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationSubscriptionConfirmationNotificationHandlerTests.cs
index 2b4a7d2c..6c700ed1 100644
--- a/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationSubscriptionConfirmationNotificationHandlerTests.cs
+++ b/src/BuildBot.CloudFormation.Tests/Publishers/CloudFormationSubscriptionConfirmationNotificationHandlerTests.cs
@@ -16,7 +16,7 @@ namespace BuildBot.CloudFormation.Tests.Publishers;
public sealed class CloudFormationSubscriptionConfirmationNotificationHandlerTests : TestBase
{
- private const string ValidArn = "arn:aws:sns:eu-west-1:123:test";
+ private const string VALID_ARN = "arn:aws:sns:eu-west-1:123:test";
private (
SnsNotificationOptions options,
@@ -26,7 +26,7 @@ CloudFormationSubscriptionConfirmationNotificationHandler handler
) CreateHandler()
{
SnsNotificationOptions options = new(
- TopicArn: ValidArn,
+ TopicArn: VALID_ARN,
Region: "eu-west-1",
AccessKey: "AKIAIOSFODNN7EXAMPLE",
SecretKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
@@ -99,7 +99,7 @@ CloudFormationSubscriptionConfirmationNotificationHandler handler
.Returns(httpClient);
CloudFormationSubscriptionConfirmation notification = new(
- TopicArn: ValidArn,
+ TopicArn: VALID_ARN,
SubscribeUrl: new Uri("https://test.example.com/subscribe")
);
@@ -137,7 +137,7 @@ CloudFormationSubscriptionConfirmationNotificationHandler handler
.Returns(httpClient);
CloudFormationSubscriptionConfirmation notification = new(
- TopicArn: ValidArn,
+ TopicArn: VALID_ARN,
SubscribeUrl: new Uri("https://test.example.com/subscribe")
);
diff --git a/src/BuildBot.CloudFormation/BuildBot.CloudFormation.csproj b/src/BuildBot.CloudFormation/BuildBot.CloudFormation.csproj
index c33bf116..009b04d9 100644
--- a/src/BuildBot.CloudFormation/BuildBot.CloudFormation.csproj
+++ b/src/BuildBot.CloudFormation/BuildBot.CloudFormation.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,7 +38,7 @@
-
+
diff --git a/src/BuildBot.Discord.Tests/BuildBot.Discord.Tests.csproj b/src/BuildBot.Discord.Tests/BuildBot.Discord.Tests.csproj
index 90a3607b..8fdf7f0b 100644
--- a/src/BuildBot.Discord.Tests/BuildBot.Discord.Tests.csproj
+++ b/src/BuildBot.Discord.Tests/BuildBot.Discord.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.Discord/BuildBot.Discord.csproj b/src/BuildBot.Discord/BuildBot.Discord.csproj
index 7a1a7f67..3e2b8b2d 100644
--- a/src/BuildBot.Discord/BuildBot.Discord.csproj
+++ b/src/BuildBot.Discord/BuildBot.Discord.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,12 +38,11 @@
-
+
-
diff --git a/src/BuildBot.GitHub.Tests/BuildBot.GitHub.Tests.csproj b/src/BuildBot.GitHub.Tests/BuildBot.GitHub.Tests.csproj
index da174f8e..46b8105f 100644
--- a/src/BuildBot.GitHub.Tests/BuildBot.GitHub.Tests.csproj
+++ b/src/BuildBot.GitHub.Tests/BuildBot.GitHub.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.GitHub/BuildBot.GitHub.csproj b/src/BuildBot.GitHub/BuildBot.GitHub.csproj
index 1d4baed1..8e9bb2aa 100644
--- a/src/BuildBot.GitHub/BuildBot.GitHub.csproj
+++ b/src/BuildBot.GitHub/BuildBot.GitHub.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,7 +38,7 @@
-
+
diff --git a/src/BuildBot.Health.Tests/BuildBot.Health.Tests.csproj b/src/BuildBot.Health.Tests/BuildBot.Health.Tests.csproj
index 9afe2d1f..6297c8ba 100644
--- a/src/BuildBot.Health.Tests/BuildBot.Health.Tests.csproj
+++ b/src/BuildBot.Health.Tests/BuildBot.Health.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.Health/BuildBot.Health.csproj b/src/BuildBot.Health/BuildBot.Health.csproj
index e2220be7..4e21f4ec 100644
--- a/src/BuildBot.Health/BuildBot.Health.csproj
+++ b/src/BuildBot.Health/BuildBot.Health.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,7 +38,7 @@
-
+
diff --git a/src/BuildBot.Json.Tests/BuildBot.Json.Tests.csproj b/src/BuildBot.Json.Tests/BuildBot.Json.Tests.csproj
index 454d6886..2e9dee38 100644
--- a/src/BuildBot.Json.Tests/BuildBot.Json.Tests.csproj
+++ b/src/BuildBot.Json.Tests/BuildBot.Json.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.Json/BuildBot.Json.csproj b/src/BuildBot.Json/BuildBot.Json.csproj
index 092b29dc..cf4dc7bf 100644
--- a/src/BuildBot.Json/BuildBot.Json.csproj
+++ b/src/BuildBot.Json/BuildBot.Json.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,7 +38,7 @@
-
+
diff --git a/src/BuildBot.ServiceModel.Tests/BuildBot.ServiceModel.Tests.csproj b/src/BuildBot.ServiceModel.Tests/BuildBot.ServiceModel.Tests.csproj
index 8daa0980..184d4c0d 100644
--- a/src/BuildBot.ServiceModel.Tests/BuildBot.ServiceModel.Tests.csproj
+++ b/src/BuildBot.ServiceModel.Tests/BuildBot.ServiceModel.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.ServiceModel/BuildBot.ServiceModel.csproj b/src/BuildBot.ServiceModel/BuildBot.ServiceModel.csproj
index ee25b2ec..c24afee7 100644
--- a/src/BuildBot.ServiceModel/BuildBot.ServiceModel.csproj
+++ b/src/BuildBot.ServiceModel/BuildBot.ServiceModel.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
diff --git a/src/BuildBot.Tests/BuildBot.Tests.csproj b/src/BuildBot.Tests/BuildBot.Tests.csproj
index d8cae23b..ecc83767 100644
--- a/src/BuildBot.Tests/BuildBot.Tests.csproj
+++ b/src/BuildBot.Tests/BuildBot.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.Watchtower.Tests/BuildBot.Watchtower.Tests.csproj b/src/BuildBot.Watchtower.Tests/BuildBot.Watchtower.Tests.csproj
index 689c0d22..9224cd59 100644
--- a/src/BuildBot.Watchtower.Tests/BuildBot.Watchtower.Tests.csproj
+++ b/src/BuildBot.Watchtower.Tests/BuildBot.Watchtower.Tests.csproj
@@ -28,7 +28,7 @@
speed
Exe
false
- net10.0
+ net11.0
true
true
true
@@ -41,7 +41,7 @@
-
+
diff --git a/src/BuildBot.Watchtower/BuildBot.Watchtower.csproj b/src/BuildBot.Watchtower/BuildBot.Watchtower.csproj
index 1d4baed1..8e9bb2aa 100644
--- a/src/BuildBot.Watchtower/BuildBot.Watchtower.csproj
+++ b/src/BuildBot.Watchtower/BuildBot.Watchtower.csproj
@@ -28,7 +28,7 @@
speed
Library
false
- net10.0
+ net11.0
true
true
@@ -38,7 +38,7 @@
-
+
diff --git a/src/BuildBot/BuildBot.csproj b/src/BuildBot/BuildBot.csproj
index 9d4eedd6..90c3f71a 100644
--- a/src/BuildBot/BuildBot.csproj
+++ b/src/BuildBot/BuildBot.csproj
@@ -38,7 +38,7 @@
https://github.com/funfair-tech/BuildBot
false
win-x64;win-arm64;osx-x64;osx-arm64;linux-x64;linux-arm64
- net10.0
+ net11.0
true
true
true
@@ -65,7 +65,7 @@
-
+
@@ -74,11 +74,11 @@
-
-
-
-
-
+
+
+
+
+