GitHub
02/15/2024, 5:36 PMGitHub
02/15/2024, 5:47 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/6950544e3404c164387d3194f257ac56ec36d0b8|6950544e>
- chore(ci): Upgrade to latest action versions
pact-foundation/pact-netGitHub
02/15/2024, 5:49 PMGitHub
02/15/2024, 8:29 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/b45f0ea5d05b545c86da299a7093595256bca7f9|b45f0ea5>
- fix: Robustly start messaging provider on MacOS
pact-foundation/pact-netGitHub
02/15/2024, 8:35 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/8886dec7f6ce427865b2bec248e7950aec92e2e1|8886dec7>
- fix(ci): Ensure .Net 8 is installed
pact-foundation/pact-netGitHub
02/15/2024, 8:42 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/78ec54cf9ac7222044e82cf6014608ab87eb5b33|78ec54cf>
- fix: Even more robust messaging provider initialisation on MacOS
pact-foundation/pact-netGitHub
02/15/2024, 8:49 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/38f850f900649ef91ba45a15ae91e7a2cd4b83cc|38f850f9>
- chore(ci): Use v4 GitHub Action for artifacts
pact-foundation/pact-netGitHub
02/15/2024, 9:02 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/4c207ca9fac3759c08d9a1c353fe6f8979e57fad|4c207ca9>
- chore(ci): Cache FFI artifacts
pact-foundation/pact-netGitHub
02/15/2024, 9:07 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/56bfd13ee96de087f2c29f6e4867690586fd00b7|56bfd13e>
- chore(ci): Use cache action v4
pact-foundation/pact-netGitHub
02/15/2024, 9:10 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/3e1c86d294bb2946043ae72a5709533ee532273e|3e1c86d2>
- chore: Ensure correct line endings for Bash and Solution files
pact-foundation/pact-netGitHub
02/16/2024, 11:38 AMGitHub
02/16/2024, 7:50 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/cd8631e5002c2e489dda9f4d76bef1c00ac98a58|cd8631e5>
- docs: Updated release notes
pact-foundation/pact-netGitHub
02/18/2024, 3:58 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/f5c0be35d18535e5b7e9bf42bc375fa807a4ce2b|f5c0be35>
- docs: Added contribution guide
pact-foundation/pact-netGitHub
02/18/2024, 3:58 PMGitHub
02/18/2024, 4:11 PM<https://github.com/pact-foundation/pact-net/tree/master|master>
by adamrodger
<https://github.com/pact-foundation/pact-net/commit/09ee8189a3dba1c47a02e571e8872924b90caaa8|09ee8189>
- chore: Add issue templates
pact-foundation/pact-netGitHub
02/18/2024, 4:18 PMGitHub
02/18/2024, 5:21 PMPactNet.Extensions.*
namespace format.
• Plugins rely on FFI calls, which means that they need to load the FFI library and it has to be the same instance and version that the rest of the process has loaded so that it writes to the same Pact file in the same way etc.
• It was originally envisaged that plugins could add extensions methods to add appropriate functionality (e.g. a WithProtobufContent
to mirror the existing WithJsonContent
calls) but the FFI aspect probably makes this pretty awkward
• One solution may be to refactor the FFI interop parts out of PactNet
and into a dedicated PactNet.Interop
(or similar name) so that any plugin projects could depend on this and on PactNet.Abstractions
to add functionality in a non-breaking way. This refactor would be a breaking change upfront though so this idea would need to be properly thought out.
• Plugins are installed to the OS, which creates friction in PactNet itself because you would install e.g. PactNet.Extensions.Protobuf
but that doesn't actually install the plugin, just the API support in PactNet. This can be confusing for users.
Breaking Changes
Depending on the implementation details above (TBD at the time of writing) this may involve breaking changes.
Potential Downsides/Caveats
Describe alternatives you've considered
Additional context
• https://github.com/pactflow/pact-protobuf-plugin
• https://docs.rs/pact_ffi/latest/pact_ffi/plugins/index.html
• #489 (comment)
pact-foundation/pact-netGitHub
02/23/2024, 4:23 AMDEBUG
and attach any relevant log files here (or link from a gist).
pact-foundation/pact-netGitHub
02/23/2024, 5:09 PMbyte[]
and marshal those.
Some places don't need to allow non-ASCII, such as the scheme in URLs, whereas others are very tricky, such as consumer filters. This would change the API to byte[][]
and those can't be marshalled, so some parts still support non-ASCII for now. If that's a problem in the future then some custom marshalling could be implemented, but currently that seems overkill.
Closes #468
pact-foundation/pact-net
GitHub Actions: release
GitHub Actions: release
GitHub Actions: Build and Test (dotnet) (macos-latest)
GitHub Actions: Build and Test (dotnet) (ubuntu-latest)
GitHub Actions: Build and Test (dotnet) (windows-latest)
GitHub Actions: Build and Test (dotnet) (macos-latest)
GitHub Actions: Build and Test (dotnet) (ubuntu-latest)
GitHub Actions: Build and Test (dotnet) (windows-latest)
✅ 1 other check has passed
1/9 successful checksGitHub
02/26/2024, 6:37 AM_mockProviderService.UponReceiving("a request to create a new event")
.With(new ProviderServiceRequest{
Method = <http://HttpVerb.Post|HttpVerb.Post>, Path = "/events",
Headers =
new Dictionary<string, object>{
{"Content-Type", "application/json; charset=utf-8"}},
Body =
new {eventId, eventType = "DetailsView",
timestamp = new TimeObject{date = "2024-02-25 21:38:57.290"}}})
.WillRespondWith(new ProviderServiceResponse{Status = 201});
pact-foundation/pact-netAbdullah Guel
03/07/2024, 12:56 PMNatalya Mikula
03/13/2024, 1:31 PMPere Villega
03/26/2024, 12:15 PMGitHub
03/26/2024, 7:20 PM{
"startDate": "2024-04-01"
}
The provider is expecting and only accepting a date in the future. Is there a way to make sure the date in the contract is always in the future? Of course I can work with a date that's far in the future but still that's not as robust as I would hope.
Hope you can help & thank you!
pact-foundation/pact-netPrimož Črnigoj
04/01/2024, 5:23 PMNo pacts found for provider 'TONE' matching the given consumer version selectors in pact broker '<https://xxx/pact>': IO Error - Request to pact broker path '/' failed: 503 Service Unavailable. URL: '<https://xxx/pact>'
In pact-broker, I can see the pact though :Primož Črnigoj
04/01/2024, 5:23 PM.WithPactBrokerSource(new Uri("<https://xxx/pact>"), options =>
{
options
.PublishResults("1.0.1-beta12", results =>
{
results
.ProviderBranch("main");
})
.ConsumerVersionSelectors([new ConsumerVersionSelector()
{
Branch = "main"
}]);
})
.Verify();
Primož Črnigoj
04/02/2024, 2:31 PMpact-net
examples for kafka avro
schemas?Evan Rademacher
04/05/2024, 4:22 PMGitHub
04/22/2024, 7:41 PMlibpact_ffi-linux-aarch64-musl.so
and libpact_ffi-linux-x86_64-musl.so
shared libraries are part of releases.
Describe the solution you'd like
Update pact-net to use latest Pact FFI Library 0.4.19 which has the libpact_ffi
shared libraries and extend the NuGet package with additional runtime targets.
Breaking Changes
No
Potential Downsides/Caveats
n/a
Describe alternatives you've considered
n/a
Additional context
After replacing the runtimes/linux-x64/native/libpact_ffi.so
file added by PactNet 5.0.0-beta.2 package with libpact_ffi-linux-x86_64-musl.so I was able to successfully run pact-net tests inside Docker using <http://mcr.microsoft.com/dotnet/sdk:6.0.421-alpine3.19-amd64|mcr.microsoft.com/dotnet/sdk:6.0.421-alpine3.19-amd64>
pact-foundation/pact-netGitHub
04/22/2024, 10:52 PM