Compare commits

..

2 Commits

Author SHA1 Message Date
Stef Heyenrath 428657a97e 2.9.0 2026-06-02 22:43:03 +02:00
Stef Heyenrath fe9745235a Fix WireMock.Net.Aspire project when using Aspire 13.4.0 (#1470) 2026-06-02 22:39:32 +02:00
13 changed files with 56 additions and 65 deletions
+13
View File
@@ -1,3 +1,16 @@
# 2.9.0 (02 June 2026)
- [#1470](https://github.com/wiremock/WireMock.Net/pull/1470) - Fix WireMock.Net.Aspire project when using Aspire 13.4.0 [bug] contributed by [StefH](https://github.com/StefH)
- [#1469](https://github.com/wiremock/WireMock.Net/issues/1469) - WireMock.Net doesn't play well with Aspire 13.4.0 [bug]
# 2.8.0 (31 May 2026)
- [#1447](https://github.com/wiremock/WireMock.Net/pull/1447) - Add SystemTextJsonMatchers [feature] contributed by [StefH](https://github.com/StefH)
- [#1466](https://github.com/wiremock/WireMock.Net/pull/1466) - Bump System.Text.RegularExpressions from 4.3.0 to 4.3.1 in Aspire Example project [dependencies, .NET] contributed by [dependabot[bot]](https://github.com/apps/dependabot)
- [#1467](https://github.com/wiremock/WireMock.Net/pull/1467) - Bump System.Net.Http from 4.3.0 to 4.3.4 in Aspire Example project [dependencies, .NET] contributed by [dependabot[bot]](https://github.com/apps/dependabot)
- [#1468](https://github.com/wiremock/WireMock.Net/pull/1468) - Update JsonMatcher to support IgnoreArrayOrder [feature] contributed by [StefH](https://github.com/StefH)
- [#1439](https://github.com/wiremock/WireMock.Net/issues/1439) - JSON reference properties cannot be used when using System.Text.Json serialization [bug]
- [#1445](https://github.com/wiremock/WireMock.Net/issues/1445) - Configurable JSON DE-serialization support (Newtonsoft.Json vs System.Text.Json) [feature]
- [#1460](https://github.com/wiremock/WireMock.Net/issues/1460) - Option to ignore array order when comparing json body [feature]
# 2.7.0 (24 May 2026) # 2.7.0 (24 May 2026)
- [#1457](https://github.com/wiremock/WireMock.Net/pull/1457) - Update OpenTelemetry.Api from 1.14.0 to 1.15.3 in unit test project [dependencies] contributed by [dependabot[bot]](https://github.com/apps/dependabot) - [#1457](https://github.com/wiremock/WireMock.Net/pull/1457) - Update OpenTelemetry.Api from 1.14.0 to 1.15.3 in unit test project [dependencies] contributed by [dependabot[bot]](https://github.com/apps/dependabot)
- [#1459](https://github.com/wiremock/WireMock.Net/pull/1459) - chore: update Handlebars 2.5.2 to 2.5.5 [dependencies] contributed by [kamisoft-fr](https://github.com/kamisoft-fr) - [#1459](https://github.com/wiremock/WireMock.Net/pull/1459) - chore: update Handlebars 2.5.2 to 2.5.5 [dependencies] contributed by [kamisoft-fr](https://github.com/kamisoft-fr)
+2 -2
View File
@@ -4,7 +4,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<VersionPrefix>2.8.0</VersionPrefix> <VersionPrefix>2.9.0</VersionPrefix>
<PackageIcon>WireMock.Net-Logo.png</PackageIcon> <PackageIcon>WireMock.Net-Logo.png</PackageIcon>
<PackageProjectUrl>https://github.com/wiremock/WireMock.Net</PackageProjectUrl> <PackageProjectUrl>https://github.com/wiremock/WireMock.Net</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression> <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
@@ -52,7 +52,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="JetBrains.Annotations" Version="2025.2.4" PrivateAssets="All" /> <PackageReference Include="JetBrains.Annotations" Version="2025.2.4" PrivateAssets="All" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="10.0.103" PrivateAssets="All" /> <PackageReference Include="Microsoft.SourceLink.GitHub" Version="10.0.300" PrivateAssets="All" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' "> <ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
+1 -1
View File
@@ -1,6 +1,6 @@
rem https://github.com/StefH/GitHubReleaseNotes rem https://github.com/StefH/GitHubReleaseNotes
SET version=2.8.0 SET version=2.9.0
GitHubReleaseNotes --output CHANGELOG.md --skip-empty-releases --exclude-labels wontfix test question invalid doc duplicate example environment --version %version% --token %GH_TOKEN% GitHubReleaseNotes --output CHANGELOG.md --skip-empty-releases --exclude-labels wontfix test question invalid doc duplicate example environment --version %version% --token %GH_TOKEN%
+3 -6
View File
@@ -1,8 +1,5 @@
# 2.7.0 (24 May 2026) # 2.9.0 (02 June 2026)
- #1457 Update OpenTelemetry.Api from 1.14.0 to 1.15.3 in unit test project [dependencies] - #1470 Fix WireMock.Net.Aspire project when using Aspire 13.4.0 [bug]
- #1459 chore: update Handlebars 2.5.2 to 2.5.5 [dependencies] - #1469 WireMock.Net doesn't play well with Aspire 13.4.0 [bug]
- #1461 Update Testcontainers nuget package to 4.12.0 [dependencies]
- #1462 Update Scriban.Signed to latest [dependencies]
- #1458 update Handlebars Humanizer package version [feature]
The full release notes can be found here: https://github.com/wiremock/WireMock.Net/blob/master/CHANGELOG.md The full release notes can be found here: https://github.com/wiremock/WireMock.Net/blob/master/CHANGELOG.md
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="13.1.0" /> <Sdk Name="Aspire.AppHost.Sdk" Version="13.4.0" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
@@ -18,7 +18,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.1.0" /> <PackageReference Include="Aspire.Hosting.AppHost" Version="13.4.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="13.1.0" /> <Sdk Name="Aspire.AppHost.Sdk" Version="13.4.0" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
@@ -15,7 +15,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.1.0" /> <PackageReference Include="Aspire.Hosting.AppHost" Version="13.4.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>
@@ -45,7 +45,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aspire.Hosting" Version="13.1.0" /> <PackageReference Include="Aspire.Hosting" Version="13.4.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -21,11 +21,6 @@ public class WireMockHealthCheck(WireMockServerResource resource) : IHealthCheck
return HealthCheckResult.Unhealthy("WireMock.Net is not healthy"); return HealthCheckResult.Unhealthy("WireMock.Net is not healthy");
} }
if (resource.ApiMappingState == WireMockMappingState.NotSubmitted)
{
return HealthCheckResult.Unhealthy("WireMock.Net has not received mappings");
}
return HealthCheckResult.Healthy(); return HealthCheckResult.Healthy();
} }
@@ -21,7 +21,13 @@ internal class WireMockLifecycleSubscriber(ILoggerFactory loggerFactory) : IDist
var endpoint = wireMockServerResource.GetEndpoint(); var endpoint = wireMockServerResource.GetEndpoint();
Debug.Assert(endpoint.IsAllocated); Debug.Assert(endpoint.IsAllocated);
}
});
eventing.Subscribe<ResourceReadyEvent>(async (@event, ct) =>
{
if (@event.Resource is WireMockServerResource wireMockServerResource)
{
await wireMockServerResource.WaitForHealthAsync(ct); await wireMockServerResource.WaitForHealthAsync(ct);
await wireMockServerResource.CallAddProtoDefinitionsAsync(ct); await wireMockServerResource.CallAddProtoDefinitionsAsync(ct);
@@ -65,6 +65,7 @@ public static class WireMockAdminApiExtensions
waitTime = (int)(InitialWaitingTimeInMilliSeconds * Math.Pow(2, retries)); waitTime = (int)(InitialWaitingTimeInMilliSeconds * Math.Pow(2, retries));
await Task.Delay(waitTime, cancellationToken); await Task.Delay(waitTime, cancellationToken);
isHealthy = await IsHealthyAsync(adminApi, cancellationToken); isHealthy = await IsHealthyAsync(adminApi, cancellationToken);
retries++; retries++;
totalWaitTime += waitTime; totalWaitTime += waitTime;
} }
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="Aspire.AppHost.Sdk" Version="13.1.0" /> <Sdk Name="Aspire.AppHost.Sdk" Version="13.4.0" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
@@ -19,7 +19,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aspire.Hosting.AppHost" Version="13.1.1" /> <PackageReference Include="Aspire.Hosting.AppHost" Version="13.4.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -14,7 +14,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aspire.Hosting.Testing" Version="13.1.1" /> <PackageReference Include="Aspire.Hosting.Testing" Version="13.4.0" />
<PackageReference Include="Codecov" Version="1.13.0" /> <PackageReference Include="Codecov" Version="1.13.0" />
<PackageReference Include="coverlet.msbuild" Version="6.0.4"> <PackageReference Include="coverlet.msbuild" Version="6.0.4">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
@@ -25,7 +25,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="AwesomeAssertions" Version="9.4.0" /> <PackageReference Include="AwesomeAssertions" Version="9.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
<PackageReference Include="Moq" Version="4.20.72" /> <PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="xunit.v3" Version="3.2.2" /> <PackageReference Include="xunit.v3" Version="3.2.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5"> <PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
@@ -92,17 +92,11 @@ public class WireMockServerBuilderExtensionsTests
Tag = "latest" Tag = "latest"
}); });
var endpointAnnotation = wiremock.Resource.Annotations.OfType<EndpointAnnotation>().FirstOrDefault(); var endpointAnnotation = wiremock.Resource.Annotations.OfType<EndpointAnnotation>().First();
endpointAnnotation.Should().BeEquivalentTo(new EndpointAnnotation( endpointAnnotation.Protocol.Should().Be(ProtocolType.Tcp);
protocol: ProtocolType.Tcp, endpointAnnotation.UriScheme.Should().Be("http");
uriScheme: "http", endpointAnnotation.Port.Should().Be(port);
transport: null, endpointAnnotation.TargetPort.Should().Be(80);
name: null,
port: port,
targetPort: 80,
isExternal: null,
isProxied: true
));
wiremock.Resource.Annotations.OfType<EnvironmentCallbackAnnotation>().FirstOrDefault().Should().NotBeNull(); wiremock.Resource.Annotations.OfType<EnvironmentCallbackAnnotation>().FirstOrDefault().Should().NotBeNull();
wiremock.Resource.Annotations.OfType<CommandLineArgsCallbackAnnotation>().FirstOrDefault().Should().NotBeNull(); wiremock.Resource.Annotations.OfType<CommandLineArgsCallbackAnnotation>().FirstOrDefault().Should().NotBeNull();
@@ -153,39 +147,24 @@ public class WireMockServerBuilderExtensionsTests
endpointAnnotations.Should().HaveCount(3); endpointAnnotations.Should().HaveCount(3);
var endpointAnnotationForHttp80 = endpointAnnotations[0]; var endpointAnnotationForHttp80 = endpointAnnotations[0];
endpointAnnotationForHttp80.Should().BeEquivalentTo(new EndpointAnnotation( endpointAnnotationForHttp80.Protocol.Should().Be(ProtocolType.Tcp);
protocol: ProtocolType.Tcp, endpointAnnotationForHttp80.UriScheme.Should().Be("http");
uriScheme: "http", endpointAnnotationForHttp80.Port.Should().BeNull();
transport: null, endpointAnnotationForHttp80.TargetPort.Should().Be(80);
name: null,
port: null,
targetPort: 80,
isExternal: null,
isProxied: true
));
var endpointAnnotationForHttpFreePort = endpointAnnotations[1]; var endpointAnnotationForHttpFreePort = endpointAnnotations[1];
endpointAnnotationForHttpFreePort.Should().BeEquivalentTo(new EndpointAnnotation( endpointAnnotationForHttpFreePort.Protocol.Should().Be(ProtocolType.Tcp);
protocol: ProtocolType.Tcp, endpointAnnotationForHttpFreePort.UriScheme.Should().Be("http");
uriScheme: "http", endpointAnnotationForHttpFreePort.Name.Should().Be($"http-{freePorts[0]}");
transport: null, endpointAnnotationForHttpFreePort.Port.Should().Be(freePorts[0]);
name: $"http-{freePorts[0]}", endpointAnnotationForHttpFreePort.TargetPort.Should().Be(freePorts[0]);
port: freePorts[0],
targetPort: freePorts[0],
isExternal: null,
isProxied: true
));
var endpointAnnotationForGrpcFreePort = endpointAnnotations[2]; var endpointAnnotationForGrpcFreePort = endpointAnnotations[2];
endpointAnnotationForGrpcFreePort.Should().BeEquivalentTo(new EndpointAnnotation( endpointAnnotationForGrpcFreePort.Protocol.Should().Be(ProtocolType.Tcp);
protocol: ProtocolType.Tcp, endpointAnnotationForGrpcFreePort.UriScheme.Should().Be("grpc");
uriScheme: "grpc", endpointAnnotationForGrpcFreePort.Name.Should().Be($"grpc-{freePorts[1]}");
transport: null, endpointAnnotationForGrpcFreePort.Port.Should().Be(freePorts[1]);
name: $"grpc-{freePorts[1]}", endpointAnnotationForGrpcFreePort.TargetPort.Should().Be(freePorts[1]);
port: freePorts[1],
targetPort: freePorts[1],
isExternal: null,
isProxied: true
));
wiremock.Resource.Annotations.OfType<EnvironmentCallbackAnnotation>().FirstOrDefault().Should().NotBeNull(); wiremock.Resource.Annotations.OfType<EnvironmentCallbackAnnotation>().FirstOrDefault().Should().NotBeNull();
wiremock.Resource.Annotations.OfType<CommandLineArgsCallbackAnnotation>().FirstOrDefault().Should().NotBeNull(); wiremock.Resource.Annotations.OfType<CommandLineArgsCallbackAnnotation>().FirstOrDefault().Should().NotBeNull();