From c4bce39de4b3846bedf914d653446d82e41a505e Mon Sep 17 00:00:00 2001 From: JT Date: Tue, 17 Feb 2026 13:59:57 +1100 Subject: [PATCH 1/5] chore: bump AWS SDK libraries to latest --- source/Calamari.Aws/Calamari.Aws.csproj | 12 ++++++------ .../Calamari.CloudAccounts.csproj | 6 +++--- source/Calamari.Shared/Calamari.Shared.csproj | 2 +- source/Calamari.Terraform/Calamari.Terraform.csproj | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/source/Calamari.Aws/Calamari.Aws.csproj b/source/Calamari.Aws/Calamari.Aws.csproj index e0e4ca6cb..61ffe69d6 100644 --- a/source/Calamari.Aws/Calamari.Aws.csproj +++ b/source/Calamari.Aws/Calamari.Aws.csproj @@ -22,12 +22,12 @@ true - - - - - - + + + + + + diff --git a/source/Calamari.CloudAccounts/Calamari.CloudAccounts.csproj b/source/Calamari.CloudAccounts/Calamari.CloudAccounts.csproj index 4bb6ecafd..07aba4070 100644 --- a/source/Calamari.CloudAccounts/Calamari.CloudAccounts.csproj +++ b/source/Calamari.CloudAccounts/Calamari.CloudAccounts.csproj @@ -18,9 +18,9 @@ - - - + + + diff --git a/source/Calamari.Shared/Calamari.Shared.csproj b/source/Calamari.Shared/Calamari.Shared.csproj index 8215c42ea..3b0d575d9 100644 --- a/source/Calamari.Shared/Calamari.Shared.csproj +++ b/source/Calamari.Shared/Calamari.Shared.csproj @@ -28,7 +28,7 @@ - + diff --git a/source/Calamari.Terraform/Calamari.Terraform.csproj b/source/Calamari.Terraform/Calamari.Terraform.csproj index 06577d566..cd7c05325 100644 --- a/source/Calamari.Terraform/Calamari.Terraform.csproj +++ b/source/Calamari.Terraform/Calamari.Terraform.csproj @@ -10,7 +10,7 @@ true - + From 403bc6077f34a70ccce50028831e1ce66c84eb05 Mon Sep 17 00:00:00 2001 From: JT Date: Tue, 17 Feb 2026 14:00:13 +1100 Subject: [PATCH 2/5] test: fix breaking change --- source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs b/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs index 5f3bbd420..364964fd5 100644 --- a/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs +++ b/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs @@ -290,7 +290,7 @@ await Validate(async client => //There's a serialization bug in Json.Net that ends up changing the time to local. //Fix this assertion once that's done. var expectedDate = DateTime.Parse(specialHeader.Value.TrimEnd('Z')).ToUniversalTime(); - response.Expires.Should().Be(expectedDate); + response.Expiration.Should().Be(expectedDate); } else if (specialHeader.Key == "x-amz-website-redirect-location") { From d8f2661eba8d2bb946f99051f57d73b0f0d48f22 Mon Sep 17 00:00:00 2001 From: JT Date: Tue, 17 Feb 2026 14:06:41 +1100 Subject: [PATCH 3/5] test: Fix outdated assert --- source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs b/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs index 364964fd5..50c25a3ff 100644 --- a/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs +++ b/source/Calamari.Tests/AWS/UploadAwsS3CommandFixture.cs @@ -268,10 +268,7 @@ public async Task UploadPackageWithMetadata() CannedAcl = "private", BucketKeyBehaviour = BucketKeyBehaviourType.Filename, Metadata = specialHeaders.Concat(userDefinedMetadata).ToList(), - Tags = new List>() - { - new KeyValuePair("Environment", "Test") - } + Tags = [new KeyValuePair("Environment", "Test")] } }; @@ -287,10 +284,7 @@ await Validate(async client => { if (specialHeader.Key == "Expires") { - //There's a serialization bug in Json.Net that ends up changing the time to local. - //Fix this assertion once that's done. - var expectedDate = DateTime.Parse(specialHeader.Value.TrimEnd('Z')).ToUniversalTime(); - response.Expiration.Should().Be(expectedDate); + response.ExpiresString.Should().Be(specialHeader.Value); } else if (specialHeader.Key == "x-amz-website-redirect-location") { From 7e3aba4dd048dd2bca2a77ea9291b3ed2d230e5c Mon Sep 17 00:00:00 2001 From: JT Date: Tue, 17 Feb 2026 15:13:46 +1100 Subject: [PATCH 4/5] test: match nullable value in SDK Update --- source/Calamari.Tests/AWS/AwsEnvironmentGenerationFixture.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Calamari.Tests/AWS/AwsEnvironmentGenerationFixture.cs b/source/Calamari.Tests/AWS/AwsEnvironmentGenerationFixture.cs index 06033676a..3dc62f3c1 100644 --- a/source/Calamari.Tests/AWS/AwsEnvironmentGenerationFixture.cs +++ b/source/Calamari.Tests/AWS/AwsEnvironmentGenerationFixture.cs @@ -22,8 +22,8 @@ public class AwsEnvironmentGenerationFixture { [Test] [TestCase("arn:aws:iam::0123456789AB:role/test-role", "My session name", "900", 900)] - [TestCase("arn:aws:iam::0123456789AB:role/test-role", "My session name", null, 0)] - [TestCase("arn:aws:iam::0123456789AB:role/test-role", "My session name", "", 0)] + [TestCase("arn:aws:iam::0123456789AB:role/test-role", "My session name", null, null)] + [TestCase("arn:aws:iam::0123456789AB:role/test-role", "My session name", "", null)] public void CreatesAssumeRoleRequestWithExpectedParams(string arn, string sessionName, string duration, int? expectedDuration) { IVariables variables = new CalamariVariables(); From d250319fcaf2dd44918123046149d070065f35f0 Mon Sep 17 00:00:00 2001 From: JT Date: Tue, 17 Feb 2026 17:14:17 +1100 Subject: [PATCH 5/5] test: handle outputs being nullable --- .../Conventions/CloudFormationOutputsAsVariablesConvention.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Calamari.Aws/Deployment/Conventions/CloudFormationOutputsAsVariablesConvention.cs b/source/Calamari.Aws/Deployment/Conventions/CloudFormationOutputsAsVariablesConvention.cs index 7d28ebaac..e0ccd3bf8 100644 --- a/source/Calamari.Aws/Deployment/Conventions/CloudFormationOutputsAsVariablesConvention.cs +++ b/source/Calamari.Aws/Deployment/Conventions/CloudFormationOutputsAsVariablesConvention.cs @@ -57,7 +57,7 @@ Task InstallAsync(RunningDeployment deployment) Guard.NotNull(query, "Query for stack may not be null"); List ConvertStackOutputs(Stack stack) => - stack.Outputs.Select(p => new VariableOutput(p.OutputKey, p.OutputValue)).ToList(); + stack.Outputs?.Select(p => new VariableOutput(p.OutputKey, p.OutputValue)).ToList() ?? new List(); return (await query()).Select(ConvertStackOutputs) .Map(result => (result: result.SomeOr(new List()), success: true)); @@ -89,4 +89,4 @@ async Task GetAndPipeOutputVariablesWithRetry(Func>> query, IV } } } -} \ No newline at end of file +}