Dominik Krichbaum
02/26/2025, 2:22 PMboden winkel
03/06/2025, 3:10 PMMatt (pactflow.io / pact-js / pact-go)
/v1/
or /v2
or you use content negotiation or something
2. Release the new provider under a new name
a. e.g. provider-v1
and provider-v2
Daniele Del Piano
03/14/2025, 4:47 PMMatt (pactflow.io / pact-js / pact-go)
Daniele Del Piano
03/15/2025, 7:34 AMMatt (pactflow.io / pact-js / pact-go)
Daniele Del Piano
03/15/2025, 9:04 AMGitHub
03/22/2025, 3:25 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/c72173242045c5d9d4459d10a2831256c0529164|c7217324>
- chore(ffi): Upgrade to FFI 0.4.27
pact-foundation/pact-netGitHub
03/22/2025, 3:29 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/8661b21112b6b9e56ba31315d027b5b69602b08c|8661b211>
- chore(deps): Upgrade to System.Text.Json 8.0.5
pact-foundation/pact-netGitHub
03/22/2025, 4:00 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/171c82c2da0f000d424fd94a1ccd4fe910955d0e|171c82c2>
- fix(ci): Reinstate triggering releases on pushed tags
pact-foundation/pact-netGitHub
03/22/2025, 4:04 PMGitHub
03/23/2025, 4:44 PMwhile true; do dotnet test MyApp.Integrationtest --blame-hang --blame-hang-timeout 10000 ; sleep 1; done
• once the test hangs, use dotnet-dump to analyze issue
Expected behavior
A clear and concise description of what you expected to happen.
• test should not hangs
Log Output
Applicable log output. Please ensure you remove any sensitive information.
00007F04EACEB710 00007f468de3488d [InlinedCallFrame: 00007f04eaceb710] PactNet.Interop.NativeInterop.CleanupMockServer(Int32)
00007F04EACEB710 00007f46199bc919 [InlinedCallFrame: 00007f04eaceb710] PactNet.Interop.NativeInterop.CleanupMockServer(Int32)
00007F04EACEB700 00007F46199BC919 ILStubClass.IL_STUB_PInvoke(Int32)
00007F04EACEB790 00007F46199BC88A PactNet.Drivers.MockServerDriver.ReleaseUnmanagedResources()
00007F04EACEB7B0 00007F46199BC848 PactNet.Drivers.MockServerDriver.Dispose()
00007F04EACEB7D0 00007F4613B9D36C PactNet.PactBuilder+<VerifyAsync>d__9.MoveNext()
00007F04EACEB7F0 00007F4613B9D2D5 PactNet.PactBuilder+<VerifyAsync>d__9.MoveNext()
00007F04EACEB850 00007F461997BF01 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[PactNet.PactBuilder+<VerifyAsync>d__9, PactNet]].ExecutionContextCallback(System.Object)
00007F04EACEB870 00007F4613878091 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
00007F04EACEB8C0 00007F461997BDB4 System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[PactNet.PactBuilder+<VerifyAsync>d__9, PactNet]].MoveNext(System.Threading.Thread)
00007F04EACEB910 00007F461997BCAA System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[System.Threading.Tasks.VoidTaskResult, System.Private.CoreLib],[PactNet.PactBuilder+<VerifyAsync>d__9, PactNet]].MoveNext()
00007F04EACEB930 00007F4613BA9B09 Xunit.Sdk.AsyncTestSyncContext+<>c__DisplayClass7_0.<Post>b__0() [/_/src/xunit.execution/Sdk/AsyncTestSyncContext.cs @ 58]
00007F04EACEB970 00007F4612014FF3 Xunit.Sdk.XunitWorkerThread+<>c.<QueueUserWorkItem>b__5_0(System.Object) [/_/src/common/XunitWorkerThread.cs @ 37]
00007F04EACEB9B0 00007F4613878091 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
00007F04EACEBA00 00007F460E817994 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
00007F04EACEBC50 00007f468da26413 [DebuggerU2MCatchHandlerFrame: 00007f04eacebc50]
Additional context
Add any other context about the problem here.
pact-foundation/pact-netGitHub
03/23/2025, 7:06 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/b3c2fe14a513a886dab165721b156526765690fa|b3c2fe14>
- chore: Delete some old unused tests
pact-foundation/pact-netGitHub
03/27/2025, 1:35 PMExecute
method of pact-net\src\PactNet\Verifier\InteropVerifierProvider.cs
by passing down the timeout
Timespan from pact-net\src\PactNet\Verifier\PactVerifierSource.cs
.
Wrapping the result in a try-catch, the explicit timeout exception can be caught and thrown back up.
## Further work
I have encountered further issues with no explanations in the errors dure to the limited feedback from the pact-core errors. It would be useful to log config/set up errors with the pact server and return status codes when running the mock server if requests fail or if the application stop unexpectedly.
## Alternatives
This could be done in pact-core and updated with additional errors for connection issues to the mock server
pact-foundation/pact-netIsaac Richardson
03/28/2025, 9:41 AMMayamiko K
03/28/2025, 11:24 AMGitHub
03/28/2025, 11:33 AMThe active test run was aborted. Reason: Test host process crashed
Test Run Aborted.
_VSTestConsole:
MSB4181: The "VSTestTask" task returned false but did not log an error.
1>Done Building Project "/app/tests/MyProject.Pacts/MyProject.Pacts.csproj" (VSTest target(s)) -- FAILED.
Build FAILED.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:03.52
Process exited with code 1
Test ignored: MyProject.ProviderTests.VerifyPacts, ignore reason: Interrupted by build execution timeout
Consumer tests work absolutely fine, it's only provider tests that crash.
Steps To Reproduce
Unsure currently - it was working fine before the upgrade
Additional context
The diff between 5.0.0 and 5.0.1 only really has an FFI upgrade in it, so I'm assuming the issue is there and that it's crashing the provider tests.
pact-foundation/pact-netErich Zimmerman
04/01/2025, 9:35 PMJordi March
04/09/2025, 12:52 PMGitHub
04/22/2025, 1:46 PMGitHub
04/24/2025, 7:28 AMMessagingProvider
and is configured to download from a pact broker:
using var verifier = new PactVerifier(config);
verifier.MessagingProvider("personal-details-api", CreateJsonSettings())
.WithProviderMessages(scenarios =>
{
scenarios.Add("An event is created", _event);
})
.WithPactBrokerSource(_pactBrokerUri)
.Verify();
}
I was hoping/assuming that this would only download the messaging pact from pact broker but it is also downloading the request/response pact too so fails as it only expects messages.
The "provider" name in Pact Broker is the same (which makes sense to me as the provider is the same), but do I have to have unique provider names?
pact-foundation/pact-netGitHub
05/06/2025, 5:08 PMhttpVerifier.WithHttpEndpoint(providerUri)
Then I'm calling Verify()
method
Log Output
I'm getting 401
Could you guys help me to understand what I'm missing ?
pact-foundation/pact-netGitHub
05/27/2025, 5:21 PMDimitris Dranidis
06/05/2025, 3:29 PM.WithMessages(scenarios => {
scenarios.Add(
"scenario description",
builder => SetupDescriptionA(builder));
}, _serializerOptions) ...
and the state handler "prepare data" in the middleware. I would expect the state handler to execute FIRST to prepare the data for the content of the message, and THEN the description handler to execute SECOND so that it uses a messageProducer function to generate the message based on the prepared data, But it is the opposite!
This forces us to abandon providerStates and only use descriptions for both setting the environment and producing the message.
In case, I misunderstand something please let me know.
Thank you in advance!GitHub
06/06/2025, 3:36 PM<https://github.com/dranidis/pact-dotnet-message-provider>
Expected behavior
We have a provider test of an AMQP interaction in Pact. The interaction has a "description" and "providerStates". We added in the test:
.WithMessages(scenarios => {
scenarios.Add(
"scenario description",
builder => SetupDescriptionA(builder));
}, _serializerOptions) ...
and the state handler "prepare data" in the middleware.
I would expect the state handler to execute FIRST to prepare the data for the content of the message, and THEN the description handler to execute SECOND so that it uses a messageProducer function to generate the message based on the prepared data, But it is the opposite!
This forces us to abandon providerStates and only use descriptions for both setting the environment and producing the message.
In case, I misunderstand something please let me know.
pact-foundation/pact-netGitHub
06/13/2025, 5:10 PMGitHub
06/14/2025, 1:33 PMGitHub
06/14/2025, 1:34 PM@dependabot rebase
.
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
• @dependabot rebase
will rebase this PR
• @dependabot recreate
will recreate this PR, overwriting any edits that have been made to it
• @dependabot merge
will merge this PR after your CI passes on it
• @dependabot squash and merge
will squash and merge this PR after your CI passes on it
• @dependabot cancel merge
will cancel a previously requested merge and block automerging
• @dependabot reopen
will reopen this PR if it is closed
• @dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
• @dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency
• @dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
• @dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
• @dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the Security Alerts page.
pact-foundation/pact-netRyan Child
06/18/2025, 3:00 PM