V2 safe option
# maintainers
m
V2 safe option
t
V2? Isn't it quite old now? How about V4?
m
V2 has the widest support, all implementations I'm aware of support it. You're right though in that the 5 major top languages would be able to verify V4 so it's safe enough
t
Ah, I didn't think about this before: The lower specification version client generated for consumer, the more compatibility it has with different providers, according to this table https://docs.pact.io/getting_started/specification#language-compatibility
So I will leave the default specification version of Pact-PHP to 3.0 for now
y
V2 definitely provides the widest compat because they support anything that uses a verifier based on the ruby implementation, That being said, if the user is aware they are verifying a v3 pact against a ruby verifier, that they could switch to the command line version, if their language doesn’t currently have the rust verifier exposed. V2 just makes it easier to talk about at a simpler level but loses lots of features (message pact in v3), (multi diff interaction types in one pact in v4, plugin support) Ideally by the end of the year, most of the key languages will support v4, and I’d love to be at a point where the default is v4 and you only drop back to v3/v2 if required for compat
m
Perhaps we default to V4 because users can always specify a lower level. This will encourage more big reports and requests out of the woodwork and ultimately level us up?
y
Wouldn’t be a bad shout, we won’t move forward unless we really make people, and if we can provide some decent guidance about how to drop a spec level, and what they lose out on, it might make them want to get on the v4 features across the board in their org, and spend time working on that, rather than trying to fudge the old spec. Might mean we see more people trying plugins for things like gql etc
☝️ 2
t
I think default to V4 also help new users, since they can use all of features without worrying about learning what is specification, how to change it, what spec need to change to.
1