Hi folks, I'm curious about the state of the <Pact...
# pact-swift
n
Hi folks, I'm curious about the state of the PactSwift repo. Judging from GitHub activity, it appears there's a v2 feature branch that was meant to include Pact v4 matchers that the maintainer did not get to a releasable state. Unfortunately, the v1 of PactSwift contains an incomplete set of Pact v3 matchers. I specifically need
arrayContains
in order to handle my team's polymorphic API design. I see a community member prototyped that matcher for PactSwift v1, and even temporarily opened a pull request so we can see their source. They then appeared to close the PR in favor of trying to rewrite against the PactSwift v2 feature branch, but I don't see that ever materialized as a new PR. Would it be possible to revive the original
arrayContains
pull request and get that released as a v1.3? Is there anyone with admin access to the repo to be able to merge that and cut a release?
m
Marko will likely be able to provide much more context as to why it didn’t get merged in the first place. Would you be open to submitting a PR to the 2.0.0 branch? That would be a good target for it anyway, given it supports Pact Spec V4 etc.?
n
Thanks for the response! The 2.0.0 branch is marked as stale in GitHub as it hasn't received any commits in over a year, and it's unclear what's left to get it into a state that could be released. In absence of a clear and active roadmap, contributing to the 2.0.0 branch does not seem like it would be fruitful. Given that: • PactSwift v1 is intended to support Pact specification V3arrayContaining is expressly included in a table in the Pact docs under the heading "V3 Matching rules" • We have the source from a member of the community who implemented it for PactSwift v1 It seems to me that reviving that PR and adding the matcher to PactSwift v1 would be both the most expedient solution and in keeping with the stated goals of PactSwift v1. I guess I should double check though, is arrayContaining in fact a V3 matcher? Or are the docs misleading and it's actually V4?
m
I guess I should double check though, is arrayContaining in fact a V3 matcher?
It’s technically listed on the V4 spec. However, the spec is somewhat agnostic to matchers. It defines an extensible model for how they should be expressed in the generated contract file
It’s been a little area of confusion for some time
In our official compatibility suite, it’s only listed as part of the V4 suite: https://github.com/pact-foundation/pact-compatibility-suite/blob/1acfa1ecbd9d63e4465c687b3cdd7e0d3ac5811c/features/V4/matching_rules.feature#L138 But I believe it can go into V3. I’d suggest for now opening a ticket on the repo / commenting on the PR to see if it can be resurrected as you suggest
n
Got it, thanks for clearing up the confusion!
👍 1
m
I've been busy elsewhere and not needing to use Pact 🤷
Contributions are appreciated. DM me if/when wanting/needing direction
it's been worked on half way through supporting Swift concurrency but dropping support for Linux which I don't like so with focus on other (paid work) it got pushed down the priority list.
@Matt (pactflow.io / pact-js / pact-go) I'm also considering transferring the repo to
pact-foundation
if you have anyone that can keep supporting it more than me.
actually, repo*s*
I think I left it off at
feature/swift-concurrency
but had to touch the
PactSwiftMockServer
and then had to abandon
👍 1
m
> @Matt (pactflow.io / pact-js / pact-go) I’m also considering transferring the repo to
pact-foundation
if you have anyone that can keep supporting it more than me. that makes sense. I don’t know of anybody else that might want to co-maintain it (which would be ideal) but bringing it under the org makes sense I think